diff options
author | Tom Smeding <t.j.smeding@uu.nl> | 2025-04-21 21:56:34 +0200 |
---|---|---|
committer | Tom Smeding <t.j.smeding@uu.nl> | 2025-04-21 21:56:34 +0200 |
commit | c586e7d2343fa735a9b27e0b1a201dd2cb2bc68e (patch) | |
tree | 9315228980b2c5983c785889b815aaab46534052 /src/AST.hs | |
parent | 0dc5c31b023ee7d569bbc0df7615b2bf55ba01f5 (diff) |
Add integer modulo operator
Diffstat (limited to 'src/AST.hs')
-rw-r--r-- | src/AST.hs | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -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 |