Control.Lens.Internal.Iso

lens-4.14: Lenses, Folds and Traversals

Copyright | (C) 2012-2016 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | experimental
Portability | non-portable
Safe Haskell | Trustworthy
Language | Haskell98

Control.Lens.Internal.Iso

Description

Synopsis

- data Exchange a b s t = Exchange (s -> a) (b -> t)
- class Reversing t where

# Documentation

data Exchange a b s t #

This is used internally by the `Iso` code to provide efficient access to the two functions that make up an isomorphism.

Constructors

Exchange (s -> a) (b -> t) |

Instances

Profunctor (Exchange a b) # |
Methods dimap :: (a -> b) -> (c -> d) -> Exchange a b b c -> Exchange a b a d # lmap :: (a -> b) -> Exchange a b b c -> Exchange a b a c # rmap :: (b -> c) -> Exchange a b a b -> Exchange a b a c # (#.) :: Coercible * c b => (b -> c) -> Exchange a b a b -> Exchange a b a c # (.#) :: Coercible * b a => Exchange a b b c -> (a -> b) -> Exchange a b a c #
Functor (Exchange a b s) # |
Methods fmap :: (a -> b) -> Exchange a b s a -> Exchange a b s b # (<$) :: a -> Exchange a b s b -> Exchange a b s a #

class Reversing t where #

This class provides a generalized notion of list reversal extended to other containers.

Minimal complete definition

reversing

Methods

reversing :: t -> t #

Instances

Reversing ByteString # |
Methods reversing :: ByteString -> ByteString #
Reversing ByteString # |
Methods reversing :: ByteString -> ByteString #
Reversing Text # |
Methods reversing :: Text -> Text #
Reversing Text # |
Methods reversing :: Text -> Text #
Reversing [a] # |
Methods reversing :: [a] -> [a] #
Reversing (NonEmpty a) # |
Methods reversing :: NonEmpty a -> NonEmpty a #
Reversing (Seq a) # |
Methods reversing :: Seq a -> Seq a #
Reversing (Vector a) # |
Methods reversing :: Vector a -> Vector a #
Unbox a => Reversing (Vector a) # |
Methods reversing :: Vector a -> Vector a #
Storable a => Reversing (Vector a) # |
Methods reversing :: Vector a -> Vector a #
Prim a => Reversing (Vector a) # |
Methods reversing :: Vector a -> Vector a #
Reversing (Deque a) # |
Methods reversing :: Deque a -> Deque a #