module AbsLambdaMini where -- Haskell module generated by the BNF converter newtype FIdent = FIdent String deriving (Eq,Ord,Show) data Program = Prog [Func] deriving (Eq,Ord,Show) data Func = Func FIdent Exp deriving (Eq,Ord,Show) data Exp = EVar FIdent | EInt Integer | EApp Exp Exp | ENeg Exp | EMul Exp Exp | EDiv Exp Exp | EAdd Exp Exp | ESub Exp Exp | ELt Exp Exp | EGt Exp Exp | ELEq Exp Exp | EGEq Exp Exp | EEq Exp Exp | ENEq Exp Exp | ELambda [FIdent] Exp deriving (Eq,Ord,Show)