Monomorphism, monomorphism...

Ashley Yakeley
Wed, 10 Oct 2001 15:20:23 -0700

At 2001-10-10 03:59, Marcin 'Qrczak' Kowalczyk wrote:

>We need some type T such that it's possible to define a family of
>functions for arbitrary choices of A:
>    upA   :: A -> T
>    downA :: T -> Maybe A
>satisfying downA (upA a) = Just a. We want to choose the type for T
>before deciding the exact set of types for A.

I'm convinced extensible datatypes are the cleanest and most in-spirit 
extenstion to Haskell to solve this.

data T = _;


data T |= MkAT A;
upA = MkAT;
downA (MkAT a) = Just a;
downA _ = Nothing;

Ashley Yakeley, Seattle WA