forked from GitHub/gf-core
two new functions in the PGF API: mkAbs, unAbs
This commit is contained in:
@@ -43,6 +43,7 @@ module PGF(
|
||||
-- ** Expr
|
||||
Expr,
|
||||
showExpr, readExpr,
|
||||
mkAbs, unAbs,
|
||||
mkApp, unApp,
|
||||
mkStr, unStr,
|
||||
mkInt, unInt,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
module PGF.Expr(Tree, BindType(..), Expr(..), Literal(..), Patt(..), Equation(..),
|
||||
readExpr, showExpr, pExpr, pBinds, ppExpr, ppPatt, pattScope,
|
||||
|
||||
mkAbs, unAbs,
|
||||
mkApp, unApp,
|
||||
mkStr, unStr,
|
||||
mkInt, unInt,
|
||||
@@ -96,6 +97,15 @@ showExpr vars = PP.render . ppExpr 0 vars
|
||||
instance Read Expr where
|
||||
readsPrec _ = RP.readP_to_S pExpr
|
||||
|
||||
mkAbs :: BindType -> CId -> Expr -> Expr
|
||||
mkAbs = EAbs
|
||||
|
||||
unAbs :: Expr -> Maybe (BindType, CId, Expr)
|
||||
unAbs (EAbs bt x e) = Just (bt,x,e)
|
||||
unAbs (ETyped e ty) = unAbs e
|
||||
unAbs (EImplArg e) = unAbs e
|
||||
unAbs _ = Nothing
|
||||
|
||||
-- | Constructs an expression by applying a function to a list of expressions
|
||||
mkApp :: CId -> [Expr] -> Expr
|
||||
mkApp f es = foldl EApp (EFun f) es
|
||||
|
||||
Reference in New Issue
Block a user