on master help sign in
Add instances for 6 and 7 tuples (after all, they're free now)
b8ff282Shane O'Brien
src/Rel8/Table.hs+16
@@ -310,6 +310,22 @@ instance
310 => Table context (a, b, c, d, e)
310 => Table context (a, b, c, d, e)
311
311
312
312
313+instance
314+ ( Table context a, Table context b, Table context c, Table context d
315+ , Table context e, Table context f
316+ , Labelable context
317+ )
318+ => Table context (a, b, c, d, e, f)
319+
320+
321+instance
322+ ( Table context a, Table context b, Table context c, Table context d
323+ , Table context e, Table context f, Table context g
324+ , Labelable context
325+ )
326+ => Table context (a, b, c, d, e, f, g)
327+
328+
313type Congruent :: Type -> Type -> Constraint
329type Congruent :: Type -> Type -> Constraint
314class Columns a ~ Columns b => Congruent a b
330class Columns a ~ Columns b => Congruent a b
315instance Columns a ~ Columns b => Congruent a b
331instance Columns a ~ Columns b => Congruent a b
src/Rel8/Table/Eq.hs+11
@@ -129,6 +129,17 @@ instance (EqTable a, EqTable b, EqTable c, EqTable d, EqTable e) =>
129 EqTable (a, b, c, d, e)
129 EqTable (a, b, c, d, e)
130
130
131
131
132+instance (EqTable a, EqTable b, EqTable c, EqTable d, EqTable e, EqTable f) =>
133+ EqTable (a, b, c, d, e, f)
134+
135+
136+instance
137+ ( EqTable a, EqTable b, EqTable c, EqTable d, EqTable e, EqTable f
138+ , EqTable g
139+ )
140+ => EqTable (a, b, c, d, e, f, g)
141+
142+
132-- | Compare two 'Table's for equality. This corresponds to comparing all
143-- | Compare two 'Table's for equality. This corresponds to comparing all
133-- columns inside each table for equality, and combining all comparisons with
144-- columns inside each table for equality, and combining all comparisons with
134-- @AND@.
145-- @AND@.
src/Rel8/Table/Ord.hs+13
@@ -133,6 +133,19 @@ instance (OrdTable a, OrdTable b, OrdTable c, OrdTable d, OrdTable e) =>
133 OrdTable (a, b, c, d, e)
133 OrdTable (a, b, c, d, e)
134
134
135
135
136+instance
137+ ( OrdTable a, OrdTable b, OrdTable c, OrdTable d, OrdTable e, OrdTable f
138+ )
139+ => OrdTable (a, b, c, d, e, f)
140+
141+
142+instance
143+ ( OrdTable a, OrdTable b, OrdTable c, OrdTable d, OrdTable e, OrdTable f
144+ , OrdTable g
145+ )
146+ => OrdTable (a, b, c, d, e, f, g)
147+
148+
136-- | Test if one 'Table' sorts before another. Corresponds to comparing all
149-- | Test if one 'Table' sorts before another. Corresponds to comparing all
137-- columns with '<'.
150-- columns with '<'.
138(<:) :: forall a. OrdTable a => a -> a -> Expr Bool
151(<:) :: forall a. OrdTable a => a -> a -> Expr Bool
src/Rel8/Table/Serialize.hs+33
@@ -217,6 +217,31 @@ instance
217 => ToExprs x (a, b, c, d, e)
217 => ToExprs x (a, b, c, d, e)
218
218
219
219
220+instance
221+ ( ToExprs exprs1 a
222+ , ToExprs exprs2 b
223+ , ToExprs exprs3 c
224+ , ToExprs exprs4 d
225+ , ToExprs exprs5 e
226+ , ToExprs exprs6 f
227+ , x ~ (exprs1, exprs2, exprs3, exprs4, exprs5, exprs6)
228+ )
229+ => ToExprs x (a, b, c, d, e, f)
230+
231+
232+instance
233+ ( ToExprs exprs1 a
234+ , ToExprs exprs2 b
235+ , ToExprs exprs3 c
236+ , ToExprs exprs4 d
237+ , ToExprs exprs5 e
238+ , ToExprs exprs6 f
239+ , ToExprs exprs7 g
240+ , x ~ (exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7)
241+ )
242+ => ToExprs x (a, b, c, d, e, f, g)
243+
244+
220instance (HTable t, result ~ Col Result, x ~ t (Col Expr)) =>
245instance (HTable t, result ~ Col Result, x ~ t (Col Expr)) =>
221 ToExprs x (t result)
246 ToExprs x (t result)
222 where
247 where
@@ -253,6 +278,14 @@ type instance FromExprs (a, b, c, d) =
253 (FromExprs a, FromExprs b, FromExprs c, FromExprs d)
278 (FromExprs a, FromExprs b, FromExprs c, FromExprs d)
254type instance FromExprs (a, b, c, d, e) =
279type instance FromExprs (a, b, c, d, e) =
255 (FromExprs a, FromExprs b, FromExprs c, FromExprs d, FromExprs e)
280 (FromExprs a, FromExprs b, FromExprs c, FromExprs d, FromExprs e)
281+type instance FromExprs (a, b, c, d, e, f) =
282+ ( FromExprs a, FromExprs b, FromExprs c, FromExprs d, FromExprs e
283+ , FromExprs f
284+ )
285+type instance FromExprs (a, b, c, d, e, f, g) =
286+ ( FromExprs a, FromExprs b, FromExprs c, FromExprs d, FromExprs e
287+ , FromExprs f, FromExprs g
288+ )
256type instance FromExprs (t Expr) = t Result
289type instance FromExprs (t Expr) = t Result
257type instance FromExprs (t (Col Expr)) = t (Col Result)
290type instance FromExprs (t (Col Expr)) = t (Col Result)
258
291