compdata-0.12: examples/Examples/Simple.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Examples.Simple where
import Data.Comp
data Lambda t a = App a a | Abs (Maybe (Term t))
data Arith a = Const Int
data LambdaType a = Fun a a
data IntType a = IntType
type Type = LambdaType :+: IntType
type Sig t = Lambda t :+: Arith