Hello there. I was wondering if you'd be amenable to adding the following classes (and ways of deriving them):
type Lens' s a = Lens' { project :: forall f. Functor f => (a -> f a) -> s -> f s }
type ProductLike :: (k -> Type) -> Type
class ProductLike t
where
lenses :: t (Lens' (t Identity))
and:
type BTraversable1 :: (k -> Type) -> Type
class BTraversable t => BTraversable1 t
where
btraverse1 :: Apply e => (forall a. f a -> e (g a)) -> b f -> e (b g)
There might be some way to turn ProductLike in a sensible way (perhaps involving Co) but based on my rushed thinking so far I haven't been able to think of anything.
Hello there. I was wondering if you'd be amenable to adding the following classes (and ways of deriving them):
and:
There might be some way to turn
ProductLikein a sensible way (perhaps involvingCo) but based on my rushed thinking so far I haven't been able to think of anything.