lens-3.7: src/Control/Lens/Simple.hs
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
-----------------------------------------------------------------------------
-- |
-- Module : Control.Lens.Simple
-- Copyright : (C) 2012 Edward Kmett
-- License : BSD-style (see the file LICENSE)
-- Maintainer : Edward Kmett <ekmett@gmail.com>
-- Stability : provisional
-- Portability : Rank2Types
--
-- Infix type operators for simple lenses and traversals.
--
-- These type aliases are not re-exported from @Control.Lens@.
----------------------------------------------------------------------------
module Control.Lens.Simple
( (:->)
, (:=>)
, (:<->)
) where
import Control.Applicative
import Control.Lens.Iso
infixr 0 :=>, :->, :<->
-- | This is a commonly used infix alias for a @'Control.Lens.Type.Simple' 'Control.Lens.Type.Lens'@.
type s :-> a = forall f. Functor f => (a -> f a) -> s -> f s
-- | This is a commonly-used infix alias for a @'Control.Lens.Type.Simple' 'Control.Lens.Traversal.Traversal'@.
type s :=> a = forall f. Applicative f => (a -> f a) -> s -> f s
-- | This is a commonly-used infix alias for a @'Control.Lens.Type.Simple' 'Iso'@
type s :<-> a = Iso s s a a