X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=CoreTools.hs;h=3dfaf5016cedb0ede442564d2e22452d9cc16e37;hb=eb3177ed5e53fd27bc64a45584ab646545c27e5f;hp=63bca94c23225ef84e94e8ee9e3755dd976b3a3f;hpb=1c0c371527493b595d8ee767c1ed5cedc0891a30;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/CoreTools.hs b/CoreTools.hs index 63bca94..3dfaf50 100644 --- a/CoreTools.hs +++ b/CoreTools.hs @@ -20,6 +20,7 @@ import qualified SrcLoc import qualified CoreSyn import qualified Var import qualified Unique +import qualified CoreUtils import GhcTools import HsTools @@ -89,3 +90,12 @@ is_wild :: CoreSyn.CoreBndr -> Bool -- occstring for now... TODO --(Var.varUnique bndr) == (Unique.mkBuiltinUnique 1) is_wild bndr = "wild" == (OccName.occNameString . Name.nameOccName . Var.varName) bndr + +-- Is the given core expression a lambda abstraction? +is_lam :: CoreSyn.CoreExpr -> Bool +is_lam (CoreSyn.Lam _ _) = True +is_lam _ = False + +-- Is the given core expression of a function type? +is_fun :: CoreSyn.CoreExpr -> Bool +is_fun = Type.isFunTy . CoreUtils.exprType