{-# LANGUAGE Rank2Types #-}
module Lens.Family2.Unchecked (
lens
, iso
, setting
, Lens, Lens'
, Traversal, Traversal'
, Setter, Setter'
, LF.LensLike, LF.LensLike'
, LF.Identical
, Applicative
) where
import Control.Applicative (Applicative)
import qualified Lens.Family.Unchecked as LF
type Lens a a' b b' = forall f. Functor f => LF.LensLike f a a' b b'
type Lens' a b = forall f. Functor f => LF.LensLike' f a b
type Traversal a a' b b' = forall f. Applicative f => LF.LensLike f a a' b b'
type Traversal' a b = forall f. Applicative f => LF.LensLike' f a b
type Setter a a' b b' = forall f. LF.Identical f => LF.LensLike f a a' b b'
type Setter' a b = forall f. LF.Identical f => LF.LensLike' f a b
lens :: (a -> b)
-> (a -> b' -> a')
-> Lens a a' b b'
lens = LF.lens
iso :: (a -> b)
-> (b' -> a')
-> Lens a a' b b'
iso = LF.iso
setting :: ((b -> b') -> a -> a')
-> Setter a a' b b'
setting = LF.setting