on dev help sign in
remove ':=

and use ‘(,) instead

commit35fe7ccb1b29691bc511ca48860efb4b5b343d2c authorEitan Chatav <eitan.chatav@gmail.com> dateSat 22 Apr 2017, 09:48 (10 years ago) parent4ed439c
1 file changed+13−14
squeel-postgresql/src/Squeel/PostgreSQL/Query.hs+13−14
squeel-postgresql/src/Squeel/PostgreSQL/Query.hs+13−14
@@ -47,7 +47,7 @@ param5 = UnsafeExpression "$5"
4747class HasField label xs x where
4848 fieldName :: Proxy label -> Proxy xs -> Proxy x -> ByteString
4949instance {-# OVERLAPPING #-} KnownSymbol label
50− => HasField label ((label ':= x) ': xs) x where
50+ => HasField label ('(label, x) ': xs) x where
5151 fieldName _ _ _ = Char8.pack (symbolVal (Proxy @label))
5252instance {-# OVERLAPPABLE #-} HasField label xs y
5353 => HasField label (x ': xs) y where
@@ -57,23 +57,22 @@ instance HasField label xs x => IsLabel label (Expression ps xs x) where
5757 fromLabel _ = UnsafeExpression $
5858 fieldName (Proxy @label) (Proxy @xs) (Proxy @x)
5959
60−data Identified ident x = (:=) ident x
6160data Alias label = Alias
62−data Aliased obj named where
63− As :: obj x -> Alias name -> Aliased obj (name ':= x)
61+data Aliased obj labeled where
62+ As :: obj x -> Alias label -> Aliased obj '(label, x)
6463instance IsLabel label (Alias label) where fromLabel _ = Alias
6564
66−unalias :: Aliased obj (name ':= x) -> obj x
65+unalias :: Aliased obj '(label, x) -> obj x
6766unalias (obj `As` _) = obj
6867
6968instance HasField label xs x =>
70− IsLabel label (Aliased (Expression ps xs) (label ':= x)) where
69+ IsLabel label (Aliased (Expression ps xs) '(label, x)) where
7170 fromLabel p = fromLabel p `As` fromLabel p
7271
7372renderAliased
74− :: KnownSymbol name
73+ :: KnownSymbol label
7574 => (obj x -> ByteString)
76− -> Aliased obj (name ':= x)
75+ -> Aliased obj '(label, x)
7776 -> ByteString
7877renderAliased render (obj `As` label) =
7978 render obj <> " AS " <> Char8.pack (symbolVal label)
@@ -83,14 +82,14 @@ class AllAliased xs where
8382 :: (forall x. obj x -> ByteString)
8483 -> Rec (Aliased obj) xs
8584 -> ByteString
86−instance KnownSymbol name => AllAliased '[name ':= x] where
85+instance KnownSymbol label => AllAliased '[ '(label, x)] where
8786 renderAllAliased render
88− (aliased :& RNil :: Rec (Aliased obj) '[name ':= x]) =
87+ (aliased :& RNil :: Rec (Aliased obj) '[ '(label, x)]) =
8988 renderAliased render aliased
90−instance (KnownSymbol name, AllAliased (x' ': xs))
91− => AllAliased ((name ':= x) ': (x' ': xs)) where
89+instance (KnownSymbol label, AllAliased (x' ': xs))
90+ => AllAliased ('(label, x) ': (x' ': xs)) where
9291 renderAllAliased render
93− (x :& xs :: Rec (Aliased obj) ((name ':= x) ': (x' : xs))) =
92+ (x :& xs :: Rec (Aliased obj) ('(label, x) ': x' : xs)) =
9493 renderAliased render x <> ", " <> renderAllAliased render xs
9594
9695instance IsString (Expression ps xs 'PGText) where
@@ -155,7 +154,7 @@ instance HasField label xss xs
155154 fieldName (Proxy @label) (Proxy @xss) (Proxy @xs)
156155
157156instance HasField label xss xs
158− => IsLabel label (Aliased (Relation ps xss) (label ':= xs)) where
157+ => IsLabel label (Aliased (Relation ps xss) '(label, xs)) where
159158 fromLabel p = fromLabel p `As` fromLabel p
160159
161160data Selection ps xss xs ys = Selection