summaryrefslogtreecommitdiff
path: root/src/Language.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/Language.hs
parent0dc5c31b023ee7d569bbc0df7615b2bf55ba01f5 (diff)
Add integer modulo operator
Diffstat (limited to 'src/Language.hs')
-rw-r--r--src/Language.hs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/Language.hs b/src/Language.hs
index a66b8b6..cf7cc4c 100644
--- a/src/Language.hs
+++ b/src/Language.hs
@@ -204,6 +204,10 @@ or_ :: NExpr env (TScal TBool) -> NExpr env (TScal TBool) -> NExpr env (TScal TB
or_ = oper2 OOr
infixr 2 `or_`
+mod_ :: (ScalIsIntegral a ~ True, KnownScalTy a) => NExpr env (TScal a) -> NExpr env (TScal a) -> NExpr env (TScal a)
+mod_ = oper2 (OMod knownScalTy)
+infixl 7 `mod_`
+
-- | The first alternative is the True case; the second is the False case.
if_ :: NExpr env (TScal TBool) -> NExpr env t -> NExpr env t -> NExpr env t
if_ e a b = case_ (oper OIf e) (#_ :-> NEDrop SZ a) (#_ :-> NEDrop SZ b)