Copyright | (c) Fumiaki Kinoshita 2017 |
---|---|
License | BSD3 |
Maintainer | Fumiaki Kinoshita <fumiexcel@gmail.com> |
Safe Haskell | Safe |
Language | Haskell2010 |
Documentation
class Wrapper h where Source #
The extensible data types should take k -> *
as a parameter.
This class allows us to take a shortcut for direct representation.
_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 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 * [] Source # | |
Wrapper * Maybe Source # | |
Wrapper * Identity Source # | |
Wrapper v h => Wrapper (Assoc k v) (Field k v 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