summaryrefslogtreecommitdiff
path: root/src/Simplify.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2024-09-12 17:31:20 +0200
committerTom Smeding <tom@tomsmeding.com>2024-09-12 17:31:42 +0200
commit36732f84cfade5371248806328791d5066673fb7 (patch)
tree68cf208fca197a48e6b0506e783c1bdaf98d2e42 /src/Simplify.hs
parent1f53cea6a1352db125e1897ca574360180be2550 (diff)
Interpreter, some operations
Diffstat (limited to 'src/Simplify.hs')
-rw-r--r--src/Simplify.hs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Simplify.hs b/src/Simplify.hs
index c44d965..1640729 100644
--- a/src/Simplify.hs
+++ b/src/Simplify.hs
@@ -77,11 +77,13 @@ simplify' = \case
EInl _ t e -> EInl ext t (simplify' e)
EInr _ t e -> EInr ext t (simplify' e)
ECase _ e a b -> ECase ext (simplify' e) (simplify' a) (simplify' b)
+ EConstArr _ n t v -> EConstArr ext n t v
EBuild1 _ a b -> EBuild1 ext (simplify' a) (simplify' b)
EBuild _ n a b -> EBuild ext n (simplify' a) (simplify' b)
- EFold1 _ a b -> EFold1 ext (simplify' a) (simplify' b)
+ EFold1Inner _ a b -> EFold1Inner ext (simplify' a) (simplify' b)
+ ESum1Inner _ e -> ESum1Inner ext (simplify' e)
EUnit _ e -> EUnit ext (simplify' e)
- -- EReplicate _ e -> EReplicate ext (simplify' e)
+ EReplicate1Inner _ a b -> EReplicate1Inner ext (simplify' a) (simplify' b)
EConst _ t v -> EConst ext t v
EIdx0 _ e -> EIdx0 ext (simplify' e)
EIdx1 _ a b -> EIdx1 ext (simplify' a) (simplify' b)
@@ -112,11 +114,13 @@ hasAdds = \case
EInl _ _ e -> hasAdds e
EInr _ _ e -> hasAdds e
ECase _ e a b -> hasAdds e || hasAdds a || hasAdds b
+ EConstArr _ _ _ _ -> False
EBuild1 _ a b -> hasAdds a || hasAdds b
EBuild _ _ a b -> hasAdds a || hasAdds b
- EFold1 _ a b -> hasAdds a || hasAdds b
+ EFold1Inner _ a b -> hasAdds a || hasAdds b
+ ESum1Inner _ e -> hasAdds e
EUnit _ e -> hasAdds e
- -- EReplicate _ e -> hasAdds e
+ EReplicate1Inner _ a b -> hasAdds a || hasAdds b
EConst _ _ _ -> False
EIdx0 _ e -> hasAdds e
EIdx1 _ a b -> hasAdds a || hasAdds b