[m-dev.] New datatype: rope

Julien Fischer juliensf at csse.unimelb.edu.au
Thu Nov 11 15:41:54 AEDT 2010

On Thu, 11 Nov 2010, Paul Bone wrote:

>>> I'd also like to see
>>> more typeclasses in the standard library for collections.  Mutterings have also
>>> been made about first class, and possibly parametric modules.  That is, rather
>>> than use type classes use modules that can be parameterised by other modules.
>>>     import cord(list) as cord_using_lists
>>>     import cord(slice) as cord_using_slices
>> But that wouldn't achieve what I was after:  allowing mixing of various kinds
>> of sequences in a single rope.
> I don't think typeclasses will give you that either.
> Perhaps typeclasses and existential types will.

Something like this?

:- type cord_node
         --->    some [T] unit_node(T) => seq(T)
         ;       some [T] list_node(T, list(T)) => seq(T)
         ;       branch_node(cord_node, cord_node).

I would question how much you are going to want to mix different kinds
of sequence in a single rope though.

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