| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Optics.ReadOnly
Description
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.
Methods
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 interactive:1:6: error: • Couldn't match type ‘Char’ with ‘Int’ Expected type: Optic' A_Lens NoIx (Int, r) Int Actual type: Lens (Int, r) (Char, r) Int Char • In the first argument of ‘view’, namely ‘fstIntToChar’ In the expression: view fstIntToChar λ> :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 Methods 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 Methods 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 Methods 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 Methods 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 # | |