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/Language.hs | |
parent | 0dc5c31b023ee7d569bbc0df7615b2bf55ba01f5 (diff) |
Add integer modulo operator
Diffstat (limited to 'src/Language.hs')
-rw-r--r-- | src/Language.hs | 4 |
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) |