write-you-a-haskell/chapter10/adt.hs
2015-11-21 09:52:39 -05:00

9 lines
268 B
Haskell

{-# LANGUAGE TypeOperators #-}
data Unit = Unit -- 1
data Empty -- 0
data (a * b) = Product a b -- a * b
data (a + b) = Inl a | Inr b -- a + b
data Exp a b = Exp (a -> b) -- a^b
data Rec f = Rec (f (Rec f)) --