[m-dev.] generic result types

Julien Fischer juliensf at csse.unimelb.edu.au
Wed Feb 18 14:39:43 AEDT 2009


On Wed, 18 Feb 2009, Peter Ross wrote:

> On Wed, Feb 18, 2009 at 2:12 PM, Julien Fischer
> <juliensf at csse.unimelb.edu.au> wrote:
>>
>> On Wed, 18 Feb 2009, Peter Ross wrote:
>>
>>> On Wed, Feb 18, 2009 at 1:47 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)
>>>>>  .
>>>>>
>>>>> Then the various io and stream types could be redefined in terms of
>>>>> these
>>>>> types.
>>>>>
>>>>> I ask because we have written a lot of code at MC which should use these
>>>>> generic
>>>>> result types, so I was going to add this to our library but ian
>>>>> suggested we should
>>>>> see first if it goes better in the mercury standard library.
>>>>
>>>> In which module would they be defined?
>>>>
>>> I was thinking result.m, just like maybe.m and cohorts.
>>
>> Are you proposing that there be generic result types for all the types
>> duplicated in the io and stream modules?  The above doesn't cover the
>> case where they have an eof functor.
>>
> No only the types with two functors, ok and error.

In which case the names you have chosen above clash with the 3-functor
versions in the io and stream modules.

Julien.
--------------------------------------------------------------------------
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