From a89f11ef881be9280586aa92abc91639fd8cb9c5 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Thu, 18 Jun 2009 14:55:14 +0200 Subject: [PATCH] Add is_lam and is_fun predicates. --- CoreTools.hs | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 -- 2.30.2