Copyright | (c) Fumiaki Kinoshita 2015 |
---|---|
License | BSD3 |
Maintainer | Fumiaki Kinoshita <fumiexcel@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Documentation
The extensible data types should take k -> *
as a parameter.
This class allows us to take a shortcut for direct representation.
Nothing
_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)
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