-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Lens instances for the stricter CPS WriterT and RWST
--   
--   Control.Lens Strict, Wrapped, Magnify and Zoomed instances for the
--   stricter WriterT and RWST from writer-cps-transformers.
@package writer-cps-lens
@version 0.1.0.1

module Control.Monad.Trans.RWS.CPS.Lens

-- | Unlike normal Wrapped instances, this doesn't simply peel off the
--   newtype wrapper, as that will expose the hidden CPS w state. Based on
--   code from Control.Lens.Wrapped
instance (GHC.Base.Monoid w, GHC.Base.Functor m, t ~ Control.Monad.Trans.RWS.CPS.Internal.RWST r' w' s' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.RWS.CPS.Internal.RWST r w s m a) t
instance (GHC.Base.Monoid w, GHC.Base.Functor m) => Control.Lens.Wrapped.Wrapped (Control.Monad.Trans.RWS.CPS.Internal.RWST r w s m a)
instance GHC.Base.Monad z => Control.Lens.Zoom.Zoom (Control.Monad.Trans.RWS.CPS.Internal.RWST r w s z) (Control.Monad.Trans.RWS.CPS.Internal.RWST r w t z) s t
instance GHC.Base.Monad m => Control.Lens.Zoom.Magnify (Control.Monad.Trans.RWS.CPS.Internal.RWST b w s m) (Control.Monad.Trans.RWS.CPS.Internal.RWST a w s m) b a

module Control.Monad.Trans.Writer.CPS.Lens

-- | Unlike normal Wrapped instances, this doesn't simply peel off the
--   newtype wrapper, as that will expose the hidden CPS w state. Based on
--   code from Control.Lens.Wrapped
instance (GHC.Base.Monoid w, GHC.Base.Functor m, t ~ Control.Monad.Trans.Writer.CPS.Internal.WriterT w' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Writer.CPS.Internal.WriterT w m a) t
instance (GHC.Base.Monoid w, GHC.Base.Functor m) => Control.Lens.Wrapped.Wrapped (Control.Monad.Trans.Writer.CPS.Internal.WriterT w m a)
instance Control.Lens.Zoom.Zoom m n s t => Control.Lens.Zoom.Zoom (Control.Monad.Trans.Writer.CPS.Internal.WriterT w m) (Control.Monad.Trans.Writer.CPS.Internal.WriterT w n) s t
