newbie conceptual question [from haskell list]

Steinitz, Dominic J
01 Aug 2001 05:53:38 Z

I don't know about functional dependencies but using an existential type turned out to be very useful in writing an LDAP protocol handler. The protocol is specified at an abstract level using ASN.1 and could, in theory, be encoded using any set of encoding rules. It happens to use the Basic Encoding Rules. We used an existential type to "encode" the protocol at an abstract level and the encoding rules take this type and produce a concrete representation ready to send over a transport mechanism. Thus we get a good separation between the abstract protocol and the concrete encoding. So the next time we implement a protocol handler we can re-use the encoding code or we could encode LDAP with a different set of encoding rules without having to touch the LDAP code itself.

We are presenting a paper which includes this at the Scottish Functional Programming workshop.


hdaume@ISI.EDU on 31/07/2001 22:29:00
To:	franka
cc:	haskell-cafe
bcc:	Dominic Steinitz
Subject:	Re: newbie conceptual question [from haskell list]


Frank Atanassow wrote:
> D. Tweed wrote:
> > I've never written a Haskell program using functional dependencies, or
> > existential classes, ...
> I find them indispensible, and I know for a fact that I am not the only one
> around our office who feels that way. Though, the people around here
> (Utrecht's software technology group) are not exactly typical programmers...
> :)

I've been recently experimenting quite a bit with existential classes
and somewhat less with functional dependencies, primarily to help my
understanding of the concepts.  However, I've yet to be able to think of
an appropriate place to use them in the "real world".  That is, in
something more than a toy thought-experiment.  Could you give some
examples of what you are using them for?

Hal Daume III

 "Computer science is no more about computers    |
  than astronomy is about telescopes." -Dijkstra |

Haskell-Cafe mailing list

21st century air travel