-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Van Laarhoven lenses
--   
--   Van Laarhoven lenses
@package lenz
@version 0.3.0.0

module Control.Lens
type Lens α β a b = forall f. Functor f => (a -> f b) -> (α -> f β)
type Traversal α β a b = forall f. Applicative f => (a -> f b) -> (α -> f β)
type Iso α β a b = forall p f. (Profunctor p, Functor f) => p a (f b) -> p α (f β)
lens :: (α -> a) -> (b -> α -> β) -> Lens α β a b
iso :: (α -> a) -> (b -> β) -> Iso α β a b
get :: ((a -> Const a b) -> α -> Const a β) -> α -> a
set :: ((a -> Identity b) -> α -> Identity β) -> b -> α -> β
modify :: ((a -> Identity b) -> α -> Identity β) -> (a -> b) -> α -> β
mapping :: (Functor f, Functor g) => AnIso α β a b -> Iso (f α) (g β) (f a) (g b)
fstL :: Lens (a, c) (b, c) a b
sndL :: Lens (a, b) (a, c) b c
swapL :: Iso (a, b) (c, d) (b, a) (d, c)
unitL :: Lens α α () ()
bitL :: Bits a => Int -> Lens a a Bool Bool
instance GHC.Base.Functor (Control.Lens.Xchg a b α)
instance Data.Profunctor.Profunctor (Control.Lens.Xchg a b)
