data / type / newtype:

i'd like to have these choices

type T1 = record C1 .. | C2 ..
type T2 = T1
type T3 = new T2

with T2 identical to T1, 
and T3 being an identical copy of T2 (but different from T2)
inheriting all its constructors and operations.

(at the moment, type .. = record .. is written as data .. = ..
but i feel the above is clearer.)

so that the usual example

type Apples = new Int; type Oranges = new Int

where you couldn't add Apples and Oranges.

of course then the Int constructors would be overloaded,
which had to be disambiguated (by annotations, see previous suggestion).

this could interfere with the overloading that comes from the
numeric classes.

-- 
Dr Johannes Waldmann      Institut fur Informatik    Universitat Leipzig   
[EMAIL PROTECTED] http://www.informatik.uni-leipzig.de/~joe/
PF 920,  D-04009  Leipzig,  Germany   Tel/Fax (+49) 341 97 32204 / 32209



Reply via email to