@@ -1,3 +1,4 @@
1+{-# language FlexibleContexts #-}
12{-# language TypeFamilies #-}
23
34{-# options_ghc -fno-warn-redundant-constraints #-}
@@ -14,67 +15,43 @@ import Prelude ()
1415import Rel8.Expr ( Expr( Expr ) )
1516import Rel8.Expr.Function ( function )
1617import Rel8.Expr.Opaleye ( castExpr )
17−import Rel8.Schema.Nullability ( IsMaybe, Nullabilizes )
18+import Rel8.Schema.Nullability ( IsMaybe, Sql )
1819import Rel8.Type.Num ( DBFractional, DBIntegral, DBNum )
1920
2021
21−fromIntegral ::
22− ( DBIntegral _a, Nullabilizes _a a
23− , DBNum _b, Nullabilizes _b b
24− , IsMaybe a ~ IsMaybe b
25− )
22+fromIntegral :: (Sql DBIntegral a, Sql DBNum b, IsMaybe a ~ IsMaybe b)
2623 => Expr a -> Expr b
2724fromIntegral (Expr a) = castExpr (Expr a)
2825
2926
30−realToFrac ::
31− ( DBNum _a, Nullabilizes _a a
32− , DBFractional _b, Nullabilizes _b b
33− , IsMaybe a ~ IsMaybe b
34− )
27+realToFrac :: (Sql DBNum a, Sql DBFractional b, IsMaybe a ~ IsMaybe b)
3528 => Expr a -> Expr b
3629realToFrac (Expr a) = castExpr (Expr a)
3730
3831
39−ceiling ::
40− ( DBFractional _a, Nullabilizes _a a
41− , DBIntegral _b, Nullabilizes _b b
42− , IsMaybe a ~ IsMaybe b
43− )
32+ceiling :: (Sql DBFractional a, Sql DBIntegral b, IsMaybe a ~ IsMaybe b)
4433 => Expr a -> Expr b
4534ceiling = function "CEILING"
4635
4736
48−div :: (DBIntegral _a, Nullabilizes _a a) => Expr a -> Expr a -> Expr a
37+div :: Sql DBIntegral a => Expr a -> Expr a -> Expr a
4938div = function "DIV"
5039
5140
52−mod :: (DBIntegral _a, Nullabilizes _a a) => Expr a -> Expr a -> Expr a
41+mod :: Sql DBIntegral a => Expr a -> Expr a -> Expr a
5342mod = function "MOD"
5443
5544
56−floor ::
57− ( DBFractional _a, Nullabilizes _a a
58− , DBIntegral _b, Nullabilizes _b b
59− , IsMaybe a ~ IsMaybe b
60− )
45+floor :: (Sql DBFractional a, Sql DBIntegral b, IsMaybe a ~ IsMaybe b)
6146 => Expr a -> Expr b
6247floor = function "FLOOR"
6348
6449
65−round ::
66− ( DBFractional _a, Nullabilizes _a a
67− , DBIntegral _b, Nullabilizes _b b
68− , IsMaybe a ~ IsMaybe b
69− )
50+round :: (Sql DBFractional a, Sql DBIntegral b, IsMaybe a ~ IsMaybe b)
7051 => Expr a -> Expr b
7152round = function "ROUND"
7253
7354
74−truncate ::
75− ( DBFractional _a, Nullabilizes _a a
76− , DBIntegral _b, Nullabilizes _b b
77− , IsMaybe a ~ IsMaybe b
78− )
55+truncate :: (Sql DBFractional a, Sql DBIntegral b, IsMaybe a ~ IsMaybe b)
7956 => Expr a -> Expr b
8057truncate = function "TRUNC"