@@ -70,7 +70,8 @@ import Data.Patch.Class
7070import Data.Patch.MapWithPatchingMove (PatchMapWithPatchingMove (.. ), To )
7171import qualified Data.Patch.MapWithPatchingMove as PM -- already a transparent synonym
7272
73- import Control.Lens
73+ import Control.Lens hiding (FunctorWithIndex , FoldableWithIndex , TraversableWithIndex )
74+ import qualified Control.Lens as L
7475import Data.List
7576import Data.Map (Map )
7677import qualified Data.Map as Map
@@ -79,6 +80,9 @@ import Data.Proxy
7980import Data.Semigroup (Semigroup (.. ))
8081#endif
8182import Data.Traversable (foldMapDefault )
83+ import Data.Functor.WithIndex
84+ import Data.Foldable.WithIndex
85+ import Data.Traversable.WithIndex
8286
8387-- | Patch a Map with additions, deletions, and moves. Invariant: If key @k1@
8488-- is coming from @From_Move k2@, then key @k2@ should be going to @Just k1@,
@@ -133,11 +137,13 @@ instance Traversable (PatchMapWithMove k) where
133137instance FunctorWithIndex k (PatchMapWithMove k )
134138instance FoldableWithIndex k (PatchMapWithMove k )
135139instance TraversableWithIndex k (PatchMapWithMove k ) where
136- itraverse = itraversed . Indexed
137- itraversed =
138- _PatchMapWithMove .>
139- itraversed <.
140- traverse
140+ itraverse = (_PatchMapWithMove .> itraversed <. traverse ) . Indexed
141+
142+ #if !MIN_VERSION_lens(5,0,0)
143+ instance L. FunctorWithIndex k (PatchMapWithMove k ) where imap = Data.Functor.WithIndex. imap
144+ instance L. FoldableWithIndex k (PatchMapWithMove k ) where ifoldMap = Data.Foldable.WithIndex. ifoldMap
145+ instance L. TraversableWithIndex k (PatchMapWithMove k ) where itraverse = Data.Traversable.WithIndex. itraverse
146+ #endif
141147
142148-- | Create a 'PatchMapWithMove', validating it
143149patchMapWithMove :: Ord k => Map k (NodeInfo k v ) -> Maybe (PatchMapWithMove k v )
0 commit comments