From 28ba5e6a99637dafd393fdcbe5f9fd6f7635fcb3 Mon Sep 17 00:00:00 2001 From: Folkert Date: Tue, 7 Jul 2020 19:02:05 +0200 Subject: [PATCH] fix other num functions --- compiler/builtins/src/unique.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/compiler/builtins/src/unique.rs b/compiler/builtins/src/unique.rs index e048f13f96..b4c9b3a88c 100644 --- a/compiler/builtins/src/unique.rs +++ b/compiler/builtins/src/unique.rs @@ -412,6 +412,36 @@ pub fn types() -> MutMap { float_type(star) }); + // isNegative : Num a -> Bool + add_type(Symbol::NUM_IS_NEGATIVE, { + let_tvars! { star1, star2, a }; + unique_function(vec![num_type(star1, a)], bool_type(star2)) + }); + + // isPositive : Num a -> Bool + add_type(Symbol::NUM_IS_POSITIVE, { + let_tvars! { star1, star2, a }; + unique_function(vec![num_type(star1, a)], bool_type(star2)) + }); + + // isZero : Num a -> Bool + add_type(Symbol::NUM_IS_ZERO, { + let_tvars! { star1, star2, a }; + unique_function(vec![num_type(star1, a)], bool_type(star2)) + }); + + // isEven : Num a -> Bool + add_type(Symbol::NUM_IS_EVEN, { + let_tvars! { star1, star2, a }; + unique_function(vec![num_type(star1, a)], bool_type(star2)) + }); + + // isOdd : Num a -> Bool + add_type(Symbol::NUM_IS_ODD, { + let_tvars! { star1, star2, a }; + unique_function(vec![num_type(star1, a)], bool_type(star2)) + }); + // Bool module // isEq or (==) : Attr * a, Attr * a -> Attr * Bool