[m-dev.] generic result types

Peter Ross pdross at gmail.com
Wed Feb 18 14:56:04 AEDT 2009


On Wed, Feb 18, 2009 at 2:44 PM, Julien Fischer
<juliensf at csse.unimelb.edu.au> wrote:
>
> On Wed, 18 Feb 2009, Peter Ross wrote:
>
>> Hi,
>>
>> Do people think it would be useful to add the following generic types
>> to the standard library?
>>
>> :- type result(T, E)
>>   --->    ok(T)
>>   ;       error(E)
>>   .
>>
>> :- type partial_result(T, E) == partial_result(T, T, E).
>>
>> :- type partial_result(T, P, E)
>>   --->    ok(T)
>>   ;       error(P, E)
>>
>> :- type result(E)
>>   --->    ok
>>   ;       error(E)
>>   .
>
> result/2 and result/1 almost already exist in the form of the
> maybe_error/[01] types.  Making them polymoprhic in the error type would
> give you the above.  Maybe, maybe_partial_result/3 could be added to the
> maybe module?
>
Good find, you are right they are essentially the same types.

I prefer the name result though, mainly because this is the name io
uses and so it seems more "natural" to me.
--------------------------------------------------------------------------
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