Add is_simple predicate for applications and vars.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Fri, 26 Jun 2009 10:24:04 +0000 (12:24 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Fri, 26 Jun 2009 10:24:04 +0000 (12:24 +0200)
CoreTools.hs

index dfb4f5c680ddebede83c4584c59beb4fe82e7b3b..ed0c52d88a7e81ee6428debe2a48fc5c81a48388 100644 (file)
@@ -145,6 +145,13 @@ is_var _ = False
 is_applicable :: CoreSyn.CoreExpr -> Bool
 is_applicable expr = is_fun expr || is_poly expr
 
+-- Is the given core expression a variable or an application?
+is_simple :: CoreSyn.CoreExpr -> Bool
+is_simple (CoreSyn.App _ _) = True
+is_simple (CoreSyn.Var _) = True
+is_simple (CoreSyn.Cast expr _) = is_simple expr
+is_simple _ = False
+
 -- Does the given CoreExpr have any free type vars?
 has_free_tyvars :: CoreSyn.CoreExpr -> Bool
 has_free_tyvars = not . VarSet.isEmptyVarSet . (CoreFVs.exprSomeFreeVars Var.isTyVar)