From 82a01c9291c350ee8aeae80d62d6a45f7fb50940 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Wed, 16 Jun 2010 15:15:33 +0200 Subject: [PATCH] Add predicate functions for the CoreContext type. --- clash/CLasH/Normalize/NormalizeTypes.hs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/clash/CLasH/Normalize/NormalizeTypes.hs b/clash/CLasH/Normalize/NormalizeTypes.hs index 4e98709..07ccd97 100644 --- a/clash/CLasH/Normalize/NormalizeTypes.hs +++ b/clash/CLasH/Normalize/NormalizeTypes.hs @@ -32,3 +32,22 @@ data CoreContext = AppFirst -- ^ The expression is the first deriving (Eq, Show) -- | Transforms a CoreExpr and keeps track if it has changed. type Transform = [CoreContext] -> CoreSyn.CoreExpr -> TransformMonad CoreSyn.CoreExpr + +-- Predicates for each of the context types +is_appfirst_ctx, is_appsecond_ctx, is_letbinding_ctx, is_letbody_ctx, is_lambdabody_ctx + :: CoreContext -> Bool + +is_appfirst_ctx AppFirst = True +is_appfirst_ctx _ = False + +is_appsecond_ctx AppSecond = True +is_appsecond_ctx _ = False + +is_letbinding_ctx LetBinding = True +is_letbinding_ctx _ = False + +is_letbody_ctx LetBody = True +is_letbody_ctx _ = False + +is_lambdabody_ctx LambdaBody = True +is_lambdabody_ctx _ = False -- 2.30.2