Perhaps the subtyping of O'Haskell is interesting:
http://www.cs.chalmers.se/~nordland/ohaskell/
/Peter Ljunglöf
On Mon, 25 Sep 2000, Jose Romildo Malaquias wrote:
> Is there any Haskell implementation that supports
> extensible data types, in which new value constructors
> can be added to a previously declared data type,
> like
>
> data Fn = Sum | Pro | Pow
> ...
> extend data Fn = Sin | Cos | Tan
>
> where first the Fn datatype had only three values,
> (Sum, Pro and Pow) but later it was extended with
> three new values (Sin, Cos and Tan)?