@@ -95,6 +95,9 @@ primitives =
95 iCoerce ITNative (ITFixed IT64) "trunc" trunc LTrunc,
95 iCoerce ITNative (ITFixed IT64) "trunc" trunc LTrunc,
96 iCoerce ITBig ITChar "trunc" trunc LTrunc,
96 iCoerce ITBig ITChar "trunc" trunc LTrunc,
99+ Prim (sUN "prim__negFloat") (ty [(AType ATFloat)] (AType ATFloat)) 1 (c_negFloat)
100+ (1, LNegFloat) total,
98 Prim (sUN "prim__addFloat") (ty [(AType ATFloat), (AType ATFloat)] (AType ATFloat)) 2 (fBin (+))
101 Prim (sUN "prim__addFloat") (ty [(AType ATFloat), (AType ATFloat)] (AType ATFloat)) 2 (fBin (+))
99 (2, LPlus ATFloat) total,
102 (2, LPlus ATFloat) total,
100 Prim (sUN "prim__subFloat") (ty [(AType ATFloat), (AType ATFloat)] (AType ATFloat)) 2 (fBin (-))
103 Prim (sUN "prim__subFloat") (ty [(AType ATFloat), (AType ATFloat)] (AType ATFloat)) 2 (fBin (-))
@@ -660,6 +663,10 @@ c_intToChar _ = Nothing
660c_charToInt [(Ch x)] = Just . I . fromEnum $ x
663c_charToInt [(Ch x)] = Just . I . fromEnum $ x
661c_charToInt _ = Nothing
664c_charToInt _ = Nothing
666+c_negFloat :: [Const] -> Maybe Const
667+c_negFloat [Fl x] = Just $ Fl (negate x)
668+c_negFloat _ = Nothing
663c_floatToStr :: [Const] -> Maybe Const
670c_floatToStr :: [Const] -> Maybe Const
664c_floatToStr [Fl x] = Just $ Str (show x)
671c_floatToStr [Fl x] = Just $ Str (show x)
665c_floatToStr _ = Nothing
672c_floatToStr _ = Nothing