[mercury-users] Type inheritance?
Bart Demoen
bmd at cs.kuleuven.ac.be
Wed Sep 24 16:26:40 AEST 1997
Lee wrote:
> :- type ut = foo + bar.
>
> You could use (for example) ++ instead of + and impose the restriction
> that the constructors in foo and bar are disjoint. Even more flexible
> is that the constructors are "compatible", so c(t1) and c(t2) are allowed
> in foo and bar, respectively, iff t1 = t2. Basically, ut is the result
Looks like some of the decisions taken in HAL to me - I should have a
look at NUDE.
> might also want to avoid unions of integers and lists, for example
HAL allows that.
> The implementation of your carefully designed 234 tree data type can
> be affected by some far off declaration which includes it in union
There is probably no need for this long-range effect. It is the module that
defines and uses the union type that is going to pay a price, not the
others.
Bart
More information about the users
mailing list