[m-dev.] generic result types

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


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.

(I seem to recall that when we added the stream module the intention
was that the io module would eventually be changed to use the stream
versions -- I think the reason it wasn't was to avoid breaking
existing code, i.e. the stream module would need to be imported
all over the place.)

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