diff options
author | Tom Smeding <t.j.smeding@uu.nl> | 2025-01-27 15:08:02 +0100 |
---|---|---|
committer | Tom Smeding <t.j.smeding@uu.nl> | 2025-01-27 15:08:02 +0100 |
commit | 88fae8c2914b805a733b71de58ab672124e6069c (patch) | |
tree | c155fb1a83ace92aab376202ebc8b4b8a919da7c /src/AST/UnMonoid.hs | |
parent | 0bdc36d221703e5a2347d3d136d676a86bdb1b6a (diff) |
Add ext field to remaining AST constructors
Diffstat (limited to 'src/AST/UnMonoid.hs')
-rw-r--r-- | src/AST/UnMonoid.hs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/AST/UnMonoid.hs b/src/AST/UnMonoid.hs index 8da1e32..c87bed1 100644 --- a/src/AST/UnMonoid.hs +++ b/src/AST/UnMonoid.hs @@ -11,9 +11,9 @@ import Data unMonoid :: Ex env t -> Ex env t unMonoid = \case - EZero t -> zero t - EPlus t a b -> plus t a b - EOneHot t i a b -> onehot t i a b + EZero _ t -> zero t + EPlus _ t a b -> plus t a b + EOneHot _ t i a b -> onehot t i a b EVar _ t i -> EVar ext t i ELet _ rhs body -> ELet ext (unMonoid rhs) (unMonoid body) @@ -42,9 +42,9 @@ unMonoid = \case EShape _ e -> EShape ext (unMonoid e) EOp _ op e -> EOp ext op (unMonoid e) ECustom _ t1 t2 t3 a b c e1 e2 -> ECustom ext t1 t2 t3 (unMonoid a) (unMonoid b) (unMonoid c) (unMonoid e1) (unMonoid e2) - EWith a b -> EWith (unMonoid a) (unMonoid b) - EAccum n a b e -> EAccum n (unMonoid a) (unMonoid b) (unMonoid e) - EError t s -> EError t s + EWith _ a b -> EWith ext (unMonoid a) (unMonoid b) + EAccum _ n a b e -> EAccum ext n (unMonoid a) (unMonoid b) (unMonoid e) + EError _ t s -> EError ext t s zero :: STy t -> Ex env (D2 t) zero STNil = ENil ext @@ -52,7 +52,7 @@ zero (STPair t1 t2) = ENothing ext (STPair (d2 t1) (d2 t2)) zero (STEither t1 t2) = ENothing ext (STEither (d2 t1) (d2 t2)) zero (STMaybe t) = ENothing ext (d2 t) zero (STArr SZ t) = EUnit ext (zero t) -zero (STArr n t) = EBuild ext n (eTup (sreplicate n (EConst ext STI64 0))) (EError (d2 t) "empty") +zero (STArr n t) = EBuild ext n (eTup (sreplicate n (EConst ext STI64 0))) (EError ext (d2 t) "empty") zero (STScal t) = case t of STI32 -> ENil ext STI64 -> ENil ext @@ -76,9 +76,9 @@ plus (STEither t1 t2) a b = ECase ext (EVar ext t (IS IZ)) (ECase ext (EVar ext t (IS IZ)) (EInl ext (d2 t2) (plus t1 (EVar ext (d2 t1) (IS IZ)) (EVar ext (d2 t1) IZ))) - (EError t "plus l+r")) + (EError ext t "plus l+r")) (ECase ext (EVar ext t (IS IZ)) - (EError t "plus r+l") + (EError ext t "plus r+l") (EInr ext (d2 t1) (plus t2 (EVar ext (d2 t2) (IS IZ)) (EVar ext (d2 t2) IZ)))) plus (STMaybe t) a b = plusSparse (d2 t) a b $ @@ -130,9 +130,9 @@ onehot t (SS dep) idx val = case t of (ECase ext (weakenExpr WSink val) (EPair ext (onehot t1 dep' (EVar ext tidx1 (IS IZ)) (EVar ext tval1 IZ)) (zero t2)) - (EError (STPair (d2 t1) (d2 t2)) "onehot pair l/r")) + (EError ext (STPair (d2 t1) (d2 t2)) "onehot pair l/r")) (ECase ext (weakenExpr WSink val) - (EError (STPair (d2 t1) (d2 t2)) "onehot pair r/l") + (EError ext (STPair (d2 t1) (d2 t2)) "onehot pair r/l") (EPair ext (zero t1) (onehot t2 dep' (EVar ext tidx2 (IS IZ)) (EVar ext tval2 IZ)))) @@ -146,9 +146,9 @@ onehot t (SS dep) idx val = case t of ECase ext idx (ECase ext (weakenExpr WSink val) (EInl ext (d2 t2) (onehot t1 dep' (EVar ext tidx1 (IS IZ)) (EVar ext tval1 IZ))) - (EError (STEither (d2 t1) (d2 t2)) "onehot either l/r")) + (EError ext (STEither (d2 t1) (d2 t2)) "onehot either l/r")) (ECase ext (weakenExpr WSink val) - (EError (STEither (d2 t1) (d2 t2)) "onehot either r/l") + (EError ext (STEither (d2 t1) (d2 t2)) "onehot either r/l") (EInr ext (d2 t1) (onehot t2 dep' (EVar ext tidx2 (IS IZ)) (EVar ext tval2 IZ)))) STMaybe t1 -> EJust ext (onehot t1 dep idx val) |