packages feed

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