Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module defines getting
, which turns a read-write optic into its
read-only counterpart.
Documentation
class ToReadOnly k s t a b where Source #
Class for read-write optics that have their read-only counterparts.
getting :: Optic k is s t a b -> Optic' (Join A_Getter k) is s a Source #
Turn read-write optic into its read-only counterpart (or leave read-only optics as-is).
This is useful when you have an optic ::
of read-write
kind Optic
k is s t a bk
such that s
, t
, a
, b
are rigid, there is no evidence that
s ~ t
and a ~ b
and you want to pass optic
to one of the functions
that accept read-only optic kinds.
Example:
>>>
let fstIntToChar = _1 :: Lens (Int, r) (Char, r) Int Char
>>>
:t view fstIntToChar
... ...Couldn't match type ‘Char’ with ‘Int’ ...
>>>
:t view (getting fstIntToChar)
view (getting fstIntToChar) :: (Int, r) -> Int
Instances
(s ~ t, a ~ b) => ToReadOnly A_Fold s t a b Source # | |
(s ~ t, a ~ b) => ToReadOnly An_AffineFold s t a b Source # | |
Defined in Optics.ReadOnly getting :: Optic An_AffineFold is s t a b -> Optic' (Join A_Getter An_AffineFold) is s a Source # | |
(s ~ t, a ~ b) => ToReadOnly A_Getter s t a b Source # | |
ToReadOnly A_ReversedPrism s t a b Source # | |
Defined in Optics.ReadOnly getting :: Optic A_ReversedPrism is s t a b -> Optic' (Join A_Getter A_ReversedPrism) is s a Source # | |
ToReadOnly A_Traversal s t a b Source # | |
Defined in Optics.ReadOnly getting :: Optic A_Traversal is s t a b -> Optic' (Join A_Getter A_Traversal) is s a Source # | |
ToReadOnly An_AffineTraversal s t a b Source # | |
Defined in Optics.ReadOnly getting :: Optic An_AffineTraversal is s t a b -> Optic' (Join A_Getter An_AffineTraversal) is s a Source # | |
ToReadOnly A_Prism s t a b Source # | |
ToReadOnly A_Lens s t a b Source # | |
ToReadOnly An_Iso s t a b Source # | |