lens-3.10: Lenses, Folds and Traversals

Portability | non-portable
Stability | experimental
Maintainer | Edward Kmett <ekmett@gmail.com>
Safe Haskell | Trustworthy

Data.Text.Strict.Lens

Description

Synopsis

- packed :: Iso' String Text
- unpacked :: Iso' Text String
- builder :: Iso' Text Builder
- text :: IndexedTraversal' Int Text Char

# Documentation

packed :: Iso' String Text Source

This isomorphism can be used to `pack` (or `unpack`) strict `Text`.

    >>> "hello"^.packed -- :: Text
    "hello"

     pack x ≡ x ^. packed
     unpack x ≡ x ^. from packed
     packed ≡ from unpacked
     packed ≡ iso pack unpack

unpacked :: Iso' Text String Source

This isomorphism can be used to `unpack` (or `pack`) lazy `Text`.

    >>> "hello"^.unpacked -- :: String
    "hello"

This `Iso` is provided for notational convenience rather than out of great need, since

     unpacked ≡ from packed

     pack x ≡ x ^. from unpacked
     unpack x ≡ x ^. packed
     unpacked ≡ iso unpack pack

builder :: Iso' Text Builder Source

Convert between strict `Text` and `Builder` .

     fromText x ≡ x ^. builder
     toStrict (toLazyText x) ≡ x ^. from builder

text :: IndexedTraversal' Int Text Char Source

Traverse the individual characters in strict `Text`.

    >>> anyOf text (=='o') "hello"
    True

When the type is unambiguous, you can also use the more general `each`.

     text ≡ unpacked . traversed
     text ≡ each