> 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.

That's basically newtype with the data constructor omitted (I would
prefer data to record). Unfortunately, this seems to be incompatible
with the class system. (There was a long discussion on the Standard
Haskell discussion list, unfortunately the entry vanished).

Ralf


Reply via email to