{-# LANGUAGE NoMonomorphismRestriction #-}

-- | Wrapper module for lens functionality

module Lens
  ( module Data.Lens.Light
  , module Lens
  ) where

import Data.Lens.Light

over :: Lens a b -> (b -> b) -> a -> a
over = Lens a b -> (b -> b) -> a -> a
forall a b. Lens a b -> (b -> b) -> a -> a
modL
set :: Lens a b -> b -> a -> a
set  = Lens a b -> b -> a -> a
forall a b. Lens a b -> b -> a -> a
setL
use :: Lens a b -> m b
use  = Lens a b -> m b
forall a (m :: * -> *) b. MonadState a m => Lens a b -> m b
access
_2 :: Lens (a, b) b
_2   = ((a, b) -> b) -> (b -> (a, b) -> (a, b)) -> Lens (a, b) b
forall a b. (a -> b) -> (b -> a -> a) -> Lens a b
lens (a, b) -> b
forall a b. (a, b) -> b
snd ((b -> (a, b) -> (a, b)) -> Lens (a, b) b)
-> (b -> (a, b) -> (a, b)) -> Lens (a, b) b
forall a b. (a -> b) -> a -> b
$ \ b
y (a
x, b
_) -> (a
x, b
y)