summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2025-05-25 23:35:51 +0200
committerTom Smeding <tom@tomsmeding.com>2025-05-25 23:35:51 +0200
commit7bd37711ffecb7a0e202ecfd717e3a4cbbe6074f (patch)
treeacf2f133178909e2ec4a21dd3ea95c1479dfed64
parent0681ed31aa02ff46fa527f56c9835a121267bddb (diff)
Simplify: also down-commute projections into EMaybeHEADmaster
-rw-r--r--src/Simplify.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/Simplify.hs b/src/Simplify.hs
index d963b7e..e110206 100644
--- a/src/Simplify.hs
+++ b/src/Simplify.hs
@@ -183,6 +183,12 @@ simplify'Rec = \case
ESnd _ (ECase _ e1 e2 e3) ->
acted $ simplify' $
ECase ext e1 (ESnd ext e2) (ESnd ext e3)
+ EFst _ (EMaybe _ e1 e2 e3) ->
+ acted $ simplify' $
+ EMaybe ext (EFst ext e1) (EFst ext e2) e3
+ ESnd _ (EMaybe _ e1 e2 e3) ->
+ acted $ simplify' $
+ EMaybe ext (ESnd ext e1) (ESnd ext e2) e3
-- TODO: more array indexing
EIdx _ (EReplicate1Inner _ _ e2) e3 -> acted $ simplify' $ EIdx ext e2 (EFst ext e3)