lens 4.13.2.1 → 4.14
raw patch · 15 files changed
+194/−326 lines, 15 filesdep −comonads-fddep ~basedep ~comonaddep ~criterionPVP ok
version bump matches the API change (PVP)
Dependencies removed: comonads-fd
Dependency ranges changed: base, comonad, criterion, profunctors, semigroupoids, template-haskell, transformers
API changes (from Hackage documentation)
- Control.Lens.At: instance (a ~ a2) => Control.Lens.At.Ixed (a, a2)
- Control.Lens.Cons: instance (a ~ b) => Control.Lens.Cons.Cons (Data.List.NonEmpty.NonEmpty a) (Data.List.NonEmpty.NonEmpty b) a b
- Control.Lens.Cons: instance (a ~ b) => Control.Lens.Cons.Snoc (Data.List.NonEmpty.NonEmpty a) (Data.List.NonEmpty.NonEmpty b) a b
- Control.Lens.Each: instance (c ~ d) => Control.Lens.Each.Each (Data.HashMap.Base.HashMap c a) (Data.HashMap.Base.HashMap d b) a b
- Control.Lens.Each: instance (c ~ d) => Control.Lens.Each.Each (Data.Map.Base.Map c a) (Data.Map.Base.Map d b) a b
- Control.Lens.Equality: Identical :: Identical a b a b
- Control.Lens.Internal.Context: instance (a ~ b) => Control.Comonad.Comonad (Control.Lens.Internal.Context.Context a b)
- Control.Lens.Internal.Context: instance (a ~ b) => Control.Comonad.Store.Class.ComonadStore a (Control.Lens.Internal.Context.Context a b)
- Control.Lens.Internal.Exception: instance forall (k :: BOX) a (s :: k) (m :: * -> *). (Data.Reflection.Reifies s (GHC.Exception.SomeException -> GHC.Base.Maybe a), Data.Typeable.Internal.Typeable (Control.Lens.Internal.Exception.Handling a s m)) => GHC.Exception.Exception (Control.Lens.Internal.Exception.Handling a s m)
- Control.Lens.Internal.Exception: instance forall (k :: BOX) a (s :: k) (m :: * -> *). GHC.Show.Show (Control.Lens.Internal.Exception.Handling a s m)
- Control.Lens.Internal.Indexed: instance (i ~ j) => Control.Lens.Internal.Indexed.Indexable i (Control.Lens.Internal.Indexed.Indexed j)
- Control.Lens.Internal.Magma: Magma :: i -> a -> Magma i b b a
- Control.Lens.Internal.Magma: MagmaAp :: Magma i (x -> y) b a -> Magma i x b a -> Magma i y b a
- Control.Lens.Internal.Magma: MagmaFmap :: (x -> y) -> Magma i x b a -> Magma i y b a
- Control.Lens.Internal.Magma: MagmaPure :: x -> Magma i x b a
- Control.Lens.Internal.Magma: instance (a ~ b) => Control.Comonad.Comonad (Control.Lens.Internal.Magma.Molten i a b)
- Control.Lens.Wrapped: instance (t ~ Control.Applicative.Backwards.Backwards g b) => Control.Lens.Wrapped.Rewrapped (Control.Applicative.Backwards.Backwards f a) t
- Control.Lens.Wrapped: instance (t ~ Control.Applicative.Const a' x') => Control.Lens.Wrapped.Rewrapped (Control.Applicative.Const a x) t
- Control.Lens.Wrapped: instance (t ~ Control.Applicative.WrappedArrow a' b' c') => Control.Lens.Wrapped.Rewrapped (Control.Applicative.WrappedArrow a b c) t
- Control.Lens.Wrapped: instance (t ~ Control.Applicative.WrappedMonad m' a') => Control.Lens.Wrapped.Rewrapped (Control.Applicative.WrappedMonad m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Applicative.ZipList b) => Control.Lens.Wrapped.Rewrapped (Control.Applicative.ZipList a) t
- Control.Lens.Wrapped: instance (t ~ Control.Arrow.ArrowMonad m' a') => Control.Lens.Wrapped.Rewrapped (Control.Arrow.ArrowMonad m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Arrow.Kleisli m' a' b') => Control.Lens.Wrapped.Rewrapped (Control.Arrow.Kleisli m a b) t
- Control.Lens.Wrapped: instance (t ~ Control.Comonad.Trans.Traced.TracedT m' w' a') => Control.Lens.Wrapped.Rewrapped (Control.Comonad.Trans.Traced.TracedT m w a) t
- Control.Lens.Wrapped: instance (t ~ Control.Exception.Base.NoMethodError) => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.NoMethodError t
- Control.Lens.Wrapped: instance (t ~ Control.Exception.Base.PatternMatchFail) => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.PatternMatchFail t
- Control.Lens.Wrapped: instance (t ~ Control.Exception.Base.RecConError) => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.RecConError t
- Control.Lens.Wrapped: instance (t ~ Control.Exception.Base.RecSelError) => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.RecSelError t
- Control.Lens.Wrapped: instance (t ~ Control.Exception.Base.RecUpdError) => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.RecUpdError t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.Cont.ContT r' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Cont.ContT r m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.Error.ErrorT e' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Error.ErrorT e m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.Identity.IdentityT n b) => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Identity.IdentityT m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.List.ListT n b) => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.List.ListT m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.Maybe.MaybeT n b) => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Maybe.MaybeT m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.RWS.Lazy.RWST r' w' s' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.RWS.Lazy.RWST r w s m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.RWS.Strict.RWST r' w' s' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.RWS.Strict.RWST r w s m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.Reader.ReaderT r n b) => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Reader.ReaderT r m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.State.Lazy.StateT s' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.State.Lazy.StateT s m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.State.Strict.StateT s' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.State.Strict.StateT s m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.Writer.Lazy.WriterT w' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Writer.Lazy.WriterT w m a) t
- Control.Lens.Wrapped: instance (t ~ Control.Monad.Trans.Writer.Strict.WriterT w' m' a') => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Writer.Strict.WriterT w m a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Compose.Compose f' g' a') => Control.Lens.Wrapped.Rewrapped (Data.Functor.Compose.Compose f g a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Constant.Constant a' b') => Control.Lens.Wrapped.Rewrapped (Data.Functor.Constant.Constant a b) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Contravariant.Comparison b) => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Comparison a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Contravariant.Compose.Compose f' g' a') => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Compose.Compose f g a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Contravariant.Compose.ComposeCF f' g' a') => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Compose.ComposeCF f g a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Contravariant.Compose.ComposeFC f' g' a') => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Compose.ComposeFC f g a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Contravariant.Equivalence b) => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Equivalence a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Contravariant.Op a' b') => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Op a b) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Contravariant.Predicate b) => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Predicate a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Identity.Identity b) => Control.Lens.Wrapped.Rewrapped (Data.Functor.Identity.Identity a) t
- Control.Lens.Wrapped: instance (t ~ Data.Functor.Reverse.Reverse g b) => Control.Lens.Wrapped.Rewrapped (Data.Functor.Reverse.Reverse f a) t
- Control.Lens.Wrapped: instance (t ~ Data.IntMap.Base.IntMap a') => Control.Lens.Wrapped.Rewrapped (Data.IntMap.Base.IntMap a) t
- Control.Lens.Wrapped: instance (t ~ Data.IntSet.Base.IntSet) => Control.Lens.Wrapped.Rewrapped Data.IntSet.Base.IntSet t
- Control.Lens.Wrapped: instance (t ~ Data.List.NonEmpty.NonEmpty b) => Control.Lens.Wrapped.Rewrapped (Data.List.NonEmpty.NonEmpty a) t
- Control.Lens.Wrapped: instance (t ~ Data.Monoid.All) => Control.Lens.Wrapped.Rewrapped Data.Monoid.All t
- Control.Lens.Wrapped: instance (t ~ Data.Monoid.Any) => Control.Lens.Wrapped.Rewrapped Data.Monoid.Any t
- Control.Lens.Wrapped: instance (t ~ Data.Monoid.Dual b) => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Dual a) t
- Control.Lens.Wrapped: instance (t ~ Data.Monoid.Endo b) => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Endo b) t
- Control.Lens.Wrapped: instance (t ~ Data.Monoid.First b) => Control.Lens.Wrapped.Rewrapped (Data.Monoid.First a) t
- Control.Lens.Wrapped: instance (t ~ Data.Monoid.Last b) => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Last a) t
- Control.Lens.Wrapped: instance (t ~ Data.Monoid.Product b) => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Product a) t
- Control.Lens.Wrapped: instance (t ~ Data.Monoid.Sum b) => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Sum a) t
- Control.Lens.Wrapped: instance (t ~ Data.Ord.Down a) => Control.Lens.Wrapped.Rewrapped (Data.Ord.Down a) t
- Control.Lens.Wrapped: instance (t ~ Data.Semigroup.First b) => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.First a) t
- Control.Lens.Wrapped: instance (t ~ Data.Semigroup.Last b) => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.Last a) t
- Control.Lens.Wrapped: instance (t ~ Data.Semigroup.Max b) => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.Max a) t
- Control.Lens.Wrapped: instance (t ~ Data.Semigroup.Min b) => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.Min a) t
- Control.Lens.Wrapped: instance (t ~ Data.Semigroup.Option b) => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.Option a) t
- Control.Lens.Wrapped: instance (t ~ Data.Semigroup.WrappedMonoid b) => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.WrappedMonoid a) t
- Control.Lens.Wrapped: instance (t ~ Data.Sequence.Seq a') => Control.Lens.Wrapped.Rewrapped (Data.Sequence.Seq a) t
- Control.Lens.Wrapped: instance (t ~ Data.Vector.Vector a') => Control.Lens.Wrapped.Rewrapped (Data.Vector.Vector a) t
- Control.Lens.Wrapped: instance (t ~ GHC.Exception.ErrorCall) => Control.Lens.Wrapped.Rewrapped GHC.Exception.ErrorCall t
- Control.Lens.Wrapped: instance (t ~ GHC.IO.Exception.AssertionFailed) => Control.Lens.Wrapped.Rewrapped GHC.IO.Exception.AssertionFailed t
- Control.Lens.Wrapped: instance Control.Lens.Wrapped.Wrapped (Control.Applicative.Backwards.Backwards f a)
- Control.Lens.Wrapped: instance Control.Lens.Wrapped.Wrapped (Control.Applicative.Const a x)
- Control.Lens.Wrapped: instance Control.Lens.Wrapped.Wrapped (Control.Monad.Trans.Cont.ContT r m a)
- Control.Lens.Wrapped: instance Control.Lens.Wrapped.Wrapped (Control.Monad.Trans.Identity.IdentityT m a)
- Control.Lens.Wrapped: instance Control.Lens.Wrapped.Wrapped (Control.Monad.Trans.Reader.ReaderT r m a)
- Control.Lens.Wrapped: instance Control.Lens.Wrapped.Wrapped (Data.Functor.Compose.Compose f g a)
- Control.Lens.Wrapped: instance Control.Lens.Wrapped.Wrapped (Data.Functor.Constant.Constant a b)
- Control.Lens.Wrapped: instance Control.Lens.Wrapped.Wrapped (Data.Functor.Reverse.Reverse f a)
- Control.Lens.Wrapped: instance forall (k :: BOX) (f :: k -> *) (a :: k). Control.Lens.Wrapped.Wrapped (Data.Monoid.Alt f a)
- Control.Lens.Wrapped: instance forall (k :: BOX) (k1 :: BOX) (f :: k1 -> *) (a :: k1) t (g :: k -> *) (b :: k). (t ~ Data.Monoid.Alt g b) => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Alt f a) t
- Control.Lens.Wrapped: instance forall (k :: BOX) (k1 :: BOX) (s :: k1) a t (s' :: k) a'. (t ~ Data.Tagged.Tagged s' a') => Control.Lens.Wrapped.Rewrapped (Data.Tagged.Tagged s a) t
- Control.Lens.Wrapped: instance forall (k :: BOX) (s :: k) a. Control.Lens.Wrapped.Wrapped (Data.Tagged.Tagged s a)
- Language.Haskell.TH.Lens: _FamilyD :: Prism' Dec (FamFlavour, Name, [TyVarBndr], Maybe Kind)
- Language.Haskell.TH.Lens: _IsStrict :: Prism' Strict ()
- Language.Haskell.TH.Lens: _NotStrict :: Prism' Strict ()
- Language.Haskell.TH.Lens: _Unpacked :: Prism' Strict ()
+ Control.Lens.At: instance a ~ a2 => Control.Lens.At.Ixed (a, a2)
+ Control.Lens.Each: instance c ~ d => Control.Lens.Each.Each (Data.HashMap.Base.HashMap c a) (Data.HashMap.Base.HashMap d b) a b
+ Control.Lens.Each: instance c ~ d => Control.Lens.Each.Each (Data.Map.Base.Map c a) (Data.Map.Base.Map d b) a b
+ Control.Lens.Equality: [Identical] :: Identical a b a b
+ Control.Lens.Internal.Context: instance a ~ b => Control.Comonad.Comonad (Control.Lens.Internal.Context.Context a b)
+ Control.Lens.Internal.Context: instance a ~ b => Control.Comonad.Store.Class.ComonadStore a (Control.Lens.Internal.Context.Context a b)
+ Control.Lens.Internal.Exception: instance forall k (s :: k) a (m :: GHC.Types.* -> GHC.Types.*). (Data.Reflection.Reifies s (GHC.Exception.SomeException -> GHC.Base.Maybe a), Data.Typeable.Internal.Typeable (Control.Lens.Internal.Exception.Handling a s m)) => GHC.Exception.Exception (Control.Lens.Internal.Exception.Handling a s m)
+ Control.Lens.Internal.Exception: instance forall k a (s :: k) (m :: GHC.Types.* -> GHC.Types.*). GHC.Show.Show (Control.Lens.Internal.Exception.Handling a s m)
+ Control.Lens.Internal.Indexed: instance i ~ j => Control.Lens.Internal.Indexed.Indexable i (Control.Lens.Internal.Indexed.Indexed j)
+ Control.Lens.Internal.Magma: [MagmaAp] :: Magma i (x -> y) b a -> Magma i x b a -> Magma i y b a
+ Control.Lens.Internal.Magma: [MagmaFmap] :: (x -> y) -> Magma i x b a -> Magma i y b a
+ Control.Lens.Internal.Magma: [MagmaPure] :: x -> Magma i x b a
+ Control.Lens.Internal.Magma: [Magma] :: i -> a -> Magma i b b a
+ Control.Lens.Internal.Magma: instance a ~ b => Control.Comonad.Comonad (Control.Lens.Internal.Magma.Molten i a b)
+ Control.Lens.Internal.Zoom: FocusingFree :: k (Freed f m s) a -> FocusingFree f m k s a
+ Control.Lens.Internal.Zoom: Freed :: FreeF f a (FreeT f m a) -> Freed f m a
+ Control.Lens.Internal.Zoom: [getFreed] :: Freed f m a -> FreeF f a (FreeT f m a)
+ Control.Lens.Internal.Zoom: [unfocusingFree] :: FocusingFree f m k s a -> k (Freed f m s) a
+ Control.Lens.Internal.Zoom: instance (GHC.Base.Applicative f, Data.Semigroup.Semigroup a, GHC.Base.Monad m) => Data.Semigroup.Semigroup (Control.Lens.Internal.Zoom.Freed f m a)
+ Control.Lens.Internal.Zoom: instance (GHC.Base.Applicative f, GHC.Base.Monoid a, GHC.Base.Monad m) => GHC.Base.Monoid (Control.Lens.Internal.Zoom.Freed f m a)
+ Control.Lens.Internal.Zoom: instance Data.Functor.Bind.Class.Apply (k (Control.Lens.Internal.Zoom.Freed f m s)) => Data.Functor.Bind.Class.Apply (Control.Lens.Internal.Zoom.FocusingFree f m k s)
+ Control.Lens.Internal.Zoom: instance GHC.Base.Applicative (k (Control.Lens.Internal.Zoom.Freed f m s)) => GHC.Base.Applicative (Control.Lens.Internal.Zoom.FocusingFree f m k s)
+ Control.Lens.Internal.Zoom: instance GHC.Base.Functor (k (Control.Lens.Internal.Zoom.Freed f m s)) => GHC.Base.Functor (Control.Lens.Internal.Zoom.FocusingFree f m k s)
+ Control.Lens.Internal.Zoom: newtype FocusingFree f m k s a
+ Control.Lens.Internal.Zoom: newtype Freed f m a
+ Control.Lens.Wrapped: instance forall k (f :: k -> *) (a :: k). Control.Lens.Wrapped.Wrapped (Control.Applicative.Backwards.Backwards f a)
+ Control.Lens.Wrapped: instance forall k (f :: k -> *) (a :: k). Control.Lens.Wrapped.Wrapped (Data.Functor.Reverse.Reverse f a)
+ Control.Lens.Wrapped: instance forall k (f :: k -> *) (a :: k). Control.Lens.Wrapped.Wrapped (Data.Monoid.Alt f a)
+ Control.Lens.Wrapped: instance forall k (m :: k -> *) (a :: k). Control.Lens.Wrapped.Wrapped (Control.Monad.Trans.Identity.IdentityT m a)
+ Control.Lens.Wrapped: instance forall k (r :: k) (m :: k -> *) a. Control.Lens.Wrapped.Wrapped (Control.Monad.Trans.Cont.ContT r m a)
+ Control.Lens.Wrapped: instance forall k (s :: k) a. Control.Lens.Wrapped.Wrapped (Data.Tagged.Tagged s a)
+ Control.Lens.Wrapped: instance forall k a (b :: k). Control.Lens.Wrapped.Wrapped (Data.Functor.Constant.Constant a b)
+ Control.Lens.Wrapped: instance forall k a (x :: k). Control.Lens.Wrapped.Wrapped (Data.Functor.Const.Const a x)
+ Control.Lens.Wrapped: instance forall k k1 (f :: k -> *) (g :: k1 -> k) (a :: k1). Control.Lens.Wrapped.Wrapped (Data.Functor.Compose.Compose f g a)
+ Control.Lens.Wrapped: instance forall k k1 k2 k3 t (f' :: k -> *) (g' :: k1 -> k) (a' :: k1) (f :: k2 -> *) (g :: k3 -> k2) (a :: k3). t ~ Data.Functor.Compose.Compose f' g' a' => Control.Lens.Wrapped.Rewrapped (Data.Functor.Compose.Compose f g a) t
+ Control.Lens.Wrapped: instance forall k k1 t (g :: k -> *) (b :: k) (f :: k1 -> *) (a :: k1). t ~ Control.Applicative.Backwards.Backwards g b => Control.Lens.Wrapped.Rewrapped (Control.Applicative.Backwards.Backwards f a) t
+ Control.Lens.Wrapped: instance forall k k1 t (g :: k -> *) (b :: k) (f :: k1 -> *) (a :: k1). t ~ Data.Functor.Reverse.Reverse g b => Control.Lens.Wrapped.Rewrapped (Data.Functor.Reverse.Reverse f a) t
+ Control.Lens.Wrapped: instance forall k k1 t (g :: k -> *) (b :: k) (f :: k1 -> *) (a :: k1). t ~ Data.Monoid.Alt g b => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Alt f a) t
+ Control.Lens.Wrapped: instance forall k k1 t (n :: k -> *) (b :: k) (m :: k1 -> *) (a :: k1). t ~ Control.Monad.Trans.Identity.IdentityT n b => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Identity.IdentityT m a) t
+ Control.Lens.Wrapped: instance forall k k1 t (r' :: k) (m' :: k -> *) a' (r :: k1) (m :: k1 -> *) a. t ~ Control.Monad.Trans.Cont.ContT r' m' a' => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Cont.ContT r m a) t
+ Control.Lens.Wrapped: instance forall k k1 t (s' :: k) a' (s :: k1) a. t ~ Data.Tagged.Tagged s' a' => Control.Lens.Wrapped.Rewrapped (Data.Tagged.Tagged s a) t
+ Control.Lens.Wrapped: instance forall k k1 t a' (b' :: k) a (b :: k1). t ~ Data.Functor.Constant.Constant a' b' => Control.Lens.Wrapped.Rewrapped (Data.Functor.Constant.Constant a b) t
+ Control.Lens.Wrapped: instance forall k k1 t a' (x' :: k) a (x :: k1). t ~ Data.Functor.Const.Const a' x' => Control.Lens.Wrapped.Rewrapped (Data.Functor.Const.Const a x) t
+ Control.Lens.Wrapped: instance forall k k1 t r (n :: k -> *) (b :: k) (m :: k1 -> *) (a :: k1). t ~ Control.Monad.Trans.Reader.ReaderT r n b => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Reader.ReaderT r m a) t
+ Control.Lens.Wrapped: instance forall k r (m :: k -> *) (a :: k). Control.Lens.Wrapped.Wrapped (Control.Monad.Trans.Reader.ReaderT r m a)
+ Control.Lens.Wrapped: instance t ~ Control.Applicative.WrappedArrow a' b' c' => Control.Lens.Wrapped.Rewrapped (Control.Applicative.WrappedArrow a b c) t
+ Control.Lens.Wrapped: instance t ~ Control.Applicative.WrappedMonad m' a' => Control.Lens.Wrapped.Rewrapped (Control.Applicative.WrappedMonad m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Applicative.ZipList b => Control.Lens.Wrapped.Rewrapped (Control.Applicative.ZipList a) t
+ Control.Lens.Wrapped: instance t ~ Control.Arrow.ArrowMonad m' a' => Control.Lens.Wrapped.Rewrapped (Control.Arrow.ArrowMonad m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Arrow.Kleisli m' a' b' => Control.Lens.Wrapped.Rewrapped (Control.Arrow.Kleisli m a b) t
+ Control.Lens.Wrapped: instance t ~ Control.Comonad.Trans.Traced.TracedT m' w' a' => Control.Lens.Wrapped.Rewrapped (Control.Comonad.Trans.Traced.TracedT m w a) t
+ Control.Lens.Wrapped: instance t ~ Control.Exception.Base.NoMethodError => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.NoMethodError t
+ Control.Lens.Wrapped: instance t ~ Control.Exception.Base.PatternMatchFail => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.PatternMatchFail t
+ Control.Lens.Wrapped: instance t ~ Control.Exception.Base.RecConError => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.RecConError t
+ Control.Lens.Wrapped: instance t ~ Control.Exception.Base.RecSelError => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.RecSelError t
+ Control.Lens.Wrapped: instance t ~ Control.Exception.Base.RecUpdError => Control.Lens.Wrapped.Rewrapped Control.Exception.Base.RecUpdError t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.Error.ErrorT e' m' a' => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Error.ErrorT e m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.List.ListT n b => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.List.ListT m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.Maybe.MaybeT n b => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Maybe.MaybeT m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.RWS.Lazy.RWST r' w' s' m' a' => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.RWS.Lazy.RWST r w s m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.RWS.Strict.RWST r' w' s' m' a' => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.RWS.Strict.RWST r w s m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.State.Lazy.StateT s' m' a' => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.State.Lazy.StateT s m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.State.Strict.StateT s' m' a' => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.State.Strict.StateT s m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.Writer.Lazy.WriterT w' m' a' => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Writer.Lazy.WriterT w m a) t
+ Control.Lens.Wrapped: instance t ~ Control.Monad.Trans.Writer.Strict.WriterT w' m' a' => Control.Lens.Wrapped.Rewrapped (Control.Monad.Trans.Writer.Strict.WriterT w m a) t
+ Control.Lens.Wrapped: instance t ~ Data.Functor.Contravariant.Comparison b => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Comparison a) t
+ Control.Lens.Wrapped: instance t ~ Data.Functor.Contravariant.Compose.Compose f' g' a' => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Compose.Compose f g a) t
+ Control.Lens.Wrapped: instance t ~ Data.Functor.Contravariant.Compose.ComposeCF f' g' a' => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Compose.ComposeCF f g a) t
+ Control.Lens.Wrapped: instance t ~ Data.Functor.Contravariant.Compose.ComposeFC f' g' a' => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Compose.ComposeFC f g a) t
+ Control.Lens.Wrapped: instance t ~ Data.Functor.Contravariant.Equivalence b => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Equivalence a) t
+ Control.Lens.Wrapped: instance t ~ Data.Functor.Contravariant.Op a' b' => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Op a b) t
+ Control.Lens.Wrapped: instance t ~ Data.Functor.Contravariant.Predicate b => Control.Lens.Wrapped.Rewrapped (Data.Functor.Contravariant.Predicate a) t
+ Control.Lens.Wrapped: instance t ~ Data.Functor.Identity.Identity b => Control.Lens.Wrapped.Rewrapped (Data.Functor.Identity.Identity a) t
+ Control.Lens.Wrapped: instance t ~ Data.IntMap.Base.IntMap a' => Control.Lens.Wrapped.Rewrapped (Data.IntMap.Base.IntMap a) t
+ Control.Lens.Wrapped: instance t ~ Data.IntSet.Base.IntSet => Control.Lens.Wrapped.Rewrapped Data.IntSet.Base.IntSet t
+ Control.Lens.Wrapped: instance t ~ Data.List.NonEmpty.NonEmpty b => Control.Lens.Wrapped.Rewrapped (Data.List.NonEmpty.NonEmpty a) t
+ Control.Lens.Wrapped: instance t ~ Data.Monoid.All => Control.Lens.Wrapped.Rewrapped Data.Monoid.All t
+ Control.Lens.Wrapped: instance t ~ Data.Monoid.Any => Control.Lens.Wrapped.Rewrapped Data.Monoid.Any t
+ Control.Lens.Wrapped: instance t ~ Data.Monoid.Dual b => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Dual a) t
+ Control.Lens.Wrapped: instance t ~ Data.Monoid.Endo b => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Endo b) t
+ Control.Lens.Wrapped: instance t ~ Data.Monoid.First b => Control.Lens.Wrapped.Rewrapped (Data.Monoid.First a) t
+ Control.Lens.Wrapped: instance t ~ Data.Monoid.Last b => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Last a) t
+ Control.Lens.Wrapped: instance t ~ Data.Monoid.Product b => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Product a) t
+ Control.Lens.Wrapped: instance t ~ Data.Monoid.Sum b => Control.Lens.Wrapped.Rewrapped (Data.Monoid.Sum a) t
+ Control.Lens.Wrapped: instance t ~ Data.Ord.Down a => Control.Lens.Wrapped.Rewrapped (Data.Ord.Down a) t
+ Control.Lens.Wrapped: instance t ~ Data.Semigroup.First b => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.First a) t
+ Control.Lens.Wrapped: instance t ~ Data.Semigroup.Last b => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.Last a) t
+ Control.Lens.Wrapped: instance t ~ Data.Semigroup.Max b => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.Max a) t
+ Control.Lens.Wrapped: instance t ~ Data.Semigroup.Min b => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.Min a) t
+ Control.Lens.Wrapped: instance t ~ Data.Semigroup.Option b => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.Option a) t
+ Control.Lens.Wrapped: instance t ~ Data.Semigroup.WrappedMonoid b => Control.Lens.Wrapped.Rewrapped (Data.Semigroup.WrappedMonoid a) t
+ Control.Lens.Wrapped: instance t ~ Data.Sequence.Seq a' => Control.Lens.Wrapped.Rewrapped (Data.Sequence.Seq a) t
+ Control.Lens.Wrapped: instance t ~ Data.Vector.Vector a' => Control.Lens.Wrapped.Rewrapped (Data.Vector.Vector a) t
+ Control.Lens.Wrapped: instance t ~ GHC.Exception.ErrorCall => Control.Lens.Wrapped.Rewrapped GHC.Exception.ErrorCall t
+ Control.Lens.Wrapped: instance t ~ GHC.IO.Exception.AssertionFailed => Control.Lens.Wrapped.Rewrapped GHC.IO.Exception.AssertionFailed t
+ Control.Lens.Zoom: instance (GHC.Base.Functor f, Control.Lens.Zoom.Zoom m n s t) => Control.Lens.Zoom.Zoom (Control.Monad.Trans.Free.FreeT f m) (Control.Monad.Trans.Free.FreeT f n) s t
+ Language.Haskell.TH.Lens: _CharPrimL :: Prism' Lit Char
+ Language.Haskell.TH.Lens: _DataFamilyD :: Prism' Dec (Name, [TyVarBndr], Maybe Kind)
+ Language.Haskell.TH.Lens: _DecidedLazy :: Prism' DecidedStrictness ()
+ Language.Haskell.TH.Lens: _DecidedStrict :: Prism' DecidedStrictness ()
+ Language.Haskell.TH.Lens: _DecidedUnpack :: Prism' DecidedStrictness ()
+ Language.Haskell.TH.Lens: _GadtC :: Prism' Con ([Name], [BangType], Type)
+ Language.Haskell.TH.Lens: _Incoherent :: Prism' Overlap ()
+ Language.Haskell.TH.Lens: _InfixT :: Prism' Type (Type, Name, Type)
+ Language.Haskell.TH.Lens: _KindSig :: Prism' FamilyResultSig Kind
+ Language.Haskell.TH.Lens: _NoSig :: Prism' FamilyResultSig ()
+ Language.Haskell.TH.Lens: _NoSourceStrictness :: Prism' SourceStrictness ()
+ Language.Haskell.TH.Lens: _NoSourceUnpackedness :: Prism' SourceUnpackedness ()
+ Language.Haskell.TH.Lens: _OpenTypeFamilyD :: Prism' Dec TypeFamilyHead
+ Language.Haskell.TH.Lens: _Overlappable :: Prism' Overlap ()
+ Language.Haskell.TH.Lens: _Overlapping :: Prism' Overlap ()
+ Language.Haskell.TH.Lens: _Overlaps :: Prism' Overlap ()
+ Language.Haskell.TH.Lens: _ParensT :: Prism' Type Type
+ Language.Haskell.TH.Lens: _RecGadtC :: Prism' Con ([Name], [VarBangType], Type)
+ Language.Haskell.TH.Lens: _SourceLazy :: Prism' SourceStrictness ()
+ Language.Haskell.TH.Lens: _SourceNoUnpack :: Prism' SourceUnpackedness ()
+ Language.Haskell.TH.Lens: _SourceStrict :: Prism' SourceStrictness ()
+ Language.Haskell.TH.Lens: _SourceUnpack :: Prism' SourceUnpackedness ()
+ Language.Haskell.TH.Lens: _TyVarSig :: Prism' FamilyResultSig TyVarBndr
+ Language.Haskell.TH.Lens: _UInfixT :: Prism' Type (Type, Name, Type)
+ Language.Haskell.TH.Lens: _UnboundVarE :: Prism' Exp Name
+ Language.Haskell.TH.Lens: _WildCardT :: Prism' Type ()
+ Language.Haskell.TH.Lens: bangSourceStrictness :: Lens' Bang SourceStrictness
+ Language.Haskell.TH.Lens: bangSourceUnpackedness :: Lens' Bang SourceUnpackedness
+ Language.Haskell.TH.Lens: injectivityAnnInputs :: Lens' InjectivityAnn [Name]
+ Language.Haskell.TH.Lens: injectivityAnnOutput :: Lens' InjectivityAnn Name
+ Language.Haskell.TH.Lens: instance Language.Haskell.TH.Lens.HasName Language.Haskell.TH.Syntax.InjectivityAnn
+ Language.Haskell.TH.Lens: instance Language.Haskell.TH.Lens.HasName Language.Haskell.TH.Syntax.TypeFamilyHead
+ Language.Haskell.TH.Lens: typeFamilyHeadInjectivityAnn :: Lens' TypeFamilyHead (Maybe InjectivityAnn)
+ Language.Haskell.TH.Lens: typeFamilyHeadName :: Lens' TypeFamilyHead Name
+ Language.Haskell.TH.Lens: typeFamilyHeadResultSig :: Lens' TypeFamilyHead FamilyResultSig
+ Language.Haskell.TH.Lens: typeFamilyHeadTyVarBndrs :: Lens' TypeFamilyHead [TyVarBndr]
- Control.Exception.Lens: class Handleable e (m :: * -> *) (h :: * -> *) | h -> e m
+ Control.Exception.Lens: class Handleable e (m :: * -> *) (h :: * -> *) | h -> e m where handler_ l = handler l . const
- Control.Lens.At: class Ixed m
+ Control.Lens.At: class Ixed m where ix = ixAt
- Control.Lens.At: ix :: Ixed m => Index m -> Traversal' m (IxValue m)
+ Control.Lens.At: ix :: (Ixed m, Applicative f, At m) => Index m -> LensLike' f m (IxValue m)
- Control.Lens.Each: class Each s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Each: class Each s t a b | s -> a, t -> b, s b -> t, t a -> s where each = traverse
- Control.Lens.Each: each :: Each s t a b => Traversal s t a b
+ Control.Lens.Each: each :: (Each s t a b, Traversable g, s ~ g a, t ~ g b) => Traversal s t a b
- Control.Lens.Empty: _Empty :: AsEmpty a => Prism' a ()
+ Control.Lens.Empty: _Empty :: (AsEmpty a, Monoid a, Eq a) => Prism' a ()
- Control.Lens.Empty: class AsEmpty a
+ Control.Lens.Empty: class AsEmpty a where _Empty = only mempty
- Control.Lens.Equality: mapEq :: AnEquality s t a b -> f s -> f a
+ Control.Lens.Equality: mapEq :: forall (s :: k1) (t :: k2) (a :: k1) (b :: k2) (f :: k1 -> *). AnEquality s t a b -> f s -> f a
- Control.Lens.Equality: type Equality (s :: k1) (t :: k2) (a :: k1) (b :: k2) = forall (p :: k1 -> * -> *) (f :: k2 -> *). p a (f b) -> p s (f t)
+ Control.Lens.Equality: type Equality (s :: k1) (t :: k2) (a :: k1) (b :: k2) = forall k3 (p :: k1 -> k3 -> *) (f :: k2 -> k3). p a (f b) -> p s (f t)
- Control.Lens.Getter: (>$) :: Contravariant f => b -> f b -> f a
+ Control.Lens.Getter: (>$) :: b -> f b -> f a
- Control.Lens.Getter: Const :: a -> Const a b
+ Control.Lens.Getter: Const :: a -> Const k a
- Control.Lens.Getter: [getConst] :: Const a b -> a
+ Control.Lens.Getter: [getConst] :: Const k a -> a
- Control.Lens.Getter: contramap :: Contravariant f => (a -> b) -> f b -> f a
+ Control.Lens.Getter: contramap :: (a -> b) -> f b -> f a
- Control.Lens.Getter: newtype Const a b :: * -> * -> *
+ Control.Lens.Getter: newtype Const k a (b :: k) :: forall k. * -> k -> *
- Control.Lens.Indexed: class (Choice p, Corepresentable p, Comonad (Corep p), Traversable (Corep p), Strong p, Representable p, Monad (Rep p), MonadFix (Rep p), Distributive (Rep p), Costrong p, ArrowLoop p, ArrowApply p, ArrowChoice p, Closed p) => Conjoined p
+ Control.Lens.Indexed: class (Choice p, Corepresentable p, Comonad (Corep p), Traversable (Corep p), Strong p, Representable p, Monad (Rep p), MonadFix (Rep p), Distributive (Rep p), Costrong p, ArrowLoop p, ArrowApply p, ArrowChoice p, Closed p) => Conjoined p where distrib = tabulate . collect . sieve conjoined _ r = r
- Control.Lens.Indexed: class Foldable f => FoldableWithIndex i f | f -> i
+ Control.Lens.Indexed: class Foldable f => FoldableWithIndex i f | f -> i where ifoldMap = ifoldMapOf itraversed ifolded = conjoined folded $ \ f -> phantom . getFolding . ifoldMap (\ i -> Folding #. indexed f i) ifoldr f z t = appEndo (ifoldMap (\ i -> Endo #. f i) t) z ifoldl f z t = appEndo (getDual (ifoldMap (\ i -> Dual #. Endo #. flip (f i)) t)) z ifoldr' f z0 xs = ifoldl f' id xs z0 where f' i k x z = k $! f i x z ifoldl' f z0 xs = ifoldr f' id xs z0 where f' i x k z = k $! f i z x
- Control.Lens.Indexed: class Functor f => FunctorWithIndex i f | f -> i
+ Control.Lens.Indexed: class Functor f => FunctorWithIndex i f | f -> i where imap = iover itraversed imapped = conjoined mapped (isets imap)
- Control.Lens.Indexed: class (FunctorWithIndex i t, FoldableWithIndex i t, Traversable t) => TraversableWithIndex i t | t -> i
+ Control.Lens.Indexed: class (FunctorWithIndex i t, FoldableWithIndex i t, Traversable t) => TraversableWithIndex i t | t -> i where itraverse = traversed .# Indexed itraversed = conjoined traverse (itraverse . indexed)
- Control.Lens.Indexed: ifoldMap :: (FoldableWithIndex i f, Monoid m) => (i -> a -> m) -> f a -> m
+ Control.Lens.Indexed: ifoldMap :: (FoldableWithIndex i f, TraversableWithIndex i f, Monoid m) => (i -> a -> m) -> f a -> m
- Control.Lens.Indexed: imap :: FunctorWithIndex i f => (i -> a -> b) -> f a -> f b
+ Control.Lens.Indexed: imap :: (FunctorWithIndex i f, TraversableWithIndex i f) => (i -> a -> b) -> f a -> f b
- Control.Lens.Indexed: itraverse :: (TraversableWithIndex i t, Applicative f) => (i -> a -> f b) -> t a -> f (t b)
+ Control.Lens.Indexed: itraverse :: (TraversableWithIndex i t, Applicative f) => (Int -> a -> f b) -> t a -> f (t b)
- Control.Lens.Internal.Coerce: coerce' :: Coercible a b => b -> a
+ Control.Lens.Internal.Coerce: coerce' :: forall a b. Coercible a b => b -> a
- Control.Lens.Internal.Context: class IndexedFunctor w => IndexedComonad w
+ Control.Lens.Internal.Context: class IndexedFunctor w => IndexedComonad w where iduplicate = iextend id iextend f = ifmap f . iduplicate
- Control.Lens.Internal.Context: class IndexedComonad w => IndexedComonadStore w
+ Control.Lens.Internal.Context: class IndexedComonad w => IndexedComonadStore w where ipeek c = iextract . iseek c ipeeks f = iextract . iseeks f iexperiment bfc wbct = (`ipeek` wbct) <$> bfc (ipos wbct) context wabt = Context (`ipeek` wabt) (ipos wabt)
- Control.Lens.Internal.Exception: class Handleable e (m :: * -> *) (h :: * -> *) | h -> e m
+ Control.Lens.Internal.Exception: class Handleable e (m :: * -> *) (h :: * -> *) | h -> e m where handler_ l = handler l . const
- Control.Lens.Internal.Indexed: class (Choice p, Corepresentable p, Comonad (Corep p), Traversable (Corep p), Strong p, Representable p, Monad (Rep p), MonadFix (Rep p), Distributive (Rep p), Costrong p, ArrowLoop p, ArrowApply p, ArrowChoice p, Closed p) => Conjoined p
+ Control.Lens.Internal.Indexed: class (Choice p, Corepresentable p, Comonad (Corep p), Traversable (Corep p), Strong p, Representable p, Monad (Rep p), MonadFix (Rep p), Distributive (Rep p), Costrong p, ArrowLoop p, ArrowApply p, ArrowChoice p, Closed p) => Conjoined p where distrib = tabulate . collect . sieve conjoined _ r = r
- Control.Lens.Internal.Setter: class (Applicative f, Distributive f, Traversable f) => Settable f
+ Control.Lens.Internal.Setter: class (Applicative f, Distributive f, Traversable f) => Settable f where untaintedDot g = g `seq` rmap untainted g taintedDot g = g `seq` rmap pure g
- Control.Lens.Iso: coerced :: (Coercible s a, Coercible t b) => Iso s t a b
+ Control.Lens.Iso: coerced :: forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
- Control.Lens.Iso: dimap :: Profunctor p => (a -> b) -> (c -> d) -> p b c -> p a d
+ Control.Lens.Iso: dimap :: (a -> b) -> (c -> d) -> p b c -> p a d
- Control.Lens.Iso: lmap :: Profunctor p => (a -> b) -> p b c -> p a c
+ Control.Lens.Iso: lmap :: (a -> b) -> p b c -> p a c
- Control.Lens.Iso: rmap :: Profunctor p => (b -> c) -> p a b -> p a c
+ Control.Lens.Iso: rmap :: (b -> c) -> p a b -> p a c
- Control.Lens.Plated: class Plated a
+ Control.Lens.Plated: class Plated a where plate = uniplate
- Control.Lens.Plated: plate :: Plated a => Traversal' a a
+ Control.Lens.Plated: plate :: (Plated a, Data a) => Traversal' a a
- Control.Lens.Prism: left' :: Choice p => p a b -> p (Either a c) (Either b c)
+ Control.Lens.Prism: left' :: p a b -> p (Either a c) (Either b c)
- Control.Lens.Prism: right' :: Choice p => p a b -> p (Either c a) (Either c b)
+ Control.Lens.Prism: right' :: p a b -> p (Either c a) (Either c b)
- Control.Lens.Review: bimap :: Bifunctor p => (a -> b) -> (c -> d) -> p a c -> p b d
+ Control.Lens.Review: bimap :: (a -> b) -> (c -> d) -> p a c -> p b d
- Control.Lens.Setter: class (Applicative f, Distributive f, Traversable f) => Settable f
+ Control.Lens.Setter: class (Applicative f, Distributive f, Traversable f) => Settable f where untaintedDot g = g `seq` rmap untainted g taintedDot g = g `seq` rmap pure g
- Control.Lens.Traversal: holesOf :: Conjoined p => Over p (Bazaar p a a) s t a a -> s -> [Pretext p a a t]
+ Control.Lens.Traversal: holesOf :: forall p s t a. Conjoined p => Over p (Bazaar p a a) s t a a -> s -> [Pretext p a a t]
- Control.Lens.Traversal: ipartsOf :: (Indexable [i] p, Functor f) => Traversing (Indexed i) f s t a a -> Over p f s t [a] [a]
+ Control.Lens.Traversal: ipartsOf :: forall i p f s t a. (Indexable [i] p, Functor f) => Traversing (Indexed i) f s t a a -> Over p f s t [a] [a]
- Control.Lens.Traversal: ipartsOf' :: (Indexable [i] p, Functor f) => Over (Indexed i) (Bazaar' (Indexed i) a) s t a a -> Over p f s t [a] [a]
+ Control.Lens.Traversal: ipartsOf' :: forall i p f s t a. (Indexable [i] p, Functor f) => Over (Indexed i) (Bazaar' (Indexed i) a) s t a a -> Over p f s t [a] [a]
- Control.Lens.Traversal: iunsafePartsOf :: (Indexable [i] p, Functor f) => Traversing (Indexed i) f s t a b -> Over p f s t [a] [b]
+ Control.Lens.Traversal: iunsafePartsOf :: forall i p f s t a b. (Indexable [i] p, Functor f) => Traversing (Indexed i) f s t a b -> Over p f s t [a] [b]
- Control.Lens.Traversal: iunsafePartsOf' :: Over (Indexed i) (Bazaar (Indexed i) a b) s t a b -> IndexedLens [i] s t [a] [b]
+ Control.Lens.Traversal: iunsafePartsOf' :: forall i s t a b. Over (Indexed i) (Bazaar (Indexed i) a b) s t a b -> IndexedLens [i] s t [a] [b]
- Control.Lens.Traversal: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
+ Control.Lens.Traversal: traverse :: Applicative f => (a -> f b) -> t a -> f (t b)
- Control.Lens.Traversal: traverse1 :: (Traversable1 t, Apply f) => (a -> f b) -> t a -> f (t b)
+ Control.Lens.Traversal: traverse1 :: Apply f => (a -> f b) -> t a -> f (t b)
- Control.Lens.Tuple: _1 :: Field1 s t a b => Lens s t a b
+ Control.Lens.Tuple: _1 :: (Field1 s t a b, Generic s, Generic t, GIxed N0 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: _2 :: Field2 s t a b => Lens s t a b
+ Control.Lens.Tuple: _2 :: (Field2 s t a b, Generic s, Generic t, GIxed N1 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: _3 :: Field3 s t a b => Lens s t a b
+ Control.Lens.Tuple: _3 :: (Field3 s t a b, Generic s, Generic t, GIxed N2 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: _4 :: Field4 s t a b => Lens s t a b
+ Control.Lens.Tuple: _4 :: (Field4 s t a b, Generic s, Generic t, GIxed N3 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: _5 :: Field5 s t a b => Lens s t a b
+ Control.Lens.Tuple: _5 :: (Field5 s t a b, Generic s, Generic t, GIxed N4 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: _6 :: Field6 s t a b => Lens s t a b
+ Control.Lens.Tuple: _6 :: (Field6 s t a b, Generic s, Generic t, GIxed N5 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: _7 :: Field7 s t a b => Lens s t a b
+ Control.Lens.Tuple: _7 :: (Field7 s t a b, Generic s, Generic t, GIxed N6 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: _8 :: Field8 s t a b => Lens s t a b
+ Control.Lens.Tuple: _8 :: (Field8 s t a b, Generic s, Generic t, GIxed N7 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: _9 :: Field9 s t a b => Lens s t a b
+ Control.Lens.Tuple: _9 :: (Field9 s t a b, Generic s, Generic t, GIxed N8 (Rep s) (Rep t) a b) => Lens s t a b
- Control.Lens.Tuple: class Field1 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field1 s t a b | s -> a, t -> b, s b -> t, t a -> s where _1 = ix proxyN0
- Control.Lens.Tuple: class Field2 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field2 s t a b | s -> a, t -> b, s b -> t, t a -> s where _2 = ix proxyN1
- Control.Lens.Tuple: class Field3 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field3 s t a b | s -> a, t -> b, s b -> t, t a -> s where _3 = ix proxyN2
- Control.Lens.Tuple: class Field4 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field4 s t a b | s -> a, t -> b, s b -> t, t a -> s where _4 = ix proxyN3
- Control.Lens.Tuple: class Field5 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field5 s t a b | s -> a, t -> b, s b -> t, t a -> s where _5 = ix proxyN4
- Control.Lens.Tuple: class Field6 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field6 s t a b | s -> a, t -> b, s b -> t, t a -> s where _6 = ix proxyN5
- Control.Lens.Tuple: class Field7 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field7 s t a b | s -> a, t -> b, s b -> t, t a -> s where _7 = ix proxyN6
- Control.Lens.Tuple: class Field8 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field8 s t a b | s -> a, t -> b, s b -> t, t a -> s where _8 = ix proxyN7
- Control.Lens.Tuple: class Field9 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Control.Lens.Tuple: class Field9 s t a b | s -> a, t -> b, s b -> t, t a -> s where _9 = ix proxyN8
- Control.Lens.Type: type Equality (s :: k1) (t :: k2) (a :: k1) (b :: k2) = forall (p :: k1 -> * -> *) (f :: k2 -> *). p a (f b) -> p s (f t)
+ Control.Lens.Type: type Equality (s :: k1) (t :: k2) (a :: k1) (b :: k2) = forall k3 (p :: k1 -> k3 -> *) (f :: k2 -> k3). p a (f b) -> p s (f t)
- Control.Lens.Wrapped: class Wrapped s where {
+ Control.Lens.Wrapped: class Wrapped s where type Unwrapped s :: * where {
- Control.Lens.Zoom: class (Zoomed m ~ Zoomed n, MonadState s m, MonadState t n) => Zoom m n s t | m -> s, n -> t, m t -> n, n s -> m
+ Control.Lens.Zoom: class (MonadState s m, MonadState t n) => Zoom m n s t | m -> s, n -> t, m t -> n, n s -> m
- Control.Monad.Error.Lens: class Handleable e (m :: * -> *) (h :: * -> *) | h -> e m
+ Control.Monad.Error.Lens: class Handleable e (m :: * -> *) (h :: * -> *) | h -> e m where handler_ l = handler l . const
- Data.ByteString.Lens: class IsByteString t
+ Data.ByteString.Lens: class IsByteString t where bytes = from packedBytes . traversed chars = from packedChars . traversed
- Data.Data.Lens: biplate :: (Data s, Typeable a) => Traversal' s a
+ Data.Data.Lens: biplate :: forall s a. (Data s, Typeable a) => Traversal' s a
- Data.Data.Lens: onceUpon :: (Data s, Typeable a) => (s -> a) -> IndexedTraversal' Int s a
+ Data.Data.Lens: onceUpon :: forall s a. (Data s, Typeable a) => (s -> a) -> IndexedTraversal' Int s a
- Data.Data.Lens: onceUpon' :: (Data s, Typeable a) => (s -> a) -> IndexedLens' Int s a
+ Data.Data.Lens: onceUpon' :: forall s a. (Data s, Typeable a) => (s -> a) -> IndexedLens' Int s a
- Data.Data.Lens: template :: (Data s, Typeable a) => Traversal' s a
+ Data.Data.Lens: template :: forall s a. (Data s, Typeable a) => Traversal' s a
- Data.Data.Lens: upon :: (Indexable [Int] p, Applicative f, Data s, Data a) => (s -> a) -> p a (f a) -> s -> f s
+ Data.Data.Lens: upon :: forall p f s a. (Indexable [Int] p, Applicative f, Data s, Data a) => (s -> a) -> p a (f a) -> s -> f s
- Data.Data.Lens: upon' :: (Data s, Data a) => (s -> a) -> IndexedLens' [Int] s a
+ Data.Data.Lens: upon' :: forall s a. (Data s, Data a) => (s -> a) -> IndexedLens' [Int] s a
- Data.Text.Lens: class IsText t
+ Data.Text.Lens: class IsText t where text = unpacked . traversed
- Language.Haskell.TH.Lens: _ClassOpI :: Prism' Info (Name, Type, ParentName, Fixity)
+ Language.Haskell.TH.Lens: _ClassOpI :: Prism' Info (Name, Type, ParentName)
- Language.Haskell.TH.Lens: _ClosedTypeFamilyD :: Prism' Dec (Name, [TyVarBndr], Maybe Kind, [TySynEqn])
+ Language.Haskell.TH.Lens: _ClosedTypeFamilyD :: Prism' Dec (TypeFamilyHead, [TySynEqn])
- Language.Haskell.TH.Lens: _DataConI :: Prism' Info (Name, Type, ParentName, Fixity)
+ Language.Haskell.TH.Lens: _DataConI :: Prism' Info (Name, Type, ParentName)
- Language.Haskell.TH.Lens: _DataD :: Prism' Dec (Cxt, Name, [TyVarBndr], [Con], [Name])
+ Language.Haskell.TH.Lens: _DataD :: Prism' Dec (Cxt, Name, [TyVarBndr], Maybe Kind, [Con], Cxt)
- Language.Haskell.TH.Lens: _DataInstD :: Prism' Dec (Cxt, Name, [Type], [Con], [Name])
+ Language.Haskell.TH.Lens: _DataInstD :: Prism' Dec (Cxt, Name, [Type], Maybe Kind, [Con], Cxt)
- Language.Haskell.TH.Lens: _FamilyI :: Prism' Info (Dec, [Dec])
+ Language.Haskell.TH.Lens: _FamilyI :: Prism' Info (Dec, [InstanceDec])
- Language.Haskell.TH.Lens: _InfixC :: Prism' Con (StrictType, Name, StrictType)
+ Language.Haskell.TH.Lens: _InfixC :: Prism' Con (BangType, Name, BangType)
- Language.Haskell.TH.Lens: _InstanceD :: Prism' Dec (Cxt, Type, [Dec])
+ Language.Haskell.TH.Lens: _InstanceD :: Prism' Dec (Maybe Overlap, Cxt, Type, [Dec])
- Language.Haskell.TH.Lens: _NewtypeD :: Prism' Dec (Cxt, Name, [TyVarBndr], Con, [Name])
+ Language.Haskell.TH.Lens: _NewtypeD :: Prism' Dec (Cxt, Name, [TyVarBndr], Maybe Kind, Con, Cxt)
- Language.Haskell.TH.Lens: _NewtypeInstD :: Prism' Dec (Cxt, Name, [Type], Con, [Name])
+ Language.Haskell.TH.Lens: _NewtypeInstD :: Prism' Dec (Cxt, Name, [Type], Maybe Kind, Con, Cxt)
- Language.Haskell.TH.Lens: _NormalC :: Prism' Con (Name, [StrictType])
+ Language.Haskell.TH.Lens: _NormalC :: Prism' Con (Name, [BangType])
- Language.Haskell.TH.Lens: _RecC :: Prism' Con (Name, [VarStrictType])
+ Language.Haskell.TH.Lens: _RecC :: Prism' Con (Name, [VarBangType])
- Language.Haskell.TH.Lens: _VarI :: Prism' Info (Name, Type, Maybe Dec, Fixity)
+ Language.Haskell.TH.Lens: _VarI :: Prism' Info (Name, Type, Maybe Dec)
- Language.Haskell.TH.Lens: conFields :: Traversal' Con StrictType
+ Language.Haskell.TH.Lens: conFields :: Traversal' Con BangType
- Language.Haskell.TH.Lens: conNamedFields :: Traversal' Con VarStrictType
+ Language.Haskell.TH.Lens: conNamedFields :: Traversal' Con VarBangType
Files
- CHANGELOG.markdown +4/−0
- README.markdown +0/−178
- benchmarks/alongside.hs +9/−11
- benchmarks/plated.hs +8/−0
- benchmarks/unsafe.hs +7/−5
- benchmarks/zipper.hs +0/−45
- cabal.project +1/−0
- lens.cabal +7/−24
- src/Control/Lens/Cons.hs +0/−14
- src/Control/Lens/Getter.hs +10/−0
- src/Control/Lens/Internal/Zoom.hs +47/−43
- src/Control/Lens/Lens.hs +1/−1
- src/Control/Lens/TH.hs +5/−2
- src/Control/Lens/Zoom.hs +48/−2
- src/Language/Haskell/TH/Lens.hs +47/−1
CHANGELOG.markdown view
@@ -1,3 +1,7 @@+4.14+----+* Remove `Cons` and `Snoc` instances for `NonEmpty`.+ 4.13.2.1 ------ * Fixed `itraverse_` and `imapM_` returning bottom
README.markdown view
@@ -220,184 +220,6 @@ There are also a couple of hundred examples distributed throughout the haddock documentation. -Operators-=========--(See [`wiki/Operators`](https://github.com/ekmett/lens/wiki/Operators))--<table>-<thead>-<tr>- <th>Combinator(s)</th>- <th>w/ Result</th>- <th>Stateful</th>- <th>w/ Result</th>- <th>Notes</th>-</tr>-</thead>-<tbody>-<tr><th colspan=5><a href="http://ekmett.github.com/lens/Control-Lens.html">Control.Lens</a></th></tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Getter.html#v:view"><code>view</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-Getter.html#v:views"><code>views</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-Getter.html#v:-94-."><code>^.</code></a></td>- <td/>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Getter.html#v:use"><code>use</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-Getter.html#v:uses"><code>uses</code></a></td>- <td/>- <td>View target(s). <a href="http://ekmett.github.com/lens/Control-Lens-Getter.html#v:view"><code>view</code></a> works like <a href="http://ekmett.github.com/lens/Control-Lens-Getter.html#v:use"><code>use</code></a> over a <code>MonadReader</code></td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:set"><code>set</code></a>, <a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:.-126-"><code>.~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-60-.-126-"><code><.~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:.-61-"><code>.=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:assign"><code>assign</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-60-.-61-"><code><.=</code></a></td>- <td>Replace target(s). <a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--60-.-126-"><code><<.~</code></a> and- <a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--60-.-61-"><code><<.=</code></a>- return the old value</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:over"><code>over</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:mapOf"><code>mapOf</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-37--126-"><code>%~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--37--126-"><code><%~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-37--61-"><code>%=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--37--61-"><code><%=</code></td>- <td>Update target(s). <a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--60--37--126-"><code><<%~</code></a> and- <a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--60--37--61-"><code><<%=</code></a>- return the old value</td>-</tr>-<tr>- <td><code>id</code>,<a href="http://ekmett.github.com/lens/Control-Lens-Traversal.html#v:traverseOf"><code>traverseOf</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-37--37--126-"><code>%%~</code></a></td>- <td/>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-37--37--61-"><code>%%=</code></a></td>- <td/>- <td>Update target(s) with an <code>Applicative</code> or auxiliary result</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-43--126-"><code>+~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--43--126-"><code><+~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-43--61-"><code>+=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--43--61-"><code><+=</code></td>- <td>Add to target(s)</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-45--126-"><code>-~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--45--126-"><code><-~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-45--61-"><code>-=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--45--61-"><code><-=</code></td>- <td>Subtract from target(s)</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-42--126-"><code>*~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--42--126-"><code><*~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-42--61-"><code>*=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--42--61-"><code><*=</code></td>- <td>Multiply target(s)</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-47--47--126-"><code>//~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--47--47--126-"><code><//~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-47--47--61-"><code>//=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--47--47--61-"><code><//=</code></td>- <td>Divide target(s)</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-94--126-"><code>^~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--94--126-"><code><^~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-94--61-"><code>^=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--94--61-"><code><^=</code></td>- <td>Raise target(s) to a non-negative <code>Integral</code> power</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-94--94--126-"><code>^^~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--94--94--126-"><code><^^~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-94--94--61-"><code>^^=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--94--94--61-"><code><^^=</code></td>- <td>Raise target(s) to an <code>Integral</code> power</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-42--42--126-"><code>**~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--42--42--126-"><code><**~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-42--42--61-"><code>**=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--42--42--61-"><code><**=</code></td>- <td>Raise target(s) to an arbitrary power</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-124--124--126-"><code>||~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--124--124--126-"><code><||~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-124--124--61-"><code>||=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--124--124--61-"><code><||=</code></td>- <td>Logically or target(s)</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-38--38--126-"><code>&&~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--38--38--126-"><code><&&~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-38--38--61-"><code>&&=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--38--38--61-"><code><&&=</code></td>- <td>Logically and target(s)</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-60--62--126-"><code><>~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--60--62--126-"><code><<>~</code></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Setter.html#v:-60--62--61-"><code><>=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Lens.html#v:-60--60--62--61-"><code><<>=</code></td>- <td><code>mappend</code> to the target monoidal value(s)</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Fold.html#v:headOf"><code>headOf</code>,<a href="http://ekmett.github.com/lens/Control-Lens-Fold.html#v:-94--63-"><code>^?</code></a></td>- <td/><td/><td/>- <td>Return <code>Just</code> the first target or <code>Nothing</code></td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Fold.html#v:toListOf"><code>toListOf</code>,<a href="http://ekmett.github.com/lens/Control-Lens-Fold.html#v:-94-.."><code>^..</code></a></td>- <td/><td/><td/>- <td>Return a list of the target(s)</td>-</tr>-<tr><th colspan=5><a href="http://ekmett.github.com/lens/Control-Lens.html">Control.Lens</a> (Indexed)</th></tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-IndexedSetter.html#v:iover"><code>iover</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-IndexedSetter.html#v:imapOf"><code>imapOf</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-IndexedSetter.html#v:-37--64--126-"><code>%@~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-IndexedLens.html#v:-60--37--64--126-"><code><%@~</code></td>- <td><a href=http://ekmett.github.com/lens/Control-Lens-IndexedSetter.html#v:-37--64--126-"><code>%@=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Control-Lens-IndexedLens.html#v:-60--37--64--61-"><code><%@=</code></td>- <td>Update target(s) with access to the index.</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Control-Lens-Indexed.html#v:withIndex"><code>withIndex</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-IndexedTraversal.html#v:itraverseOf"><code>itraverseOf</code></a>,<a href="http://ekmett.github.com/lens/Control-Lens-IndexedLens.html#v:-37--37--64--126-"><code>%%@~</code></a></td>- <td/>- <td><a href="http://ekmett.github.com/lens/Control-Lens-IndexedLens.html#v:-37--37--64--61-"><code>%%@=</code></a></td>- <td/>- <td>Update target(s) with an <code>Applicative</code> or auxiliary result with access to the index.</td>-</tr>-<tr><th colspan=5><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html">Data.Bits.Lens</a></th></tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html#v:-124--126-"><code>.|.~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html#v:-60--124--126-"><code><.|.~</code></td>- <td><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html#v:-124--61-"><code>.|.=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html#v:-60--124--61-"><code><.|.=</code></td>- <td>Bitwise or target(s)</td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html#v:-38--126-"><code>.&.~</code></a></td>- <td><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html#v:-60--38--126-"><code><.&.~</code></td>- <td><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html#v:-38--61-"><code>.&.=</code></a></td>- <td><a href="http://ekmett.github.com/lens/Data-Bits-Lens.html#v:-60--38--61-"><code><.&.=</code></td>- <td>Bitwise and target(s)</td>-</tr>-<tr><th colspan=5><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html">System.FilePath.Lens</a></th></tr>-<tr>- <td><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html#v:-60--47--62--126-"><code></>~</code></a></td>- <td><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html#v:-60--60--47--62--126-"><code><</>~</code></td>- <td><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html#v:-60--47--62--61-"><code></>=</code></a></td>- <td><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html#v:-60--60--47--62--61-"><code><</>=</code></td>- <td>Append a relative path to a <code>FilePath</code></td>-</tr>-<tr>- <td><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html#v:-60-.-62--126-"><code><.>~</code></a></td>- <td><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html#v:-60--60-.-62--126-"><code><<.>~</code></td>- <td><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html#v:-60-.-62--61-"><code><.>=</code></a></td>- <td><a href="http://ekmett.github.com/lens/System-FilePath-Lens.html#v:-60--60-.-62--61-"><code><<.>=</code></td>- <td>Append a file extension to a <code>FilePath</code></td>-</tr>-</tbody>-</table>-- Contact Information -------------------
benchmarks/alongside.hs view
@@ -70,22 +70,20 @@ -- alongside' :: Lens s t a b -> Lens s' t' a' b' -> Lens (s,s') (t,t') (a,a') (b,b') -- {-# INLINE alongside'#-} -compound :: Lens s t a b- -> Lens s' t' a' b'- -> Lens (s,s') (t,t') (a,a') (b,b')+compound :: Lens' s a+ -> Lens' s' a'+ -> Lens' (s,s') (a,a') compound l r = lens (\(s, s') -> (view l s, view r s')) (\(s, s') (t, t') -> (set l t s, set r t' s')) {-# INLINE compound #-} -compound5 :: Lens s t a b- -> Lens s' t' a' b'- -> Lens s'' t'' a'' b''- -> Lens s''' t''' a''' b'''- -> Lens s'''' t'''' a'''' b''''- -> Lens (s, (s', (s'', (s''', s''''))))- (t, (t', (t'', (t''', t''''))))+compound5 :: Lens' s a+ -> Lens' s' a'+ -> Lens' s'' a''+ -> Lens' s''' a'''+ -> Lens' s'''' a''''+ -> Lens' (s, (s', (s'', (s''', s'''')))) (a, (a', (a'', (a''', a''''))))- (b, (b', (b'', (b''', b'''')))) compound5 l l' l'' l''' l'''' = lens (\(s, (s', (s'', (s''', s'''')))) -> (view l s, (view l' s', (view l'' s'', (view l''' s''', view l'''' s'''')))) )
benchmarks/plated.hs view
@@ -2,7 +2,15 @@ {-# LANGUAGE Rank2Types #-} {-# LANGUAGE DeriveDataTypeable, DeriveGeneric #-} {-# OPTIONS_GHC -funbox-strict-fields #-}++#ifndef MIN_VERSION_base+#define MIN_VERSION_base(x,y,z) 1+#endif++#if !(MIN_VERSION_base(4,8,0)) import Control.Applicative+#endif+ import Control.Lens import Control.DeepSeq import Criterion.Main
benchmarks/unsafe.hs view
@@ -6,16 +6,18 @@ import Control.Exception import Criterion.Main-import Criterion.Config+import Criterion.Types (Config(..)) +import Data.Functor.Identity (Identity(..))+ import GHC.Exts overS :: ASetter s t a b -> (a -> b) -> s -> t-overS l f = runMutator . l (Mutator . f)+overS l f = runIdentity . l (Identity . f) {-# INLINE overS #-} mappedS :: ASetter [a] [b] a b-mappedS f = Mutator . map (runMutator . f)+mappedS f = Identity . map (runIdentity . f) {-# INLINE mappedS #-} overU :: ASetter s t a b -> (a -> b) -> s -> t@@ -53,11 +55,11 @@ --l = replicate n (); f = (\ _ -> ()) --l = replicate n (); f = (\ !_ -> ()) -- strange results --l = replicate n (); f = lazy (\_ -> ())- defaultMainWith config (return ())+ defaultMainWith config [ bench "map safe noinline" $ nf (mapSN f) l , bench "map safe inline" $ nf (mapSI f) l , bench "map unsafe noinline" $ nf (mapUN f) l , bench "map unsafe inline" $ nf (mapUI f) l ] where- config = defaultConfig { cfgSamples = ljust 1000 }+ config = defaultConfig { resamples = 1000 }
− benchmarks/zipper.hs
@@ -1,45 +0,0 @@-module Main- ( main -- :: IO ()- ) where--import Control.Lens-import Criterion.Main--main :: IO ()-main = defaultMain- [ bgroup "rezip"- [ bench "rezip" $ nf tugAndRezip1 ['a'..'z']- , bench "farthest leftward" $ nf tugAndRezip2 ['a'..'z']- , bench "leftmost" $ nf tugAndRezip3 ['a'..'z']- , bench "tugTo" $ nf tugAndRezip4 ['a'..'z']- ]- , bgroup "zipper creation"- [ bench "over traverse id" $ nf (over traverse id) ['a'..'z']- , bench "zipper" $ nf zipTraverseRezip ['a'..'z']- ]- , bgroup "downward"- [ bench "downward _1" $ nf downwardAndRezip1 (['a'..'z'],['z'..'a'])- , bench "fromWithin" $ nf downwardAndRezip2 (['a'..'z'],['z'..'a'])- ]- ]---- What's the fastest rezip of all?-tugAndRezip1, tugAndRezip2, tugAndRezip3 :: String -> String-tugAndRezip1 xs = zipntugs 25 xs & focus .~ 'a' & rezip-tugAndRezip2 xs = zipntugs 25 xs & focus .~ 'b' & farthest leftward & rezip-tugAndRezip3 xs = zipntugs 25 xs & focus .~ 'c' & leftmost & rezip-tugAndRezip4 xs = zipntugs 25 xs & focus .~ 'd' & tugTo 0 & rezip--zipntugs i x = zipper x & fromWithin traverse & tugs rightward i---- How fast is creating and destroying a zipper compared to--- a regular traversal?-zipTraverseRezip x = zipper x & fromWithin traverse & rezip---- is 'downward' any faster than the composition of traverse?-downwardAndRezip1 :: (String, String) -> (String, String)-downwardAndRezip1 xs =- zipper xs & downward _1 & fromWithin traverse & focus .~ 'h' & rezip-downwardAndRezip2 :: (String, String) -> (String, String)-downwardAndRezip2 xs =- zipper xs & fromWithin (_1.traverse) & focus .~ 'g' & rezip
+ cabal.project view
@@ -0,0 +1,1 @@+packages: .
lens.cabal view
@@ -1,6 +1,6 @@ name: lens category: Data, Lenses, Generics-version: 4.13.2.1+version: 4.14 license: BSD3 cabal-version: >= 1.8 license-file: LICENSE@@ -91,6 +91,7 @@ .travis.yml .gitignore .vim.custom+ cabal.project examples/LICENSE examples/lens-examples.cabal examples/*.hs@@ -109,7 +110,7 @@ source-repository head type: git- location: git://github.com/ekmett/lens.git+ location: https://github.com/ekmett/lens.git -- Enable benchmarking against Neil Mitchell's uniplate library for comparative performance analysis. Defaults to being turned off to avoid -- the extra dependency.@@ -315,7 +316,7 @@ -- hack around the buggy unused matches check for class associated types in ghc 8 rc1 if impl(ghc >= 8)- ghc-options: -fno-warn-missing-pat-syn-sigs -fno-warn-unused-matches+ ghc-options: -Wno-missing-pattern-synonym-signatures -Wno-unused-matches if flag(j) && impl(ghc>=7.8) ghc-options: -j4@@ -452,8 +453,7 @@ hs-source-dirs: benchmarks build-depends: base,- comonad,- comonads-fd,+ comonad >= 4, criterion, deepseq, lens,@@ -497,25 +497,8 @@ hs-source-dirs: benchmarks build-depends: base,- comonad,- comonads-fd,- criterion,- deepseq,- generic-deriving,- lens,- transformers---- Benchmarking zipper usage-benchmark zipper- type: exitcode-stdio-1.0- main-is: zipper.hs- ghc-options: -w -O2 -threaded -fdicts-cheap -funbox-strict-fields- hs-source-dirs: benchmarks- build-depends:- base,- comonad,- comonads-fd,- criterion,+ comonad >= 4,+ criterion >= 1, deepseq, generic-deriving, lens,
src/Control/Lens/Cons.hs view
@@ -52,8 +52,6 @@ import Control.Lens.Type import qualified Data.ByteString as StrictB import qualified Data.ByteString.Lazy as LazyB-import Data.List.NonEmpty (NonEmpty(..))-import qualified Data.List.NonEmpty as NonEmpty import Data.Monoid import qualified Data.Sequence as Seq import Data.Sequence hiding ((<|), (|>), (:<), (:>))@@ -121,12 +119,6 @@ [] -> Left [] {-# INLINE _Cons #-} -instance a~b => Cons (NonEmpty a) (NonEmpty b) a b where- _Cons = prism' (uncurry NonEmpty.cons) $ \ xyz -> case xyz of- (x:|y:z) -> Just (x,y:|z)- _ -> Nothing- {-# INLINE _Cons #-}- instance Cons (Seq a) (Seq b) a b where _Cons = prism (uncurry (Seq.<|)) $ \aas -> case viewl aas of a Seq.:< as -> Right (a, as)@@ -351,12 +343,6 @@ then Left [] else Right (Prelude.init aas, Prelude.last aas) {-# INLINE _Snoc #-}--instance a~b => Snoc (NonEmpty a) (NonEmpty b) a b where- _Snoc = prism' (\(x:|y,z) -> x:|y++[z]) $ \xyz -> case xyz of- x:|y- | Prelude.null y -> Nothing- | otherwise -> Just (x :| Prelude.init y, Prelude.last y) instance Snoc (Seq a) (Seq b) a b where _Snoc = prism (uncurry (Seq.|>)) $ \aas -> case viewr aas of
src/Control/Lens/Getter.hs view
@@ -48,6 +48,16 @@ -- Since it is only a function, every 'Getter' obviously only retrieves a -- single value for a given input. --+-- A common question is whether you can combine multiple 'Getter's to+-- retrieve multiple values. Recall that all 'Getter's are 'Fold's and that+-- we have a @'Monoid' m => 'Applicative' ('Const' m)@ instance to play+-- with. Knowing this, we can use @'Data.Monoid.<>'@ to glue 'Fold's+-- together:+--+-- >>> import Data.Monoid+-- >>> (1, 2, 3, 4, 5) ^.. (_2 <> _3 <> _5)+-- [2,3,5]+-- ------------------------------------------------------------------------------- module Control.Lens.Getter (
src/Control/Lens/Internal/Zoom.hs view
@@ -1,10 +1,12 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE Safe #-} {-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE KindSignatures #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE UndecidableInstances #-} +#if __GLASGOW_HASKELL__ < 708+{-# LANGUAGE Trustworthy #-}+#endif+ {-# OPTIONS_GHC -fno-warn-orphans -fno-warn-warnings-deprecations #-} ----------------------------------------------------------------------------- -- |@@ -19,15 +21,14 @@ module Control.Lens.Internal.Zoom ( -- * Zoom- Zoomed- , Focusing(..)+ Focusing(..) , FocusingWith(..) , FocusingPlus(..) , FocusingOn(..) , FocusingMay(..), May(..) , FocusingErr(..), Err(..)+ , FocusingFree(..), Freed(..) -- * Magnify- , Magnified , Effect(..) , EffectRWS(..) ) where@@ -36,42 +37,13 @@ import Control.Category import Control.Comonad import Control.Monad.Reader as Reader-import Control.Monad.Trans.State.Lazy as Lazy-import Control.Monad.Trans.State.Strict as Strict-import Control.Monad.Trans.Writer.Lazy as Lazy-import Control.Monad.Trans.Writer.Strict as Strict-import Control.Monad.Trans.RWS.Lazy as Lazy-import Control.Monad.Trans.RWS.Strict as Strict-import Control.Monad.Trans.Error-import Control.Monad.Trans.Except-import Control.Monad.Trans.List-import Control.Monad.Trans.Identity-import Control.Monad.Trans.Maybe+import Control.Monad.Trans.Free import Data.Functor.Bind import Data.Functor.Contravariant import Data.Semigroup import Prelude hiding ((.),id) --------------------------------------------------------------------------------- Zoomed----------------------------------------------------------------------------------- | This type family is used by 'Control.Lens.Zoom.Zoom' to describe the common effect type.-type family Zoomed (m :: * -> *) :: * -> * -> *-type instance Zoomed (Strict.StateT s z) = Focusing z-type instance Zoomed (Lazy.StateT s z) = Focusing z-type instance Zoomed (ReaderT e m) = Zoomed m-type instance Zoomed (IdentityT m) = Zoomed m-type instance Zoomed (Strict.RWST r w s z) = FocusingWith w z-type instance Zoomed (Lazy.RWST r w s z) = FocusingWith w z-type instance Zoomed (Strict.WriterT w m) = FocusingPlus w (Zoomed m)-type instance Zoomed (Lazy.WriterT w m) = FocusingPlus w (Zoomed m)-type instance Zoomed (ListT m) = FocusingOn [] (Zoomed m)-type instance Zoomed (MaybeT m) = FocusingMay (Zoomed m)-type instance Zoomed (ErrorT e m) = FocusingErr e (Zoomed m)-type instance Zoomed (ExceptT e m) = FocusingErr e (Zoomed m)-------------------------------------------------------------------------------- -- Focusing ------------------------------------------------------------------------------ @@ -256,16 +228,48 @@ {-# INLINE (<*>) #-} --------------------------------------------------------------------------------- Magnified+-- Freed ------------------------------------------------------------------------------ --- | This type family is used by 'Control.Lens.Zoom.Magnify' to describe the common effect type.-type family Magnified (m :: * -> *) :: * -> * -> *-type instance Magnified (ReaderT b m) = Effect m-type instance Magnified ((->)b) = Const-type instance Magnified (Strict.RWST a w s m) = EffectRWS w s m-type instance Magnified (Lazy.RWST a w s m) = EffectRWS w s m-type instance Magnified (IdentityT m) = Magnified m+-- | Make a 'Monoid' out of 'FreeF' for result collection.++newtype Freed f m a = Freed { getFreed :: FreeF f a (FreeT f m a) }++instance (Applicative f, Semigroup a, Monad m) => Semigroup (Freed f m a) where+ Freed (Pure a) <> Freed (Pure b) = Freed $ Pure $ a <> b+ Freed (Pure a) <> Freed (Free g) = Freed $ Free $ liftA2 (liftM2 (<>)) (pure $ return a) g+ Freed (Free f) <> Freed (Pure b) = Freed $ Free $ liftA2 (liftM2 (<>)) f (pure $ return b)+ Freed (Free f) <> Freed (Free g) = Freed $ Free $ liftA2 (liftM2 (<>)) f g++instance (Applicative f, Monoid a, Monad m) => Monoid (Freed f m a) where+ mempty = Freed $ Pure mempty++ Freed (Pure a) `mappend` Freed (Pure b) = Freed $ Pure $ a `mappend` b+ Freed (Pure a) `mappend` Freed (Free g) = Freed $ Free $ liftA2 (liftM2 mappend) (pure $ return a) g+ Freed (Free f) `mappend` Freed (Pure b) = Freed $ Free $ liftA2 (liftM2 mappend) f (pure $ return b)+ Freed (Free f) `mappend` Freed (Free g) = Freed $ Free $ liftA2 (liftM2 mappend) f g++------------------------------------------------------------------------------+-- FocusingFree+------------------------------------------------------------------------------++-- | Used by 'Control.Lens.Zoom.Zoom' to 'Control.Lens.Zoom.zoom' into+-- 'Control.Monad.Trans.FreeT'+newtype FocusingFree f m k s a = FocusingFree { unfocusingFree :: k (Freed f m s) a }++instance Functor (k (Freed f m s)) => Functor (FocusingFree f m k s) where+ fmap f (FocusingFree as) = FocusingFree (fmap f as)+ {-# INLINE fmap #-}++instance Apply (k (Freed f m s)) => Apply (FocusingFree f m k s) where+ FocusingFree kf <.> FocusingFree ka = FocusingFree (kf <.> ka)+ {-# INLINE (<.>) #-}++instance Applicative (k (Freed f m s)) => Applicative (FocusingFree f m k s) where+ pure = FocusingFree . pure+ {-# INLINE pure #-}+ FocusingFree kf <*> FocusingFree ka = FocusingFree (kf <*> ka)+ {-# INLINE (<*>) #-} ----------------------------------------------------------------------------- --- Effect
src/Control/Lens/Lens.hs view
@@ -545,7 +545,7 @@ -- | Modify the target of a 'Lens' and return the result. ----- When you do not need the result of the addition, ('Control.Lens.Setter.%~') is more flexible.+-- When you do not need the result of the operation, ('Control.Lens.Setter.%~') is more flexible. -- -- @ -- ('<%~') :: 'Lens' s t a b -> (a -> b) -> s -> (b, t)
src/Control/Lens/TH.hs view
@@ -797,8 +797,11 @@ -- Recurse into instance declarations because they main contain -- associated data family instances.- InstanceD ctx inst body -> InstanceD ctx inst <$> traverse go body-+#if MIN_VERSION_template_haskell(2,11,0)+ InstanceD moverlap ctx inst body -> InstanceD moverlap ctx inst <$> traverse go body+#else+ InstanceD ctx inst body -> InstanceD ctx inst <$> traverse go body+#endif _ -> pure dec stripFields :: Dec -> Dec
src/Control/Lens/Zoom.hs view
@@ -29,8 +29,10 @@ -- ------------------------------------------------------------------------------- module Control.Lens.Zoom- ( Magnify(..)+ ( Magnified+ , Magnify(..) , Zoom(..)+ , Zoomed ) where import Control.Lens.Getter@@ -50,6 +52,7 @@ import Control.Monad.Trans.List import Control.Monad.Trans.Identity import Control.Monad.Trans.Maybe+import Control.Monad.Trans.Free import Data.Monoid import Data.Profunctor.Unsafe import Prelude@@ -71,10 +74,46 @@ -- Chosen so that they have lower fixity than ('%='), and to match ('<~'). infixr 2 `zoom`, `magnify` +------------------------------------------------------------------------------+-- Zoomed+------------------------------------------------------------------------------++-- | This type family is used by 'Control.Lens.Zoom.Zoom' to describe the common effect type.+type family Zoomed (m :: * -> *) :: * -> * -> *+type instance Zoomed (Strict.StateT s z) = Focusing z+type instance Zoomed (Lazy.StateT s z) = Focusing z+type instance Zoomed (ReaderT e m) = Zoomed m+type instance Zoomed (IdentityT m) = Zoomed m+type instance Zoomed (Strict.RWST r w s z) = FocusingWith w z+type instance Zoomed (Lazy.RWST r w s z) = FocusingWith w z+type instance Zoomed (Strict.WriterT w m) = FocusingPlus w (Zoomed m)+type instance Zoomed (Lazy.WriterT w m) = FocusingPlus w (Zoomed m)+type instance Zoomed (ListT m) = FocusingOn [] (Zoomed m)+type instance Zoomed (MaybeT m) = FocusingMay (Zoomed m)+type instance Zoomed (ErrorT e m) = FocusingErr e (Zoomed m)+type instance Zoomed (ExceptT e m) = FocusingErr e (Zoomed m)+type instance Zoomed (FreeT f m) = FocusingFree f m (Zoomed m)++------------------------------------------------------------------------------+-- Magnified+------------------------------------------------------------------------------++-- | This type family is used by 'Control.Lens.Zoom.Magnify' to describe the common effect type.+type family Magnified (m :: * -> *) :: * -> * -> *+type instance Magnified (ReaderT b m) = Effect m+type instance Magnified ((->)b) = Const+type instance Magnified (Strict.RWST a w s m) = EffectRWS w s m+type instance Magnified (Lazy.RWST a w s m) = EffectRWS w s m+type instance Magnified (IdentityT m) = Magnified m++------------------------------------------------------------------------------+-- Zoom+------------------------------------------------------------------------------+ -- | This class allows us to use 'zoom' in, changing the 'State' supplied by -- many different 'Control.Monad.Monad' transformers, potentially quite -- deep in a 'Monad' transformer stack.-class (Zoomed m ~ Zoomed n, MonadState s m, MonadState t n) => Zoom m n s t | m -> s, n -> t, m t -> n, n s -> m where+class (MonadState s m, MonadState t n) => Zoom m n s t | m -> s, n -> t, m t -> n, n s -> m where -- | Run a monadic action in a larger 'State' than it was defined in, -- using a 'Lens'' or 'Control.Lens.Traversal.Traversal''. --@@ -160,6 +199,13 @@ instance Zoom m n s t => Zoom (ExceptT e m) (ExceptT e n) s t where zoom l = ExceptT . liftM getErr . zoom (\afb -> unfocusingErr #. l (FocusingErr #. afb)) . liftM Err . runExceptT {-# INLINE zoom #-}++instance (Functor f, Zoom m n s t) => Zoom (FreeT f m) (FreeT f n) s t where+ zoom l = FreeT . liftM (fmap $ zoom l) . liftM getFreed . zoom (\afb -> unfocusingFree #. l (FocusingFree #. afb)) . liftM Freed . runFreeT++------------------------------------------------------------------------------+-- Magnify+------------------------------------------------------------------------------ -- TODO: instance Zoom m m a a => Zoom (ContT r m) (ContT r m) a a where
src/Language/Haskell/TH/Lens.hs view
@@ -125,6 +125,13 @@ , _RecGadtC #endif #if MIN_VERSION_template_haskell(2,11,0)+ -- ** Overlap Prisms+ ,_Overlappable+ ,_Overlapping+ ,_Overlaps+ ,_Incoherent+#endif+#if MIN_VERSION_template_haskell(2,11,0) -- ** SourceUnpackedness Prisms , _NoSourceUnpackedness , _SourceNoUnpack@@ -848,13 +855,52 @@ remitter (ClassD x y z w u) = Just (x, y, z, w, u) remitter _ = Nothing +#if MIN_VERSION_template_haskell(2,11,0)+_InstanceD :: Prism' Dec (Maybe Overlap, Cxt, Type, [Dec])+#else _InstanceD :: Prism' Dec (Cxt, Type, [Dec])+#endif _InstanceD = prism' reviewer remitter where+#if MIN_VERSION_template_haskell(2,11,0)+ reviewer (x, y, z, w) = InstanceD x y z w+ remitter (InstanceD x y z w) = Just (x, y, z, w)+#else reviewer (x, y, z) = InstanceD x y z- remitter (InstanceD x y z) = Just (x, y, z)+ remitter (InstanceD x y z) = Just ( x, y, z)+#endif remitter _ = Nothing++#if MIN_VERSION_template_haskell(2,11,0)+_Overlappable :: Prism' Overlap ()+_Overlappable = prism' reviewer remitter+ where+ reviewer () = Overlappable+ remitter Overlappable = Just ()+ remitter _ = Nothing++_Overlapping :: Prism' Overlap ()+_Overlapping = prism' reviewer remitter+ where+ reviewer () = Overlapping+ remitter Overlapping = Just ()+ remitter _ = Nothing++_Overlaps :: Prism' Overlap ()+_Overlaps = prism' reviewer remitter+ where+ reviewer () = Overlaps+ remitter Overlaps = Just ()+ remitter _ = Nothing++_Incoherent :: Prism' Overlap ()+_Incoherent = prism' reviewer remitter+ where+ reviewer () = Incoherent+ remitter Incoherent = Just ()+ remitter _ = Nothing+#endif _SigD :: Prism' Dec (Name, Type) _SigD