1 {-# LANGUAGE PatternSynonyms #-}
4 -- Module : Lambda.Term
5 -- Copyright : Tomáš Musil 2014
8 -- Maintainer : tomik.musil@gmail.com
9 -- Stability : experimental
11 -- Data types for λ terms.
26 data Term = Var VarName | Lambda VarName Term | App Term Term deriving (Eq)
28 pattern RedEx x t s = App (Lambda x t) s
29 pattern AppApp a b c = App a (App b c)
30 pattern EmLambda x y t = Lambda x (Lambda y t)