aboutsummaryrefslogtreecommitdiffstats
path: root/src/Utils.hs
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2022-12-06 18:36:51 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2022-12-06 18:36:51 +0200
commit9ea6fae21ffec1f092bd272fa34330c887947c36 (patch)
treef4072c6c3b202554939ec68464fe9d7070f66105 /src/Utils.hs
parent4de1c9b9159305a664a56589b9b6aa1bce0129aa (diff)
Use adt instead of bool for ASTFunction purity
Diffstat (limited to 'src/Utils.hs')
-rw-r--r--src/Utils.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Utils.hs b/src/Utils.hs
index c2a5088..7752a5f 100644
--- a/src/Utils.hs
+++ b/src/Utils.hs
@@ -110,8 +110,8 @@ isAllowedPurity purity = do
s <- get
let currentPurity = statePure s
return $ case currentPurity of
- False -> True -- if currently in impure context (false), all calls are ok
- True -> purity == True -- but if in pure context (true), only pure calls are ok
+ Impure -> True -- if currently in impure context (false), all calls are ok
+ Pure -> purity == Pure -- but if in pure context (true), only pure calls are ok
updatePurity :: Purity -> LContext ()
updatePurity purity = do
@@ -135,7 +135,7 @@ instance (Eq Token) where
instance (Show Token) where
show token = show $ tokenContent token
-type Purity = Bool
+data Purity = Pure | Impure deriving Eq
type LFunction = AST -> LContext AST
type LRecord = M.Map String AST
@@ -176,8 +176,8 @@ instance (Show ASTNode) where
let flattenMap = M.assocs .> L.concatMap (\(k, v) -> [k, v])
in "{" ++ L.intercalate " " (map show $ flattenMap m) ++ "}"
show (ASTFunction isPure _) = case isPure of
- True -> "<pure fn>"
- False -> "<impure fn>"
+ Pure -> "<pure fn>"
+ Impure -> "<impure fn>"
show (ASTRecord identifier record) =
let assocsStrList = map (\(k, v) -> k ++ ":" ++ show v) (M.assocs record)
in "(" ++ identifier ++ " " ++ L.intercalate " " assocsStrList ++ ")"