Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data SystemFExpr name ty Source #
Var name | Variable: |
App (SystemFExpr name ty) (SystemFExpr name ty) | Function application: `x y` |
Abs name (Ty ty) (SystemFExpr name ty) | Lambda abstraction: `x: X. x` |
TyAbs ty (SystemFExpr name ty) | Type Abstraction: `X. body` |
TyApp (SystemFExpr name ty) (Ty ty) | Type Application: `x [X]` |
Instances
(Eq name, Eq ty) => Eq (SystemFExpr name ty) Source # | |
Defined in Language.Lambda.SystemF.Expression (==) :: SystemFExpr name ty -> SystemFExpr name ty -> Bool # (/=) :: SystemFExpr name ty -> SystemFExpr name ty -> Bool # | |
(Show name, Show ty) => Show (SystemFExpr name ty) Source # | |
Defined in Language.Lambda.SystemF.Expression showsPrec :: Int -> SystemFExpr name ty -> ShowS # show :: SystemFExpr name ty -> String # showList :: [SystemFExpr name ty] -> ShowS # | |
(Pretty name, Pretty ty) => Pretty (SystemFExpr name ty) Source # | |
Defined in Language.Lambda.SystemF.Expression pretty :: SystemFExpr name ty -> Doc ann # prettyList :: [SystemFExpr name ty] -> Doc ann # |
TyVar name | Type variable (T) |
TyArrow (Ty name) (Ty name) | Type arrow (T -> U) |
TyForAll name (Ty name) | Universal type (forall T. X) |
prettyPrint :: Pretty pretty => pretty -> Text Source #
upperLambda :: Char Source #