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 #