[mercury-users] Existential types and list.map

Peter Hawkins peter at hawkins.emu.id.au
Fri Jul 29 13:08:57 AEST 2005

Mark Brown wrote:

>This is not type safe because there is nothing in the signature of get_thing
>that guarantees that all of the elements in list Y have the same type.  To
>build such a list you would need to have get_thing return a structure that
>contains an existentially typed value.  For example, the signature for
>get_thing could be:
>	:- func get_thing(int) = univ.
>Then Y would have type list(univ), which would be okay.
Yes, but I want to put typeclass constraints on the resulting type, so I 
can't use univ. As far as I can see, my only option is to define a new 
list type, which is just hideous.

mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe

More information about the users mailing list