summaryrefslogtreecommitdiff
path: root/src/AST.hs
diff options
context:
space:
mode:
authorTom Smeding <t.j.smeding@uu.nl>2025-04-21 21:56:34 +0200
committerTom Smeding <t.j.smeding@uu.nl>2025-04-21 21:56:34 +0200
commitc586e7d2343fa735a9b27e0b1a201dd2cb2bc68e (patch)
tree9315228980b2c5983c785889b815aaab46534052 /src/AST.hs
parent0dc5c31b023ee7d569bbc0df7615b2bf55ba01f5 (diff)
Add integer modulo operator
Diffstat (limited to 'src/AST.hs')
-rw-r--r--src/AST.hs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/AST.hs b/src/AST.hs
index 652d003..9161956 100644
--- a/src/AST.hs
+++ b/src/AST.hs
@@ -127,6 +127,7 @@ data SOp a t where
OExp :: ScalIsFloating a ~ True => SScalTy a -> SOp (TScal a) (TScal a)
OLog :: ScalIsFloating a ~ True => SScalTy a -> SOp (TScal a) (TScal a)
OIDiv :: ScalIsIntegral a ~ True => SScalTy a -> SOp (TPair (TScal a) (TScal a)) (TScal a)
+ OMod :: ScalIsIntegral a ~ True => SScalTy a -> SOp (TPair (TScal a) (TScal a)) (TScal a)
deriving instance Show (SOp a t)
opt1 :: SOp a t -> STy a
@@ -147,6 +148,7 @@ opt1 = \case
OExp t -> STScal t
OLog t -> STScal t
OIDiv t -> STPair (STScal t) (STScal t)
+ OMod t -> STPair (STScal t) (STScal t)
opt2 :: SOp a t -> STy t
opt2 = \case
@@ -166,6 +168,7 @@ opt2 = \case
OExp t -> STScal t
OLog t -> STScal t
OIDiv t -> STScal t
+ OMod t -> STScal t
typeOf :: Expr x env t -> STy t
typeOf = \case