Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type family Wear f a where ...
- data Bare a
- class FunctorB b => BareB b where
- bstripFrom :: BareB b => (forall a. f a -> a) -> b f -> b Bare
- bcoverWith :: BareB b => (forall a. a -> f a) -> b Bare -> b f
- class Gbstrip rep where
- gbstripDefault :: CanDeriveGenericInstance b => b Identity -> b Bare
- gbcoverDefault :: CanDeriveGenericInstance' b => b Bare -> b Identity
- type CanDeriveGenericInstance b = (Generic (b (Target I)), Generic (b (Target B)), Gbstrip (Rep (b (Target I))), Rep (b (Target B)) ~ Repl (Target I) (Target B) (Rep (b (Target I))))
- type CanDeriveGenericInstance' b = (Generic (b (Target I)), Generic (b (Target B)), Gbcover (Rep (b (Target B))), Rep (b (Target I)) ~ Repl (Target B) (Target I) (Rep (b (Target B))))
Documentation
class FunctorB b => BareB b where Source #
Class of Barbie-types defined using Wear
and can therefore
have Bare
versions. Must satisfy:
bcover
.bstrip
=id
bstrip
.bcover
=id
bstripFrom :: BareB b => (forall a. f a -> a) -> b f -> b Bare Source #
Generalization of bstrip
to arbitrary functors
bcoverWith :: BareB b => (forall a. a -> f a) -> b Bare -> b f Source #
Generalization of bcover
to arbitrary functors
class Gbstrip rep where Source #
Instances
Gbstrip (V1 :: * -> *) Source # | |
Gbstrip (U1 :: * -> *) Source # | |
(K1 i c :: * -> *) ~ Repl (Target I) (Target B) (K1 i c :: * -> *) => Gbstrip (K1 i c :: * -> *) Source # | |
(Gbstrip l, Gbstrip r) => Gbstrip (l :+: r) Source # | |
(Gbstrip l, Gbstrip r) => Gbstrip (l :*: r) Source # | |
Gbstrip x => Gbstrip (M1 i c x) Source # | |
gbstripDefault :: CanDeriveGenericInstance b => b Identity -> b Bare Source #
gbcoverDefault :: CanDeriveGenericInstance' b => b Bare -> b Identity Source #