(=>) :: Constraint -> * -> * newtype (==>) c a = Constrain (c => a)

type Bool = Maybe () pattern True = Just () pattern False = Nothing