| Copyright | (c) Fumiaki Kinoshita 2015 |
|---|---|
| License | BSD3 |
| Maintainer | Fumiaki Kinoshita <fumiexcel@gmail.com> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Data.Extensible.Wrapper
Description
Documentation
The extensible data types should take k -> * as a parameter.
This class allows us to take a shortcut for direct representation.
Minimal complete definition
Nothing
Methods
_Wrapper :: (Functor f, Profunctor p) => Optic' p f (h v) (Repr h v) Source
This is an isomorphism between h v and .Repr h v
_Wrapper :: Iso' (h v) (Repr h v)
Instances
| Wrapper * Identity Source | |
| Wrapper k (Proxy k) Source | |
| Wrapper k (Const' k a) Source | |
| Wrapper k h => Wrapper k (Nullable k h) Source | |
| Wrapper k h => Wrapper k (Match k h r) Source | |
| (Functor f, Wrapper k g) => Wrapper k (Comp * k f g) Source | |
| Wrapper (k -> *) (K1 k a) Source | |
| Wrapper k h => Wrapper (Assoc k k) (Field k k h) Source |
_WrapperAs :: (Functor f, Profunctor p, Wrapper h) => proxy v -> Optic' p f (h v) (Repr h v) Source
Restricted version of _Wrapper.
It is useful for eliminating ambiguousness.
Poly-kinded Const
Poly-kinded composition