@@ -12,8 +12,7 @@
12{-# language UndecidableInstances #-}
12{-# language UndecidableInstances #-}
14module Rel8.Generic.Table
14module Rel8.Generic.Table
15− ( GTable, GColumns, GContext, GUnreify
16− , fromGColumns, toGColumns, gtable, greify, gunreify
15+ ( GTable, GColumns, GContext, fromGColumns, toGColumns, gtable
@@ -54,14 +53,6 @@ type family GContext _Context rep where
54 GContext _Context (K1 _ a) = Eval (_Context a)
53 GContext _Context (K1 _ a) = Eval (_Context a)
57−type GUnreify :: (Type -> Exp a) -> (Type -> Type) -> Type -> Type
58−type family GUnreify _Unreify rep where
59− GUnreify _Unreify (M1 i c rep) = M1 i c (GUnreify _Unreify rep)
60− GUnreify _Unreify (rep1 :*: rep2) =
61− GUnreify _Unreify rep1 :*: GUnreify _Unreify rep2
62− GUnreify _Unreify (K1 i a) = K1 i (Eval (_Unreify a))
65type GTable
56type GTable
66 :: (Type -> Exp Constraint)
57 :: (Type -> Exp Constraint)
67 -> (Type -> Exp K.HTable)
58 -> (Type -> Exp K.HTable)
@@ -82,18 +73,6 @@ class GTable _Table _Columns context rep
82 => (forall a. Eval (_Table a) => Proxy a -> Eval (_Columns a) context)
73 => (forall a. Eval (_Table a) => Proxy a -> Eval (_Columns a) context)
83 -> GColumns _Columns rep context
74 -> GColumns _Columns rep context
87− -> (forall a. Eval (_Table a) => Eval (_Unreify a) -> a)
88− -> GUnreify _Unreify rep x
93− -> (forall a. Eval (_Table a) => a -> Eval (_Unreify a))
95− -> GUnreify _Unreify rep x
98instance GTable _Table _Columns context rep =>
77instance GTable _Table _Columns context rep =>
99 GTable _Table _Columns context (M1 D c rep)
78 GTable _Table _Columns context (M1 D c rep)
@@ -103,10 +82,6 @@ instance GTable _Table _Columns context rep =>
103 toGColumns toColumns (M1 a) =
82 toGColumns toColumns (M1 a) =
104 toGColumns @_Table @_Columns @context @rep toColumns a
83 toGColumns @_Table @_Columns @context @rep toColumns a
105 gtable = gtable @_Table @_Columns @context @rep
84 gtable = gtable @_Table @_Columns @context @rep
106− greify proxy reify (M1 a) =
107− M1 (greify @_Table @_Columns @context @rep proxy reify a)
108− gunreify proxy unreify (M1 a) =
109− M1 (gunreify @_Table @_Columns @context @rep proxy unreify a)
112instance GTable _Table _Columns context rep =>
87instance GTable _Table _Columns context rep =>
@@ -117,10 +92,6 @@ instance GTable _Table _Columns context rep =>
117 toGColumns toColumns (M1 a) =
92 toGColumns toColumns (M1 a) =
118 toGColumns @_Table @_Columns @context @rep toColumns a
93 toGColumns @_Table @_Columns @context @rep toColumns a
119 gtable = gtable @_Table @_Columns @context @rep
94 gtable = gtable @_Table @_Columns @context @rep
120− greify proxy reify (M1 a) =
121− M1 (greify @_Table @_Columns @context @rep proxy reify a)
122− gunreify proxy unreify (M1 a) =
123− M1 (gunreify @_Table @_Columns @context @rep proxy unreify a)
@@ -138,12 +109,6 @@ instance
138 gtable table = HProduct
109 gtable table = HProduct
139 (gtable @_Table @_Columns @context @rep1 table)
110 (gtable @_Table @_Columns @context @rep1 table)
140 (gtable @_Table @_Columns @context @rep2 table)
111 (gtable @_Table @_Columns @context @rep2 table)
141− greify proxy reify (a :*: b) =
142− greify @_Table @_Columns @context @rep1 proxy reify a :*:
143− greify @_Table @_Columns @context @rep2 proxy reify b
144− gunreify proxy unreify (a :*: b) =
145− gunreify @_Table @_Columns @context @rep1 proxy unreify a :*:
146− gunreify @_Table @_Columns @context @rep2 proxy unreify b
@@ -159,5 +124,3 @@ instance
159 fromGColumns fromColumns = M1 . K1 . fromColumns . hunlabel hunlabeler
124 fromGColumns fromColumns = M1 . K1 . fromColumns . hunlabel hunlabeler
160 toGColumns toColumns (M1 (K1 a)) = hlabel hlabeler (toColumns a)
125 toGColumns toColumns (M1 (K1 a)) = hlabel hlabeler (toColumns a)
161 gtable table = hlabel hlabeler (table (Proxy @a))
126 gtable table = hlabel hlabeler (table (Proxy @a))
162− greify _ reify (M1 (K1 a)) = M1 (K1 (reify a))
163− gunreify _ unreify (M1 (K1 a)) = M1 (K1 (unreify a))