on dev help sign in
Instance tweaks to guide type inference
commit82e275b673ba48c900b3d4cefdb63fc69b226d4a authorRhys <rimmington@gmail.com> dateWed 10 Oct 2018, 11:01 (8 years ago) parente2c57b4
2 files changed+14−14
squeal-postgresql/src/Squeal/PostgreSQL/Expression.hs+12−12 squeal-postgresql/src/Squeal/PostgreSQL/Schema.hs+2−2
squeal-postgresql/src/Squeal/PostgreSQL/Expression.hs+12−12
@@ -272,26 +272,26 @@ param = parameter @n pgtype
272272instance (HasUnique table from columns, Has column columns ty)
273273 => IsLabel column (Expression schema from 'Ungrouped params ty) where
274274 fromLabel = UnsafeExpression $ renderAlias (Alias @column)
275−instance (HasUnique table from columns, Has column columns ty)
276− => IsLabel column
277− (Aliased (Expression schema from 'Ungrouped params) (column ::: ty)) where
275+instance (HasUnique table from columns, Has column columns ty, columnLabel ~ column, x ~ (column ::: ty))
276+ => IsLabel columnLabel
277+ (Aliased (Expression schema from 'Ungrouped params) x) where
278278 fromLabel = fromLabel @column `As` Alias @column
279−instance (HasUnique table from columns, Has column columns ty)
280− => IsLabel column
281− (NP (Aliased (Expression schema from 'Ungrouped params)) '[column ::: ty]) where
279+instance (HasUnique table from columns, Has column columns ty, columnLabel ~ column, singleColumn ~ '[column ::: ty])
280+ => IsLabel columnLabel
281+ (NP (Aliased (Expression schema from 'Ungrouped params)) singleColumn) where
282282 fromLabel = fromLabel @column :* Nil
283283
284284instance (Has table from columns, Has column columns ty)
285285 => IsQualified table column (Expression schema from 'Ungrouped params ty) where
286286 table ! column = UnsafeExpression $
287287 renderAlias table <> "." <> renderAlias column
288−instance (Has table from columns, Has column columns ty)
289− => IsQualified table column
290− (Aliased (Expression schema from 'Ungrouped params) (column ::: ty)) where
288+instance (Has table from columns, Has column columns ty, columnLabel ~ column, x ~ (column ::: ty))
289+ => IsQualified table columnLabel
290+ (Aliased (Expression schema from 'Ungrouped params) x) where
291291 table ! column = table ! column `As` column
292−instance (Has table from columns, Has column columns ty)
293− => IsQualified table column
294− (NP (Aliased (Expression schema from 'Ungrouped params)) '[column ::: ty]) where
292+instance (Has table from columns, Has column columns ty, columnLabel ~ column, singleColumn ~ '[column ::: ty])
293+ => IsQualified table columnLabel
294+ (NP (Aliased (Expression schema from 'Ungrouped params)) singleColumn) where
295295 table ! column = table ! column :* Nil
296296
297297instance
squeal-postgresql/src/Squeal/PostgreSQL/Schema.hs+2−2
@@ -413,9 +413,9 @@ class KnownSymbol alias => Aliasable alias expression aliased
413413 | aliased -> expression
414414 , aliased -> alias
415415 where as :: expression -> Alias alias -> aliased
416−instance (KnownSymbol alias, alias ~ alias1) => Aliasable alias
416+instance (KnownSymbol alias, aliased ~ (alias ::: ty)) => Aliasable alias
417417 (expression ty)
418− (Aliased expression (alias1 ::: ty))
418+ (Aliased expression aliased)
419419 where
420420 as = As
421421instance (KnownSymbol alias, tys ~ '[alias ::: ty]) => Aliasable alias