1- module SqlSquare .Lenses where
1+ module SqlSquared .Lenses where
22
33import Prelude
44
@@ -12,8 +12,8 @@ import Data.NonEmpty as NE
1212
1313import Matryoshka (class Recursive , class Corecursive , embed , project )
1414
15- import SqlSquare .Signature as S
16- import SqlSquare .Utils (type (×), (∘), (⋙))
15+ import SqlSquared .Signature as S
16+ import SqlSquared .Utils (type (×), (∘), (⋙))
1717
1818_GroupBy ∷ ∀ a . Iso' (S.GroupBy a ) { keys ∷ L.List a , having ∷ M.Maybe a }
1919_GroupBy = _Newtype
@@ -131,159 +131,179 @@ _tablePath = lens _.tablePath _{ tablePath = _ }
131131
132132_SetLiteral
133133 ∷ ∀ t f
134- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
134+ . Recursive t (S.SqlF f )
135+ ⇒ Corecursive t (S.SqlF f )
135136 ⇒ Prism' t (L.List t )
136137_SetLiteral = prism' (embed ∘ S.SetLiteral ) $ project ⋙ case _ of
137138 S.SetLiteral lst → M.Just lst
138139 _ → M.Nothing
139140
140141_Literal
141142 ∷ ∀ t f
142- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
143+ . Recursive t (S.SqlF f )
144+ ⇒ Corecursive t (S.SqlF f )
143145 ⇒ Prism' t (f t )
144146_Literal = prism' (embed ∘ S.Literal ) $ project ⋙ case _ of
145147 S.Literal js → M.Just js
146148 _ → M.Nothing
147149
148150_ArrayLiteral
149151 ∷ ∀ t
150- . (Recursive t (S.SqlF EJ.EJsonF ), Corecursive t (S.SqlF EJ.EJsonF ))
152+ . Recursive t (S.SqlF EJ.EJsonF )
153+ ⇒ Corecursive t (S.SqlF EJ.EJsonF )
151154 ⇒ Prism' t (Array t )
152155_ArrayLiteral = prism' (embed ∘ S.Literal ∘ EJ.Array ) $ project ⋙ case _ of
153156 S.Literal (EJ.Array a) → M.Just a
154157 _ → M.Nothing
155158
156159_MapLiteral
157160 ∷ ∀ t
158- . (Recursive t (S.SqlF EJ.EJsonF ), Corecursive t (S.SqlF EJ.EJsonF ))
161+ . Recursive t (S.SqlF EJ.EJsonF )
162+ ⇒ Corecursive t (S.SqlF EJ.EJsonF )
159163 ⇒ Prism' t (Array (t × t ))
160164_MapLiteral = prism' (embed ∘ S.Literal ∘ EJ.Map ∘ EJ.EJsonMap ) $ project ⋙ case _ of
161165 S.Literal (EJ.Map (EJ.EJsonMap tpls)) → M.Just tpls
162166 _ → M.Nothing
163167
164168_Splice
165169 ∷ ∀ t f
166- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
170+ . Recursive t (S.SqlF f )
171+ ⇒ Corecursive t (S.SqlF f )
167172 ⇒ Prism' t (M.Maybe t )
168173_Splice = prism' (embed ∘ S.Splice ) $ project ⋙ case _ of
169174 S.Splice m → M.Just m
170175 _ → M.Nothing
171176
172177_Binop
173178 ∷ ∀ t f
174- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
179+ . Recursive t (S.SqlF f )
180+ ⇒ Corecursive t (S.SqlF f )
175181 ⇒ Prism' t (S.BinopR t )
176182_Binop = prism' (embed ∘ S.Binop ) $ project ⋙ case _ of
177183 S.Binop b → M.Just b
178184 _ → M.Nothing
179185
180186_Unop
181187 ∷ ∀ t f
182- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
188+ . Recursive t (S.SqlF f )
189+ ⇒ Corecursive t (S.SqlF f )
183190 ⇒ Prism' t (S.UnopR t )
184191_Unop = prism' (embed ∘ S.Unop ) $ project ⋙ case _ of
185192 S.Unop r → M.Just r
186193 _ → M.Nothing
187194
188195_Ident
189196 ∷ ∀ t f
190- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
197+ . Recursive t (S.SqlF f )
198+ ⇒ Corecursive t (S.SqlF f )
191199 ⇒ Prism' t String
192200_Ident = prism' (embed ∘ S.Ident ) $ project ⋙ case _ of
193201 S.Ident s → M.Just s
194202 _ → M.Nothing
195203
196204_InvokeFunction
197205 ∷ ∀ t f
198- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
206+ . Recursive t (S.SqlF f )
207+ ⇒ Corecursive t (S.SqlF f )
199208 ⇒ Prism' t (S.InvokeFunctionR t )
200209_InvokeFunction = prism' (embed ∘ S.InvokeFunction ) $ project ⋙ case _ of
201210 S.InvokeFunction r → M.Just r
202211 _ → M.Nothing
203212
204213_Match
205214 ∷ ∀ t f
206- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
215+ . Recursive t (S.SqlF f )
216+ ⇒ Corecursive t (S.SqlF f )
207217 ⇒ Prism' t (S.MatchR t )
208218_Match = prism' (embed ∘ S.Match ) $ project ⋙ case _ of
209219 S.Match r → M.Just r
210220 _ → M.Nothing
211221
212222_Switch
213223 ∷ ∀ t f
214- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
224+ . Recursive t (S.SqlF f )
225+ ⇒ Corecursive t (S.SqlF f )
215226 ⇒ Prism' t (S.SwitchR t )
216227_Switch = prism' (embed ∘ S.Switch ) $ project ⋙ case _ of
217228 S.Switch r → M.Just r
218229 _ → M.Nothing
219230
220231_Let
221232 ∷ ∀ t f
222- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
233+ . Recursive t (S.SqlF f )
234+ ⇒ Corecursive t (S.SqlF f )
223235 ⇒ Prism' t (S.LetR t )
224236_Let = prism' (embed ∘ S.Let ) $ project ⋙ case _ of
225237 S.Let r → M.Just r
226238 _ → M.Nothing
227239
228240_IntLiteral
229241 ∷ ∀ t
230- . (Recursive t (S.SqlF EJ.EJsonF ), Corecursive t (S.SqlF EJ.EJsonF ))
242+ . Recursive t (S.SqlF EJ.EJsonF )
243+ ⇒ Corecursive t (S.SqlF EJ.EJsonF )
231244 ⇒ Prism' t Int
232245_IntLiteral = prism' (embed ∘ S.Literal ∘ EJ.Integer ) $ project ⋙ case _ of
233246 S.Literal (EJ.Integer r) → M.Just r
234247 _ → M.Nothing
235248
236249_DecimalLiteral
237250 ∷ ∀ t
238- . (Recursive t (S.SqlF EJ.EJsonF ), Corecursive t (S.SqlF EJ.EJsonF ))
251+ . Recursive t (S.SqlF EJ.EJsonF )
252+ ⇒ Corecursive t (S.SqlF EJ.EJsonF )
239253 ⇒ Prism' t HN.HugeNum
240254_DecimalLiteral = prism' (embed ∘ S.Literal ∘ EJ.Decimal ) $ project ⋙ case _ of
241255 S.Literal (EJ.Decimal r) → M.Just r
242256 _ → M.Nothing
243257
244258_StringLiteral
245259 ∷ ∀ t
246- . (Recursive t (S.SqlF EJ.EJsonF ), Corecursive t (S.SqlF EJ.EJsonF ))
260+ . Recursive t (S.SqlF EJ.EJsonF )
261+ ⇒ Corecursive t (S.SqlF EJ.EJsonF )
247262 ⇒ Prism' t String
248263_StringLiteral = prism' (embed ∘ S.Literal ∘ EJ.String ) $ project ⋙ case _ of
249264 S.Literal (EJ.String r) → M.Just r
250265 _ → M.Nothing
251266
252267_NullLiteral
253268 ∷ ∀ t
254- . (Recursive t (S.SqlF EJ.EJsonF ), Corecursive t (S.SqlF EJ.EJsonF ))
269+ . Recursive t (S.SqlF EJ.EJsonF )
270+ ⇒ Corecursive t (S.SqlF EJ.EJsonF )
255271 ⇒ Prism' t Unit
256272_NullLiteral = prism' (const $ embed $ S.Literal EJ.Null ) $ project ⋙ case _ of
257273 S.Literal EJ.Null → M.Just unit
258274 _ → M.Nothing
259275
260276_BoolLiteral
261277 ∷ ∀ t
262- . (Recursive t (S.SqlF EJ.EJsonF ), Corecursive t (S.SqlF EJ.EJsonF ))
278+ . Recursive t (S.SqlF EJ.EJsonF )
279+ ⇒ Corecursive t (S.SqlF EJ.EJsonF )
263280 ⇒ Prism' t Boolean
264281_BoolLiteral = prism' (embed ∘ S.Literal ∘ EJ.Boolean ) $ project ⋙ case _ of
265282 S.Literal (EJ.Boolean b) → M.Just b
266283 _ → M.Nothing
267284
268285_Vari
269286 ∷ ∀ t f
270- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
287+ . Recursive t (S.SqlF f )
288+ ⇒ Corecursive t (S.SqlF f )
271289 ⇒ Prism' t String
272290_Vari = prism' (embed ∘ S.Vari ) $ project ⋙ case _ of
273291 S.Vari r → M.Just r
274292 _ → M.Nothing
275293
276294_Select
277295 ∷ ∀ t f
278- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
296+ . Recursive t (S.SqlF f )
297+ ⇒ Corecursive t (S.SqlF f )
279298 ⇒ Prism' t (S.SelectR t )
280299_Select = prism' (embed ∘ S.Select ) $ project ⋙ case _ of
281300 S.Select r → M.Just r
282301 _ → M.Nothing
283302
284303_Parens
285304 ∷ ∀ t f
286- . (Recursive t (S.SqlF f ), Corecursive t (S.SqlF f ))
305+ . Recursive t (S.SqlF f )
306+ ⇒ Corecursive t (S.SqlF f )
287307 ⇒ Prism' t t
288308_Parens = prism' (embed ∘ S.Parens ) $ project ⋙ case _ of
289309 S.Parens t → M.Just t
0 commit comments