[ This is the second time I sent this, the first time it said it was
awaiting moderation because I'm not subscribed to haskell-cafe, which
is weird because I thought I was. Did a bunch of people get
unsubscribed? ]
I'm sure this is old-hat to typeclass wizards, but I've managed to get
pretty far
On 09/15/2013 09:38 AM, Evan Laforge wrote:
...
It seems to me like I should be able to replace a typeclass with
arbitrary methods with just two, to reify the type and back. This
seems to work when the typeclass dispatches on an argument, but not on
a return value. E.g.:
...
Say m_argument
You can indeed use GADTs to solve this:
{-# LANGUAGE GADTs #-}
data Universe a where
UInt :: Int - Universe Int
UChar :: Char - Universe Char
class Universal a where
universe :: a - Universe a
instance Universal Int where
universe = UInt
instance Universal Char where