From c586e7d2343fa735a9b27e0b1a201dd2cb2bc68e Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Mon, 21 Apr 2025 21:56:34 +0200 Subject: Add integer modulo operator --- src/Language.hs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/Language.hs') 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) -- cgit v1.2.3-70-g09d2