| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Optics.ReadOnly
Description
This module defines getting, which turns a read-write optic into its
read-only counterpart.
Synopsis
- class ToReadOnly k s t a b where
- type ReadOnlyOptic k :: OpticKind
- getting :: Optic k is s t a b -> Optic' (ReadOnlyOptic k) is s a
Documentation
class ToReadOnly k s t a b where Source #
Class for read-write optics that have their read-only counterparts.
Associated Types
type ReadOnlyOptic k :: OpticKind Source #
Methods
getting :: Optic k is s t a b -> Optic' (ReadOnlyOptic 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