diff options
author | Tom Smeding <tom@tomsmeding.com> | 2024-09-12 17:31:20 +0200 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2024-09-12 17:31:42 +0200 |
commit | 36732f84cfade5371248806328791d5066673fb7 (patch) | |
tree | 68cf208fca197a48e6b0506e783c1bdaf98d2e42 /src/CHAD.hs | |
parent | 1f53cea6a1352db125e1897ca574360180be2550 (diff) |
Interpreter, some operations
Diffstat (limited to 'src/CHAD.hs')
-rw-r--r-- | src/CHAD.hs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/CHAD.hs b/src/CHAD.hs index 692bb96..943f0a2 100644 --- a/src/CHAD.hs +++ b/src/CHAD.hs @@ -968,6 +968,12 @@ drev des = \case (subenvNone (select SMerge des)) (ENil ext) + EConstArr _ n t val -> + Ret BTop + (EConstArr ext n t val) + (subenvNone (select SMerge des)) + (ENil ext) + EBuild1 _ ne (orige :: Ex _ eltty) | Ret (ne0 :: Bindings _ _ ne_binds) ne1 _ _ <- drev des ne -- allowed to ignore ne2 here because ne has a discrete result , let eltty = typeOf orige -> @@ -1075,9 +1081,10 @@ drev des = \case weakenExpr (WCopy (WSink .> WSink)) e2) -- These should be the next to be implemented, I think - EFold1{} -> err_unsupported "EFold1" + ESum1Inner{} -> err_unsupported "ESum" + EReplicate1Inner{} -> err_unsupported "EReplicate" EShape{} -> err_unsupported "EShape" - -- EReplicate{} -> err_unsupported "EReplicate" + EFold1Inner{} -> err_unsupported "EFold1Inner" EIdx{} -> err_unsupported "EIdx" EBuild{} -> err_unsupported "EBuild" |