on master help sign in
"Corep" is wrong. "Representable" is what I wanted.
4caf38dShane O'Brien
src/Rel8/Generic/Construction.hs+18−18
@@ -47,13 +47,13 @@ import Rel8.Generic.Construction.ADT
47 , GConstructableADT
47 , GConstructableADT
48 , GBuildADT, gbuildADT, gunbuildADT
48 , GBuildADT, gbuildADT, gunbuildADT
49 , GConstructADT, gconstructADT, gdeconstructADT
49 , GConstructADT, gconstructADT, gdeconstructADT
50− , CorepConstructors, GConstructors, gcindex, gctabulate
50+ , RepresentableConstructors, GConstructors, gcindex, gctabulate
51− , CorepFields, gfindex, gftabulate, gftraverse
51+ , RepresentableFields, gfindex, gftabulate, gftraverse
52 )
52 )
53import Rel8.Generic.Construction.Record
53import Rel8.Generic.Construction.Record
54 ( GConstructor
54 ( GConstructor
55 , GConstructable, GConstruct, gconstruct, gdeconstruct
55 , GConstructable, GConstruct, gconstruct, gdeconstruct
56− , Corep, gindex, gtabulate, gtraverse
56+ , Representable, gindex, gtabulate, gtraverse
57 )
57 )
58import Rel8.Generic.Table ( GGColumns )
58import Rel8.Generic.Table ( GGColumns )
59import Rel8.Kind.Algebra
59import Rel8.Kind.Algebra
@@ -99,14 +99,14 @@ type family GGBuildable' algebra name rep where
99 GGBuildable' 'K.Product name rep =
99 GGBuildable' 'K.Product name rep =
100 ( name ~ GConstructor (Eval (rep (Reify Expr)))
100 ( name ~ GConstructor (Eval (rep (Reify Expr)))
101 , name ~ GConstructor (Eval (rep (Reify Insert)))
101 , name ~ GConstructor (Eval (rep (Reify Insert)))
102− , Corep TUnreify (Eval (rep (Reify Expr)))
102+ , Representable TUnreify (Eval (rep (Reify Expr)))
103− , Corep TUnreify (Eval (rep (Reify Insert)))
103+ , Representable TUnreify (Eval (rep (Reify Insert)))
104 , GConstructable (TTable (Reify Expr)) TColumns TUnreify (Col (Reify Expr)) (Eval (rep (Reify Expr)))
104 , GConstructable (TTable (Reify Expr)) TColumns TUnreify (Col (Reify Expr)) (Eval (rep (Reify Expr)))
105 , GConstructable (TTable (Reify Insert)) TColumns TUnreify (Col (Reify Insert)) (Eval (rep (Reify Insert)))
105 , GConstructable (TTable (Reify Insert)) TColumns TUnreify (Col (Reify Insert)) (Eval (rep (Reify Insert)))
106 )
106 )
107 GGBuildable' 'K.Sum name rep =
107 GGBuildable' 'K.Sum name rep =
108− ( Corep TUnreify (GConstructorADT name (Eval (rep (Reify Expr))))
108+ ( Representable TUnreify (GConstructorADT name (Eval (rep (Reify Expr))))
109− , Corep TUnreify (GConstructorADT name (Eval (rep (Reify Insert))))
109+ , Representable TUnreify (GConstructorADT name (Eval (rep (Reify Insert))))
110 , GMakeableADT (TTable (Reify Expr)) TColumns TUnreify (Col (Reify Expr)) name (Eval (rep (Reify Expr)))
110 , GMakeableADT (TTable (Reify Expr)) TColumns TUnreify (Col (Reify Expr)) name (Eval (rep (Reify Expr)))
111 , GMakeableADT (TTable (Reify Insert)) TColumns TUnreify (Col (Reify Insert)) name (Eval (rep (Reify Insert)))
111 , GMakeableADT (TTable (Reify Insert)) TColumns TUnreify (Col (Reify Insert)) name (Eval (rep (Reify Insert)))
112 )
112 )
@@ -213,23 +213,23 @@ type GGConstructable algebra rep =
213type GGConstructable' :: K.Algebra -> (K.Context -> Exp (Type -> Type)) -> Constraint
213type GGConstructable' :: K.Algebra -> (K.Context -> Exp (Type -> Type)) -> Constraint
214type family GGConstructable' algebra rep where
214type family GGConstructable' algebra rep where
215 GGConstructable' 'K.Product rep =
215 GGConstructable' 'K.Product rep =
216− ( Corep (Compose Aggregate TUnreify) (Eval (rep (Reify Expr)))
216+ ( Representable (Compose Aggregate TUnreify) (Eval (rep (Reify Expr)))
217− , Corep TUnreify (Eval (rep (Reify Aggregate)))
217+ , Representable TUnreify (Eval (rep (Reify Aggregate)))
218− , Corep TUnreify (Eval (rep (Reify Expr)))
218+ , Representable TUnreify (Eval (rep (Reify Expr)))
219− , Corep TUnreify (Eval (rep (Reify Insert)))
219+ , Representable TUnreify (Eval (rep (Reify Insert)))
220− , Corep TUnreify (Eval (rep (Reify Name)))
220+ , Representable TUnreify (Eval (rep (Reify Name)))
221 , GConstructable (TTable (Reify Aggregate)) TColumns TUnreify (Col (Reify Aggregate)) (Eval (rep (Reify Aggregate)))
221 , GConstructable (TTable (Reify Aggregate)) TColumns TUnreify (Col (Reify Aggregate)) (Eval (rep (Reify Aggregate)))
222 , GConstructable (TTable (Reify Expr)) TColumns TUnreify (Col (Reify Expr)) (Eval (rep (Reify Expr)))
222 , GConstructable (TTable (Reify Expr)) TColumns TUnreify (Col (Reify Expr)) (Eval (rep (Reify Expr)))
223 , GConstructable (TTable (Reify Insert)) TColumns TUnreify (Col (Reify Insert)) (Eval (rep (Reify Insert)))
223 , GConstructable (TTable (Reify Insert)) TColumns TUnreify (Col (Reify Insert)) (Eval (rep (Reify Insert)))
224 , GConstructable (TTable (Reify Name)) TColumns TUnreify (Col (Reify Name)) (Eval (rep (Reify Name)))
224 , GConstructable (TTable (Reify Name)) TColumns TUnreify (Col (Reify Name)) (Eval (rep (Reify Name)))
225 )
225 )
226 GGConstructable' 'K.Sum rep =
226 GGConstructable' 'K.Sum rep =
227− ( CorepConstructors TUnreify (Eval (rep (Reify Expr)))
227+ ( RepresentableConstructors TUnreify (Eval (rep (Reify Expr)))
228− , CorepConstructors TUnreify (Eval (rep (Reify Insert)))
228+ , RepresentableConstructors TUnreify (Eval (rep (Reify Insert)))
229− , CorepFields (Compose Aggregate TUnreify) (Eval (rep (Reify Expr)))
229+ , RepresentableFields (Compose Aggregate TUnreify) (Eval (rep (Reify Expr)))
230− , CorepFields TUnreify (Eval (rep (Reify Aggregate)))
230+ , RepresentableFields TUnreify (Eval (rep (Reify Aggregate)))
231− , CorepFields TUnreify (Eval (rep (Reify Expr)))
231+ , RepresentableFields TUnreify (Eval (rep (Reify Expr)))
232− , CorepFields TUnreify (Eval (rep (Reify Name)))
232+ , RepresentableFields TUnreify (Eval (rep (Reify Name)))
233 , Functor (GConstructors TUnreify (Eval (rep (Reify Expr))))
233 , Functor (GConstructors TUnreify (Eval (rep (Reify Expr))))
234 , Functor (GConstructors TUnreify (Eval (rep (Reify Insert))))
234 , Functor (GConstructors TUnreify (Eval (rep (Reify Insert))))
235 , GConstructableADT (TTable (Reify Aggregate)) TColumns TUnreify (Col (Reify Aggregate)) (Eval (rep (Reify Aggregate)))
235 , GConstructableADT (TTable (Reify Aggregate)) TColumns TUnreify (Col (Reify Aggregate)) (Eval (rep (Reify Aggregate)))
src/Rel8/Generic/Construction/ADT.hs+14−14
@@ -16,8 +16,8 @@ module Rel8.Generic.Construction.ADT
16 ( GConstructableADT
16 ( GConstructableADT
17 , GBuildADT, gbuildADT, gunbuildADT
17 , GBuildADT, gbuildADT, gunbuildADT
18 , GConstructADT, gconstructADT, gdeconstructADT
18 , GConstructADT, gconstructADT, gdeconstructADT
19− , GFields, CorepFields, gftabulate, gfindex, gftraverse
19+ , GFields, RepresentableFields, gftabulate, gfindex, gftraverse
20− , GConstructors, CorepConstructors, gctabulate, gcindex
20+ , GConstructors, RepresentableConstructors, gctabulate, gcindex
21 , GConstructorADT, GMakeableADT, gmakeADT
21 , GConstructorADT, GMakeableADT, gmakeADT
22 )
22 )
23where
23where
@@ -44,7 +44,7 @@ import Prelude hiding ( null )
44import Rel8.FCF ( Compose, Exp )
44import Rel8.FCF ( Compose, Exp )
45import Rel8.Generic.Construction.Record
45import Rel8.Generic.Construction.Record
46 ( GConstruct, GConstructable, gconstruct, gdeconstruct
46 ( GConstruct, GConstructable, gconstruct, gdeconstruct
47− , GFields, Corep, gtabulate, gindex, gtraverse
47+ , GFields, Representable, gtabulate, gindex, gtraverse
48 , FromColumns, ToColumns
48 , FromColumns, ToColumns
49 )
49 )
50import Rel8.Generic.Table.ADT ( GColumnsADT, GColumnsADT' )
50import Rel8.Generic.Table.ADT ( GColumnsADT, GColumnsADT' )
@@ -126,26 +126,26 @@ type family GConstructors f rep where
126 GConstructors f (M1 C _ rep) = (->) (GFields f rep)
126 GConstructors f (M1 C _ rep) = (->) (GFields f rep)
127
127
128
128
129−type CorepConstructors :: (Type -> Exp Type) -> (Type -> Type) -> Constraint
129+type RepresentableConstructors :: (Type -> Exp Type) -> (Type -> Type) -> Constraint
130−class CorepConstructors f rep where
130+class RepresentableConstructors f rep where
131 gctabulate :: (GConstructors f rep r -> a) -> GConstructADT f rep r a
131 gctabulate :: (GConstructors f rep r -> a) -> GConstructADT f rep r a
132 gcindex :: GConstructADT f rep r a -> GConstructors f rep r -> a
132 gcindex :: GConstructADT f rep r a -> GConstructors f rep r -> a
133
133
134
134
135−instance CorepConstructors f rep => CorepConstructors f (M1 D meta rep) where
135+instance RepresentableConstructors f rep => RepresentableConstructors f (M1 D meta rep) where
136 gctabulate = gctabulate @f @rep
136 gctabulate = gctabulate @f @rep
137 gcindex = gcindex @f @rep
137 gcindex = gcindex @f @rep
138
138
139
139
140−instance (CorepConstructors f a, CorepConstructors f b) =>
140+instance (RepresentableConstructors f a, RepresentableConstructors f b) =>
141− CorepConstructors f (a :+: b)
141+ RepresentableConstructors f (a :+: b)
142 where
142 where
143 gctabulate f =
143 gctabulate f =
144 gctabulate @f @a \a -> gctabulate @f @b \b -> f (a :*: b)
144 gctabulate @f @a \a -> gctabulate @f @b \b -> f (a :*: b)
145 gcindex f (a :*: b) = gcindex @f @b (gcindex @f @a f a) b
145 gcindex f (a :*: b) = gcindex @f @b (gcindex @f @a f a) b
146
146
147
147
148−instance Corep f rep => CorepConstructors f (M1 C meta rep) where
148+instance Representable f rep => RepresentableConstructors f (M1 C meta rep) where
149 gctabulate f = f . gindex @f @rep
149 gctabulate f = f . gindex @f @rep
150 gcindex f = f . gtabulate @f @rep
150 gcindex f = f . gtabulate @f @rep
151
151
@@ -164,8 +164,8 @@ type family GFieldsADT f rep where
164 GFieldsADT f (M1 C _ rep) = GFields f rep
164 GFieldsADT f (M1 C _ rep) = GFields f rep
165
165
166
166
167−type CorepFields :: (Type -> Exp Type) -> (Type -> Type) -> Constraint
167+type RepresentableFields :: (Type -> Exp Type) -> (Type -> Type) -> Constraint
168−class CorepFields f rep where
168+class RepresentableFields f rep where
169 gftabulate :: (GFieldsADT f rep -> a) -> GBuildADT f rep a
169 gftabulate :: (GFieldsADT f rep -> a) -> GBuildADT f rep a
170 gfindex :: GBuildADT f rep a -> GFieldsADT f rep -> a
170 gfindex :: GBuildADT f rep a -> GFieldsADT f rep -> a
171 gftraverse :: Applicative m
171 gftraverse :: Applicative m
@@ -173,20 +173,20 @@ class CorepFields f rep where
173 -> GFieldsADT (Compose g f) rep -> m (GFieldsADT f rep)
173 -> GFieldsADT (Compose g f) rep -> m (GFieldsADT f rep)
174
174
175
175
176−instance CorepFields f rep => CorepFields f (M1 D meta rep) where
176+instance RepresentableFields f rep => RepresentableFields f (M1 D meta rep) where
177 gftabulate = gftabulate @f @rep
177 gftabulate = gftabulate @f @rep
178 gfindex = gfindex @f @rep
178 gfindex = gfindex @f @rep
179 gftraverse = gftraverse @f @rep
179 gftraverse = gftraverse @f @rep
180
180
181
181
182−instance (CorepFields f a, CorepFields f b) => CorepFields f (a :+: b) where
182+instance (RepresentableFields f a, RepresentableFields f b) => RepresentableFields f (a :+: b) where
183 gftabulate f =
183 gftabulate f =
184 gftabulate @f @a \a -> gftabulate @f @b \b -> f (a, b)
184 gftabulate @f @a \a -> gftabulate @f @b \b -> f (a, b)
185 gfindex f (a, b) = gfindex @f @b (gfindex @f @a f a) b
185 gfindex f (a, b) = gfindex @f @b (gfindex @f @a f a) b
186 gftraverse f (a, b) = liftA2 (,) (gftraverse @f @a f a) (gftraverse @f @b f b)
186 gftraverse f (a, b) = liftA2 (,) (gftraverse @f @a f a) (gftraverse @f @b f b)
187
187
188
188
189−instance Corep f rep => CorepFields f (M1 C meta rep) where
189+instance Representable f rep => RepresentableFields f (M1 C meta rep) where
190 gftabulate = gtabulate @f @rep
190 gftabulate = gtabulate @f @rep
191 gfindex = gindex @f @rep
191 gfindex = gindex @f @rep
192 gftraverse = gtraverse @f @rep
192 gftraverse = gtraverse @f @rep
src/Rel8/Generic/Construction/Record.hs+8−8
@@ -13,7 +13,7 @@
13
13
14module Rel8.Generic.Construction.Record
14module Rel8.Generic.Construction.Record
15 ( GConstructor, GConstruct, GConstructable, gconstruct, gdeconstruct
15 ( GConstructor, GConstruct, GConstructable, gconstruct, gdeconstruct
16− , GFields, Corep, gtabulate, gindex, gtraverse
16+ , GFields, Representable, gtabulate, gindex, gtraverse
17 , FromColumns, ToColumns
17 , FromColumns, ToColumns
18 )
18 )
19where
19where
@@ -88,8 +88,8 @@ type family GFields f rep where
88 GFields f (K1 _ a) = Eval (f a)
88 GFields f (K1 _ a) = Eval (f a)
89
89
90
90
91−type Corep :: (Type -> Exp Type) -> (Type -> Type) -> Constraint
91+type Representable :: (Type -> Exp Type) -> (Type -> Type) -> Constraint
92−class Corep f rep where
92+class Representable f rep where
93 gtabulate :: (GFields f rep -> a) -> GConstruct f rep a
93 gtabulate :: (GFields f rep -> a) -> GConstruct f rep a
94 gindex :: GConstruct f rep a -> GFields f rep -> a
94 gindex :: GConstruct f rep a -> GFields f rep -> a
95 gtraverse :: Applicative m
95 gtraverse :: Applicative m
@@ -97,27 +97,27 @@ class Corep f rep where
97 -> GFields (Compose g f) rep -> m (GFields f rep)
97 -> GFields (Compose g f) rep -> m (GFields f rep)
98
98
99
99
100−instance Corep f rep => Corep f (M1 i meta rep) where
100+instance Representable f rep => Representable f (M1 i meta rep) where
101 gtabulate = gtabulate @f @rep
101 gtabulate = gtabulate @f @rep
102 gindex = gindex @f @rep
102 gindex = gindex @f @rep
103 gtraverse = gtraverse @f @rep
103 gtraverse = gtraverse @f @rep
104
104
105
105
106−instance (Corep f a, Corep f b) =>
106+instance (Representable f a, Representable f b) =>
107− Corep f (a :*: b)
107+ Representable f (a :*: b)
108 where
108 where
109 gtabulate f = gtabulate @f @a \a -> gtabulate @f @b \b -> f (a, b)
109 gtabulate f = gtabulate @f @a \a -> gtabulate @f @b \b -> f (a, b)
110 gindex f (a, b) = gindex @f @b (gindex @f @a f a) b
110 gindex f (a, b) = gindex @f @b (gindex @f @a f a) b
111 gtraverse f (a, b) = liftA2 (,) (gtraverse @f @a f a) (gtraverse @f @b f b)
111 gtraverse f (a, b) = liftA2 (,) (gtraverse @f @a f a) (gtraverse @f @b f b)
112
112
113
113
114−instance Corep f U1 where
114+instance Representable f U1 where
115 gtabulate = ($ ())
115 gtabulate = ($ ())
116 gindex = const
116 gindex = const
117 gtraverse = const pure
117 gtraverse = const pure
118
118
119
119
120−instance Corep f (K1 i a) where
120+instance Representable f (K1 i a) where
121 gtabulate = id
121 gtabulate = id
122 gindex = id
122 gindex = id
123 gtraverse = id
123 gtraverse = id