[mercury-users] Mutually exclusive goals

Fergus Henderson fjh at cs.mu.OZ.AU
Sat Aug 7 11:34:57 AEST 1999


On 16-Jul-1999, Peter Schachte <schachte at cs.mu.OZ.AU> wrote:
> It would be instructive to go through a large body of Mercury code,
> (eg, the Mercury compiler) looking for code that works around this
> problem.  It shouldn't be too hard to find places where exhaustiveness
> declarations are needed, because they should have funny error goals
> saying that the error should never happen.  I suspect that trying to
> find places where exclusiveness declarations would help would be
> pretty hard because they're probably all hacked around to make them
> det.
> 
> Any Mercury hackers care to post some examples of where exclusivity or
> exhaustiveness declarations would have helped?

Most of the calls to error/1 in the Mercury compiler come from places
where there are additional constraints on the input arguments which
the type system cannot express, e.g. that two lists must have the same
length.  I don't think there would be many examples of where exhaustiveness
might have helped; off-hand, I can't think of any.

The advantage of exclusiveness or exhaustiveness declarations would be
that we could make the source code a bit more abstract, using ADTs in
cases where we currently use concrete discriminated union types.

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3        |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list