#if defined(TRUSTWORTHY) && !defined(SAFE)
#endif
module Control.Lens.Internal.Combinators
(
const#, getConst#
, zipList#, getZipList#
, wrapMonad#, unwrapMonad#
, last#, getLast#
, first#, getFirst#
, product#, getProduct#
, sum#, getSum#
, any#, getAny#
, all#, getAll#
, dual#, getDual#
, endo#, appEndo#
, may#, getMay#
, folding#, getFolding#
, effect#, getEffect#
, effectRWS#, getEffectRWS#
, accessor#, runAccessor#
, err#, getErr#
, traversed#, getTraversed#
, sequenced#, getSequenced#
, focusing#, unfocusing#
, focusingWith#, unfocusingWith#
, focusingPlus#, unfocusingPlus#
, focusingOn#, unfocusingOn#
, focusingMay#, unfocusingMay#
, focusingErr#, unfocusingErr#
, mutator#, runMutator#
, backwards#, forwards#
) where
import Control.Applicative
import Control.Applicative.Backwards
import Control.Lens.Internal
import Data.Monoid
#ifndef SAFE
import Unsafe.Coerce
#endif
#ifndef SAFE
#define UNSAFELY(x) unsafeCoerce
#else
#define UNSAFELY(f) (\g -> g `seq` \x -> (f) (g x))
#endif
const# :: (a -> b) -> a -> Const b r
const# = UNSAFELY(Const)
getConst# :: (a -> Const b r) -> a -> b
getConst# = UNSAFELY(getConst)
zipList# :: (a -> [b]) -> a -> ZipList b
zipList# = UNSAFELY(ZipList)
getZipList# :: (a -> ZipList b) -> a -> [b]
getZipList# = UNSAFELY(getZipList)
wrapMonad# :: (a -> m b) -> a -> WrappedMonad m b
wrapMonad# = UNSAFELY(WrapMonad)
unwrapMonad# :: (a -> WrappedMonad m b) -> a -> m b
unwrapMonad# = UNSAFELY(unwrapMonad)
last# :: (a -> Maybe b) -> a -> Last b
last# = UNSAFELY(Last)
getLast# :: (a -> Last b) -> a -> Maybe b
getLast# = UNSAFELY(getLast)
first# :: (a -> Maybe b) -> a -> First b
first# = UNSAFELY(First)
getFirst# :: (a -> First b) -> a -> Maybe b
getFirst# = UNSAFELY(getFirst)
product# :: (a -> b) -> a -> Product b
product# = UNSAFELY(Product)
getProduct# :: (a -> Product b) -> a -> b
getProduct# = UNSAFELY(getProduct)
sum# :: (a -> b) -> a -> Sum b
sum# = UNSAFELY(Sum)
getSum# :: (a -> Sum b) -> a -> b
getSum# = UNSAFELY(getSum)
any# :: (a -> Bool) -> a -> Any
any# = UNSAFELY(Any)
getAny# :: (a -> Any) -> a -> Bool
getAny# = UNSAFELY(getAny)
all# :: (a -> Bool) -> a -> All
all# = UNSAFELY(All)
getAll# :: (a -> All) -> a -> Bool
getAll# = UNSAFELY(getAll)
dual# :: (a -> b) -> a -> Dual b
dual# = UNSAFELY(Dual)
getDual# :: (a -> Dual b) -> a -> b
getDual# = UNSAFELY(getDual)
endo# :: (a -> b -> b) -> a -> Endo b
endo# = UNSAFELY(Endo)
appEndo# :: (a -> Endo b) -> a -> b -> b
appEndo# = UNSAFELY(appEndo)
may# :: (a -> Maybe b) -> a -> May b
may# = UNSAFELY(May)
getMay# :: (a -> May b) -> a -> Maybe b
getMay# = UNSAFELY(getMay)
folding# :: (a -> f b) -> a -> Folding f b
folding# = UNSAFELY(Folding)
getFolding# :: (a -> Folding f b) -> a -> f b
getFolding# = UNSAFELY(getFolding)
effect# :: (a -> m r) -> a -> Effect m r b
effect# = UNSAFELY(Effect)
getEffect# :: (a -> Effect m r b) -> a -> m r
getEffect# = UNSAFELY(getEffect)
effectRWS# :: (a -> st -> m (s, st, w)) -> a -> EffectRWS w st m s b
effectRWS# = UNSAFELY(EffectRWS)
getEffectRWS# :: (a -> EffectRWS w st m s b) -> a -> st -> m (s, st, w)
getEffectRWS# = UNSAFELY(getEffectRWS)
accessor# :: (a -> r) -> a -> Accessor r b
accessor# = UNSAFELY(Accessor)
runAccessor# :: (a -> Accessor r b) -> a -> r
runAccessor# = UNSAFELY(runAccessor)
err# :: (a -> Either e b) -> a -> Err e b
err# = UNSAFELY(Err)
getErr# :: (a -> Err e b) -> a -> Either e b
getErr# = UNSAFELY(getErr)
traversed# :: (a -> f ()) -> a -> Traversed f
traversed# = UNSAFELY(Traversed)
getTraversed# :: (a -> Traversed f) -> a -> f ()
getTraversed# = UNSAFELY(getTraversed)
sequenced# :: (a -> f ()) -> a -> Sequenced f
sequenced# = UNSAFELY(Sequenced)
getSequenced# :: (a -> Sequenced f) -> a -> f ()
getSequenced# = UNSAFELY(getSequenced)
focusing# :: (a -> m (s, b)) -> a -> Focusing m s b
focusing# = UNSAFELY(Focusing)
unfocusing# :: (a -> Focusing m s b) -> a -> m (s, b)
unfocusing# = UNSAFELY(unfocusing)
focusingWith# :: (a -> m (s, b, w)) -> a -> FocusingWith w m s b
focusingWith# = UNSAFELY(FocusingWith)
unfocusingWith# :: (a -> FocusingWith w m s b) -> a -> m (s, b, w)
unfocusingWith# = UNSAFELY(unfocusingWith)
focusingPlus# :: (a -> k (s, w) b) -> a -> FocusingPlus w k s b
focusingPlus# = UNSAFELY(FocusingPlus)
unfocusingPlus# :: (a -> FocusingPlus w k s b) -> a -> k (s, w) b
unfocusingPlus# = UNSAFELY(unfocusingPlus)
focusingOn# :: (a -> k (f s) b) -> a -> FocusingOn f k s b
focusingOn# = UNSAFELY(FocusingOn)
unfocusingOn# :: (a -> FocusingOn f k s b) -> a -> k (f s) b
unfocusingOn# = UNSAFELY(unfocusingOn)
focusingMay# :: (a -> k (May s) b) -> a -> FocusingMay k s b
focusingMay# = UNSAFELY(FocusingMay)
unfocusingMay# :: (a -> FocusingMay k s b) -> a -> k (May s) b
unfocusingMay# = UNSAFELY(unfocusingMay)
focusingErr# :: (a -> k (Err e s) b) -> a -> FocusingErr e k s b
focusingErr# = UNSAFELY(FocusingErr)
unfocusingErr# :: (a -> FocusingErr e k s b) -> a -> k (Err e s) b
unfocusingErr# = UNSAFELY(unfocusingErr)
mutator# :: (a -> b) -> a -> Mutator b
mutator# = UNSAFELY(Mutator)
runMutator# :: (a -> Mutator b) -> a -> b
runMutator# = UNSAFELY(runMutator)
backwards# :: (a -> f b) -> a -> Backwards f b
backwards# = UNSAFELY(Backwards)
forwards# :: (a -> Backwards f b) -> a -> f b
forwards# = UNSAFELY(forwards)