| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Barbie.Internal.Bare
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=idbstrip.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 #
Minimal complete definition
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 #