You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

17 lines
319 B

module Syntax (Expr(..), Decl(..), Program) where
data Expr
= Var String
| App Expr Expr
| Lam String Expr
| Let [Decl] Expr
deriving (Eq, Show)
data Decl
= Decl { declName :: String
, declRhs :: Expr
, declWhere :: Maybe [Decl]
}
deriving (Eq, Show)
type Program = [Decl]