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/AST.hs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/AST.hs') 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 -- cgit v1.2.3-70-g09d2