@@ -1,6 +1,8 @@
1{-# language DataKinds #-}
1{-# language DataKinds #-}
2{-# language DeriveTraversable #-}
2{-# language DeriveTraversable #-}
3{-# language DerivingStrategies #-}
3{-# language DerivingStrategies #-}
4+{-# language FlexibleContexts #-}
5+{-# language FlexibleInstances #-}
4{-# language GeneralizedNewtypeDeriving #-}
6{-# language GeneralizedNewtypeDeriving #-}
5{-# language NamedFieldPuns #-}
7{-# language NamedFieldPuns #-}
6{-# language StandaloneKindSignatures #-}
8{-# language StandaloneKindSignatures #-}
@@ -11,6 +13,7 @@
12module Rel8.Type.Array1D
14module Rel8.Type.Array1D
13 ( Array1D( Array1D )
15 ( Array1D( Array1D )
14 , getArray1D
17 , getArray1D
@@ -89,7 +92,11 @@ type family IsArray1D a where
89 IsArray1D _ = 'False
92 IsArray1D _ = 'False
95+class IsArray1D a ~ 'False => NotArray a
96+instance IsArray1D a ~ 'False => NotArray a
92−array1DTypeInformation :: IsArray1D (Unnullify a) ~ 'False
99+array1DTypeInformation :: Sql NotArray a
93 => Nullity a
100 => Nullity a
94 -> TypeInformation (Unnullify a)
101 -> TypeInformation (Unnullify a)
95 -> TypeInformation (Array1D a)
102 -> TypeInformation (Array1D a)
@@ -108,25 +115,25 @@ array1DTypeInformation nullity info =
108 null = Opaleye.ConstExpr Opaleye.NullLit
115 null = Opaleye.ConstExpr Opaleye.NullLit
111−instance (Sql DBType a, IsArray1D (Unnullify a) ~ 'False) => DBType (Array1D a) where
118+instance (Sql DBType a, Sql NotArray a) => DBType (Array1D a) where
112 typeInformation = array1DTypeInformation nullable typeInformation
119 typeInformation = array1DTypeInformation nullable typeInformation
115−instance (Sql DBEq a, IsArray1D (Unnullify a) ~ 'False) => DBEq (Array1D a)
122+instance (Sql DBEq a, Sql NotArray a) => DBEq (Array1D a)
118−instance (Sql DBOrd a, IsArray1D (Unnullify a) ~ 'False) => DBOrd (Array1D a)
125+instance (Sql DBOrd a, Sql NotArray a) => DBOrd (Array1D a)
121−instance (Sql DBMax a, IsArray1D (Unnullify a) ~ 'False) => DBMax (Array1D a)
128+instance (Sql DBMax a, Sql NotArray a) => DBMax (Array1D a)
124−instance (Sql DBMin a, IsArray1D (Unnullify a) ~ 'False) => DBMin (Array1D a)
131+instance (Sql DBMin a, Sql NotArray a) => DBMin (Array1D a)
127−instance (Sql DBType a, IsArray1D (Unnullify a) ~ 'False) => DBSemigroup (Array1D a) where
134+instance (Sql DBType a, Sql NotArray a) => DBSemigroup (Array1D a) where
128 (<>.) = zipPrimExprsWith (Opaleye.BinExpr (Opaleye.:||))
135 (<>.) = zipPrimExprsWith (Opaleye.BinExpr (Opaleye.:||))
131−instance (Sql DBType a, IsArray1D (Unnullify a) ~ 'False) => DBMonoid (Array1D a) where
138+instance (Sql DBType a, Sql NotArray a) => DBMonoid (Array1D a) where
132 memptyExpr = litExpr mempty
139 memptyExpr = litExpr mempty