[m-dev.] maybe_error type

Paul Bone paul at bone.id.au
Sun Apr 21 12:38:25 AEST 2013

On Sun, Apr 21, 2013 at 11:13:26AM +1000, Michael Day wrote:
> Hi Paul,
>> :- type maybe_error(E)
>>      --->     ok
>>      ;       error(E).
> This type is isomorphic to maybe(E), eg. maybe(error), which is shorter  
> and just as obvious, I think :)

I see what you mean, however I prefer a situation where the names of the
function symbols are meaningful.  Otherwise we might as well have the stupid
names of the Either monad from Haskell:

:- type either(L, R)
    --->    left(L)
    ;       right(R).

Which one represents an error (for my intended use?)  (Answer: it's the
'right' one but you don't know this unless you look inside the typeclass
instance for Monad Either l.  (Mercury syntax would be (monad(either(L))).

Good symbol/variable names are important.

Paul Bone

More information about the developers mailing list