[m-dev.] Existentially quantified data constructors
Jakob Puchinger
jakobp at csse.unimelb.edu.au
Wed Apr 16 11:05:16 AEST 2008
> I'm not saying the Reference Manual is unclear, just that it tells you
> what, not why. Perhaps the problem is just with me, but I reckon I'm not
> alone: the picture I have when I'm programming is that a type class
> specifies an interface implemented by a vector of types. Where things
> start to get fuzzy is with the restrictions. I remember a certain list
> of "do"s and "don't"s (don't use equivalence types in instance
> declarations, don't repeat variables in instance declarations, instance
> variable arguments must be of the form typector(typevar, typevar, ...),
> don't mix existentially and universally quantified variables in the same
> constraint, etc.), but I'm damned if I can remember why any of those
> restrictions are necessary. It would be Very Helpful if for each
> restriction we could provide a simple example somewhere of *why*
> violating it leads to ambiguity/unsoundness/madness/divorce. Whether
> this document would belong in the RM or not is neither here nor there.
I would also be very interested in such a document!
Cheers,
Jakob
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at csse.unimelb.edu.au
Administrative Queries: owner-mercury-developers at csse.unimelb.edu.au
Subscriptions: mercury-developers-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the developers
mailing list