X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=CoreTools.hs;h=ed0c52d88a7e81ee6428debe2a48fc5c81a48388;hb=ef75844d0c2bd13bedfb4debc8a917edc0560be1;hp=dfb4f5c680ddebede83c4584c59beb4fe82e7b3b;hpb=f821a93d2c6a15c8640131f1e54d3dbb5477301d;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/CoreTools.hs b/CoreTools.hs index dfb4f5c..ed0c52d 100644 --- a/CoreTools.hs +++ b/CoreTools.hs @@ -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)