Could someone write the equivalent of this in Haskell (assuming the GADTs ext).
type 'a ty = Int : int ty | Bool : bool ty | String : string ty;; type 'a ty = Int : int ty | Bool : bool ty | String : string ty;; data Ty a where
Int :: Ty Int
Bool :: Ty Bool
...