lens-3.8: src/Control/Lens/Loupe.hs
{-# LANGUAGE Rank2Types #-}
-------------------------------------------------------------------------------
-- |
-- Module : Control.Lens.Loupe
-- Copyright : (C) 2012-13 Edward Kmett
-- License : BSD-style (see the file LICENSE)
-- Maintainer : Edward Kmett <ekmett@gmail.com>
-- Stability : provisional
-- Portability : Rank2Types
--
-- This module exports a minimalist API for working with lenses in highly
-- monomorphic settings.
-------------------------------------------------------------------------------
module Control.Lens.Loupe
(
ALens, ALens'
, cloneLens
, storing
, (^#)
, ( #~ ), ( #%~ ), ( #%%~ ), (<#~), (<#%~)
, ( #= ), ( #%= ), ( #%%= ), (<#=), (<#%=)
-- * Deprecated Aliases
, Loupe, SimpleLoupe
) where
import Control.Lens.Internal.Context
import Control.Lens.Lens
import Control.Lens.Type
-- | This is an older alias for a type-restricted form of lens that is able to be passed around
-- in containers monomorphically.
--
-- Deprecated. This has since been renamed to 'ALens' for consistency.
type Loupe s t a b = LensLike (Pretext (->) a b) s t a b
{-# DEPRECATED Loupe "use ALens" #-}
-- | @
-- type 'SimpleLoupe' = 'Simple' 'Loupe'
-- @
--
-- Deprecated for two reasons. 'Loupe' is now 'ALens', and we no longer use the verbose @SimpleFoo@ naming
-- convention, this has since been renamed to 'ALens'' for consistency.
type SimpleLoupe s a = Loupe s s a a
{-# DEPRECATED SimpleLoupe "use ALens'" #-}