aboutsummaryrefslogtreecommitdiff
path: root/AST.hs
diff options
context:
space:
mode:
Diffstat (limited to 'AST.hs')
-rw-r--r--AST.hs48
1 files changed, 24 insertions, 24 deletions
diff --git a/AST.hs b/AST.hs
index a6726ca..cae9ecb 100644
--- a/AST.hs
+++ b/AST.hs
@@ -11,42 +11,42 @@ newtype Name = Name String
deriving (Show, Eq)
data Type
- = TApp Type [Type]
- | TTup [Type]
- | TList Type
- | TFun Type Type
- | TCon Name
- | TVar Name
+ = TApp Type [Type]
+ | TTup [Type]
+ | TList Type
+ | TFun Type Type
+ | TCon Name
+ | TVar Name
deriving (Show)
data FunEq t = FunEq Name [Pattern t] (RHS t)
deriving (Show)
data Pattern t
- = PWildcard t
- | PVar t Name
- | PAs t Name (Pattern t)
- | PCon t Name [Pattern t]
- | PList t [Pattern t]
- | PTup t [Pattern t]
+ = PWildcard t
+ | PVar t Name
+ | PAs t Name (Pattern t)
+ | PCon t Name [Pattern t]
+ | PList t [Pattern t]
+ | PTup t [Pattern t]
deriving (Show)
data RHS t
- = Guarded [(Expr t, Expr t)]
- | Plain (Expr t)
+ = Guarded [(Expr t, Expr t)]
+ | Plain (Expr t)
deriving (Show)
data Expr t
- = ELit t Literal
- | EVar t Name
- | ECon t Name
- | EList t [Expr t]
- | ETup t [Expr t]
- | EApp t (Expr t) [Expr t]
- | EOp t (Expr t) Operator (Expr t)
- | EIf t (Expr t) (Expr t) (Expr t)
- | ECase t (Expr t) [(Pattern t, RHS t)]
- | ELet t [FunDef t] (Expr t)
+ = ELit t Literal
+ | EVar t Name
+ | ECon t Name
+ | EList t [Expr t]
+ | ETup t [Expr t]
+ | EApp t (Expr t) [Expr t]
+ | EOp t (Expr t) Operator (Expr t)
+ | EIf t (Expr t) (Expr t) (Expr t)
+ | ECase t (Expr t) [(Pattern t, RHS t)]
+ | ELet t [FunDef t] (Expr t)
deriving (Show)
data Literal = LInt Integer | LFloat Rational | LChar Char | LString String