Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-optics-extra for 
openSUSE:Factory checked in at 2021-03-10 08:55:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-optics-extra (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-optics-extra.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-optics-extra"

Wed Mar 10 08:55:16 2021 rev:3 rq:877659 version:0.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-optics-extra/ghc-optics-extra.changes        
2020-12-22 11:43:46.293732610 +0100
+++ 
/work/SRC/openSUSE:Factory/.ghc-optics-extra.new.2378/ghc-optics-extra.changes  
    2021-03-10 08:57:22.178896064 +0100
@@ -1,0 +2,13 @@
+Tue Feb 23 20:48:53 UTC 2021 - psim...@suse.com
+
+- Update optics-extra to version 0.4.
+  # optics-extra-0.4 (2021-02-22)
+  * Add support for GHC-9.0
+
+-------------------------------------------------------------------
+Sat Feb 20 00:07:39 UTC 2021 - psim...@suse.com
+
+- Update optics-extra to version 0.3 revision 1.
+  Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------

Old:
----
  optics-extra-0.3.tar.gz

New:
----
  optics-extra-0.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-optics-extra.spec ++++++
--- /var/tmp/diff_new_pack.daIivM/_old  2021-03-10 08:57:22.630896532 +0100
+++ /var/tmp/diff_new_pack.daIivM/_new  2021-03-10 08:57:22.630896532 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-optics-extra
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %global pkg_name optics-extra
 Name:           ghc-%{pkg_name}
-Version:        0.3
+Version:        0.4
 Release:        0
 Summary:        Extra utilities and instances for optics-core
 License:        BSD-3-Clause
@@ -30,6 +30,7 @@
 BuildRequires:  ghc-containers-devel
 BuildRequires:  ghc-hashable-devel
 BuildRequires:  ghc-indexed-profunctors-devel
+BuildRequires:  ghc-indexed-traversable-instances-devel
 BuildRequires:  ghc-mtl-devel
 BuildRequires:  ghc-optics-core-devel
 BuildRequires:  ghc-rpm-macros

++++++ optics-extra-0.3.tar.gz -> optics-extra-0.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/CHANGELOG.md 
new/optics-extra-0.4/CHANGELOG.md
--- old/optics-extra-0.3/CHANGELOG.md   2001-09-09 03:46:40.000000000 +0200
+++ new/optics-extra-0.4/CHANGELOG.md   2001-09-09 03:46:40.000000000 +0200
@@ -1,3 +1,6 @@
+# optics-extra-0.4 (2021-02-22)
+* Add support for GHC-9.0
+
 # optics-extra-0.3 (2020-04-15)
 * `optics-core-0.3` compatible release
 * GHC-8.10 support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/optics-extra.cabal 
new/optics-extra-0.4/optics-extra.cabal
--- old/optics-extra-0.3/optics-extra.cabal     2001-09-09 03:46:40.000000000 
+0200
+++ new/optics-extra-0.4/optics-extra.cabal     2001-09-09 03:46:40.000000000 
+0200
@@ -1,12 +1,12 @@
 name:          optics-extra
-version:       0.3
+version:       0.4
 license:       BSD3
 license-file:  LICENSE
 build-type:    Simple
 cabal-version: 1.24
 maintainer:    opt...@well-typed.com
 author:        Andrzej Rybczak
-tested-with:   ghc ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.3 || 
==8.10.1, GHCJS ==8.4
+tested-with:   ghc ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.3, GHCJS 
==8.4
 synopsis:      Extra utilities and instances for optics-core
 category:      Data, Optics, Lenses
 description:
@@ -30,18 +30,19 @@
   hs-source-dirs:   src
   ghc-options:      -Wall
 
-  build-depends: base                   >= 4.9       && <5
-               , array                  >= 0.5.1.1   && <0.6
-               , bytestring             >= 0.10.8    && <0.11
-               , containers             >= 0.5.7.1   && <0.7
+  build-depends: base                   >= 4.10      && <5
+               , array                  >= 0.5.2.0   && <0.6
+               , bytestring             >= 0.10.8    && <0.12
+               , containers             >= 0.5.10.2  && <0.7
                , hashable               >= 1.1.1     && <1.4
                , indexed-profunctors    >= 0.1       && <0.2
                , mtl                    >= 2.2.2     && <2.3
-               , optics-core            >= 0.3       && <0.3.1
+               , optics-core            >= 0.4       && <0.4.1
                , text                   >= 1.2       && <1.3
                , transformers           >= 0.5       && <0.6
                , unordered-containers   >= 0.2.6     && <0.3
                , vector                 >= 0.11      && <0.13
+               , indexed-traversable-instances >=0.1 && <0.2
 
   exposed-modules: Optics.Extra
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/ByteString/Lazy/Optics.hs 
new/optics-extra-0.4/src/Data/ByteString/Lazy/Optics.hs
--- old/optics-extra-0.3/src/Data/ByteString/Lazy/Optics.hs     2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/ByteString/Lazy/Optics.hs     2001-09-09 
03:46:40.000000000 +0200
@@ -8,8 +8,9 @@
   , pattern Chars
   ) where
 
-import Data.ByteString.Lazy       as Words
-import Data.ByteString.Lazy.Char8 as Char8
+import Data.ByteString.Lazy (ByteString)
+import qualified Data.ByteString.Lazy       as Words
+import qualified Data.ByteString.Lazy.Char8 as Char8
 import Data.Int (Int64)
 import Data.Word (Word8)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/ByteString/Optics.hs 
new/optics-extra-0.4/src/Data/ByteString/Optics.hs
--- old/optics-extra-0.3/src/Data/ByteString/Optics.hs  2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/ByteString/Optics.hs  2001-09-09 
03:46:40.000000000 +0200
@@ -8,10 +8,10 @@
   , pattern Chars
   ) where
 
-import Data.ByteString as Strict
-import Data.ByteString.Lazy as Lazy
-import Data.Int
-import Data.Word
+import qualified Data.ByteString as Strict
+import qualified Data.ByteString.Lazy as Lazy
+import Data.Int (Int64)
+import Data.Word (Word8)
 import qualified Data.ByteString.Lazy.Optics as Lazy
 import qualified Data.ByteString.Strict.Optics as Strict
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/optics-extra-0.3/src/Data/ByteString/Strict/Optics.hs 
new/optics-extra-0.4/src/Data/ByteString/Strict/Optics.hs
--- old/optics-extra-0.3/src/Data/ByteString/Strict/Optics.hs   2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/ByteString/Strict/Optics.hs   2001-09-09 
03:46:40.000000000 +0200
@@ -7,10 +7,11 @@
   , pattern Chars
   ) where
 
-import Data.ByteString       as Words
-import Data.ByteString.Char8 as Char8
-import Data.Int
-import Data.Word
+import Data.ByteString (ByteString)
+import qualified Data.ByteString       as Words
+import qualified Data.ByteString.Char8 as Char8
+import Data.Int (Int64)
+import Data.Word (Word8)
 
 import Optics.Core
 import Optics.Extra.Internal.ByteString
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/HashMap/Optics.hs 
new/optics-extra-0.4/src/Data/HashMap/Optics.hs
--- old/optics-extra-0.3/src/Data/HashMap/Optics.hs     2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/HashMap/Optics.hs     2001-09-09 
03:46:40.000000000 +0200
@@ -47,8 +47,9 @@
   , at'
   ) where
 
-import Data.Hashable
-import Data.HashMap.Lazy as HashMap
+import Data.Hashable (Hashable)
+import Data.HashMap.Lazy (HashMap)
+import qualified Data.HashMap.Lazy as HashMap
 
 import Optics.Core
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/HashSet/Optics.hs 
new/optics-extra-0.4/src/Data/HashSet/Optics.hs
--- old/optics-extra-0.3/src/Data/HashSet/Optics.hs     2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/HashSet/Optics.hs     2001-09-09 
03:46:40.000000000 +0200
@@ -10,8 +10,9 @@
   , setOf
   ) where
 
-import Data.Hashable
-import Data.HashSet as HashSet
+import Data.Hashable (Hashable)
+import Data.HashSet (HashSet)
+import qualified Data.HashSet as HashSet
 
 import Optics.Fold
 import Optics.Optic
@@ -24,7 +25,7 @@
 -- but you can manipulate it by reading using 'Optics.Fold.folded' and
 -- reindexing it via 'setmapped'.
 --
--- >>> over setmapped (+1) (fromList [1,2,3,4])
+-- >>> over setmapped (+1) (HashSet.fromList [1,2,3,4])
 -- fromList [2,3,4,5]
 setmapped :: (Eq b, Hashable b) => Setter (HashSet a) (HashSet b) a b
 setmapped = sets HashSet.map
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/Text/Lazy/Optics.hs 
new/optics-extra-0.4/src/Data/Text/Lazy/Optics.hs
--- old/optics-extra-0.3/src/Data/Text/Lazy/Optics.hs   2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/Text/Lazy/Optics.hs   2001-09-09 
03:46:40.000000000 +0200
@@ -21,10 +21,11 @@
   , pattern Text
   ) where
 
-import Data.ByteString.Lazy as ByteString
-import Data.Text.Lazy as Text
-import Data.Text.Lazy.Builder
-import Data.Text.Lazy.Encoding
+import Data.ByteString.Lazy (ByteString)
+import Data.Text.Lazy (Text)
+import qualified Data.Text.Lazy as Text
+import qualified Data.Text.Lazy.Builder as B
+import qualified Data.Text.Lazy.Encoding as TE
 
 import Data.Profunctor.Indexed
 
@@ -34,6 +35,9 @@
 import Optics.Internal.IxTraversal
 import Optics.Internal.Optic
 
+-- $setup
+-- >>> import Data.ByteString.Lazy as LBS
+
 -- | This isomorphism can be used to 'pack' (or 'unpack') lazy 'Text.Text'.
 --
 -- >>> "hello" ^. packed -- :: Text
@@ -87,8 +91,8 @@
 -- 'fromLazyText' x ??? x 'Optics.Operators.^.' 'builder'
 -- 'toLazyText' x ??? x 'Optics.Operators.^.' 're' 'builder'
 -- @
-builder :: Iso' Text Builder
-builder = iso fromLazyText toLazyText
+builder :: Iso' Text B.Builder
+builder = iso B.fromLazyText B.toLazyText
 {-# INLINE builder #-}
 
 -- | Traverse the individual characters in a 'Text.Text'.
@@ -117,10 +121,10 @@
 -- Note: This function does not decode lazily, as it must consume the entire
 -- input before deciding whether or not it fails.
 --
--- >>> ByteString.unpack (utf8 # Text.pack "???")
+-- >>> LBS.unpack (utf8 # Text.pack "???")
 -- [226,152,131]
 utf8 :: Prism' ByteString Text
-utf8 = prism' encodeUtf8 (preview _Right . decodeUtf8')
+utf8 = prism' TE.encodeUtf8 (preview _Right . TE.decodeUtf8')
 {-# INLINE utf8 #-}
 
 pattern Text :: String -> Text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/Text/Optics.hs 
new/optics-extra-0.4/src/Data/Text/Optics.hs
--- old/optics-extra-0.3/src/Data/Text/Optics.hs        2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/Text/Optics.hs        2001-09-09 
03:46:40.000000000 +0200
@@ -19,9 +19,9 @@
   , pattern Text
   ) where
 
-import Data.Text as Strict
-import Data.Text.Lazy as Lazy
-import Data.Text.Lazy.Builder
+import qualified Data.Text as Strict
+import qualified Data.Text.Lazy as Lazy
+import qualified Data.Text.Lazy.Builder as B
 
 import Optics.Core
 import qualified Data.Text.Lazy.Optics as Lazy
@@ -44,7 +44,7 @@
   -- @
   -- 'fromText' x ??? x 'Optics.Operators.^.' 'builder'
   -- @
-  builder :: Iso' t Builder
+  builder :: Iso' t B.Builder
 
   -- | Traverse the individual characters in strict or lazy 'Text'.
   --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/Text/Strict/Optics.hs 
new/optics-extra-0.4/src/Data/Text/Strict/Optics.hs
--- old/optics-extra-0.3/src/Data/Text/Strict/Optics.hs 2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/Text/Strict/Optics.hs 2001-09-09 
03:46:40.000000000 +0200
@@ -22,10 +22,11 @@
   ) where
 
 import Data.ByteString (ByteString)
-import Data.Text as Strict
-import Data.Text.Encoding
+import Data.Text (Text)
+import qualified Data.Text as Strict
+import qualified Data.Text.Encoding as TE
 import Data.Text.Lazy (toStrict)
-import Data.Text.Lazy.Builder
+import qualified Data.Text.Lazy.Builder as B
 
 import Data.Profunctor.Indexed
 
@@ -48,7 +49,7 @@
 -- 'packed' ??? 'iso' 'pack' 'unpack'
 -- @
 packed :: Iso' String Text
-packed = iso pack unpack
+packed = iso Strict.pack Strict.unpack
 {-# INLINE packed #-}
 
 -- | This isomorphism can be used to 'unpack' (or 'pack') strict 'Strict.Text'.
@@ -87,8 +88,8 @@
 -- 'fromText' x ??? x 'Optics.Operators.^.' 'builder'
 -- 'toStrict' ('toLazyText' x) ??? x 'Optics.Operators.^.' 're' 'builder'
 -- @
-builder :: Iso' Text Builder
-builder = iso fromText (toStrict . toLazyText)
+builder :: Iso' Text B.Builder
+builder = iso B.fromText (toStrict . B.toLazyText)
 {-# INLINE builder #-}
 
 -- | Traverse the individual characters in strict 'Strict.Text'.
@@ -114,7 +115,7 @@
 -- >>> utf8 # Strict.pack "???"
 -- "\226\152\131"
 utf8 :: Prism' ByteString Text
-utf8 = prism' encodeUtf8 (preview _Right . decodeUtf8')
+utf8 = prism' TE.encodeUtf8 (preview _Right . TE.decodeUtf8')
 {-# INLINE utf8 #-}
 
 pattern Text :: String -> Text
@@ -126,7 +127,7 @@
 
 -- | Internal implementation of 'unpacked'.
 unpacked__ :: Profunctor p => Optic__ p i i Text Text String String
-unpacked__ = dimap unpack pack
+unpacked__ = dimap Strict.unpack Strict.pack
 {-# INLINE unpacked__ #-}
 
 -- | Internal implementation of 'text'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/Vector/Generic/Optics.hs 
new/optics-extra-0.4/src/Data/Vector/Generic/Optics.hs
--- old/optics-extra-0.3/src/Data/Vector/Generic/Optics.hs      2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/Vector/Generic/Optics.hs      2001-09-09 
03:46:40.000000000 +0200
@@ -18,9 +18,9 @@
   ) where
 
 import Data.Vector.Fusion.Bundle (Bundle)
-import Data.Vector.Generic as V hiding (zip, filter, indexed)
+import Data.Vector.Generic (Vector)
+import qualified Data.Vector.Generic as V
 import Data.Vector.Generic.New (New)
-import Prelude hiding ((++), length, null, head, tail, init, last, map, 
reverse)
 
 import Data.Profunctor.Indexed
 
@@ -30,6 +30,9 @@
 import Optics.Internal.IxFold
 import Optics.Internal.Optic
 
+-- $setup
+-- >>> import qualified Data.Vector as Vector
+
 -- | @sliced i n@ provides a 'Lens' that edits the @n@ elements starting at
 -- index @i@ from a 'Lens'.
 --
@@ -50,7 +53,7 @@
   -> Int -- ^ @n@ length
   -> Lens' (v a) (v a)
 sliced i n = lensVL $ \f v ->
-  (\v0 -> v // zip [i..i+n-1] (V.toList v0)) <$> f (slice i n v)
+  (\v0 -> v V.// zip [i..i+n-1] (V.toList v0)) <$> f (V.slice i n v)
 {-# INLINE sliced #-}
 
 -- | Similar to 'toListOf', but returning a 'Vector'.
@@ -62,7 +65,7 @@
   => Optic' k is s a
   -> s
   -> v a
-toVectorOf l s = fromList (toListOf l s)
+toVectorOf l s = V.fromList (toListOf l s)
 {-# INLINE toVectorOf #-}
 
 -- | Convert a list to a 'Vector' (or back.)
@@ -75,32 +78,32 @@
 vector
   :: (Vector v a, Vector v b)
   => Iso [a] [b] (v a) (v b)
-vector = iso fromList V.toList
+vector = iso V.fromList V.toList
 {-# INLINE vector #-}
 
 -- | Convert a 'Vector' to a finite 'Bundle' (or back.)
 asStream
   :: (Vector v a, Vector v b)
   => Iso (v a) (v b) (Bundle v a) (Bundle v b)
-asStream = iso stream unstream
+asStream = iso V.stream V.unstream
 {-# INLINE asStream #-}
 
 -- | Convert a 'Vector' to a finite 'Bundle' from right to left (or back.)
 asStreamR
   :: (Vector v a, Vector v b)
   => Iso (v a) (v b) (Bundle v a) (Bundle v b)
-asStreamR = iso streamR unstreamR
+asStreamR = iso V.streamR V.unstreamR
 {-# INLINE asStreamR #-}
 
 -- | Convert a 'Vector' back and forth to an initializer that when run produces
 -- a copy of the 'Vector'.
 cloned :: Vector v a => Iso' (v a) (New v a)
-cloned = iso clone new
+cloned = iso V.clone V.new
 {-# INLINE cloned #-}
 
 -- | Convert a 'Vector' to a version that doesn't retain any extra memory.
 forced :: (Vector v a, Vector v b) => Iso (v a) (v b) (v a) (v b)
-forced = iso force force
+forced = iso V.force V.force
 {-# INLINE forced #-}
 
 -- | This 'Traversal' will ignore any duplicates in the supplied list of
@@ -110,7 +113,7 @@
 -- [4,8,6,12,20,22]
 ordinals :: forall v a. Vector v a => [Int] -> IxTraversal' Int (v a) a
 ordinals is = itraversalVL $ \f v ->
-  (v //) <$> traverse (\i -> (,) i <$> f i (v ! i)) (ordinalNub (length v) is)
+  (v V.//) <$> traverse (\i -> (,) i <$> f i (v V.! i)) (ordinalNub (V.length 
v) is)
 {-# INLINE ordinals #-}
 
 -- | Like 'ix' but polymorphic in the vector type.
@@ -132,7 +135,7 @@
 converted
   :: (Vector v a, Vector w a, Vector v b, Vector w b)
   => Iso (v a) (v b) (w a) (w b)
-converted = iso convert convert
+converted = iso V.convert V.convert
 {-# INLINE converted #-}
 
 ----------------------------------------
@@ -189,6 +192,3 @@
     :: (V.Vector v a, V.Vector v b) => IxFunArrow (Int -> j) (v a) (v b)
 
 #-}
-
--- $setup
--- >>> import qualified Data.Vector as Vector
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Data/Vector/Optics.hs 
new/optics-extra-0.4/src/Data/Vector/Optics.hs
--- old/optics-extra-0.3/src/Data/Vector/Optics.hs      2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Data/Vector/Optics.hs      2001-09-09 
03:46:40.000000000 +0200
@@ -10,12 +10,13 @@
   , ordinals
   ) where
 
-import Data.Vector as Vector hiding (zip, filter, indexed)
-import Prelude hiding ((++), length, null, head, tail, init, last, map, 
reverse)
-
+import Data.Vector (Vector)
 import Optics.Core
 import qualified Data.Vector.Generic.Optics as G
 
+-- $setup
+-- >>> import Data.Vector as Vector
+
 -- | @sliced i n@ provides a 'Lens' that edits the @n@ elements starting at
 -- index @i@ from a 'Lens'.
 --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Optics/At.hs 
new/optics-extra-0.4/src/Optics/At.hs
--- old/optics-extra-0.3/src/Optics/At.hs       2001-09-09 03:46:40.000000000 
+0200
+++ new/optics-extra-0.4/src/Optics/At.hs       2001-09-09 03:46:40.000000000 
+0200
@@ -43,19 +43,21 @@
   , Contains(..)
   ) where
 
-import Data.ByteString as StrictB
-import Data.ByteString.Lazy as LazyB
-import Data.HashMap.Lazy as HashMap
-import Data.HashSet as HashSet
-import Data.Hashable
-import Data.Int
-import Data.Text as StrictT
-import Data.Text.Lazy as LazyT
-import Data.Vector as Vector hiding (indexed)
-import Data.Vector.Primitive as Prim
-import Data.Vector.Storable as Storable
-import Data.Vector.Unboxed as Unboxed hiding (indexed)
-import Data.Word
+import qualified Data.ByteString as StrictB
+import qualified Data.ByteString.Lazy as LazyB
+import Data.HashMap.Lazy (HashMap)
+import qualified Data.HashMap.Lazy as HashMap
+import Data.HashSet (HashSet)
+import qualified Data.HashSet as HashSet
+import Data.Hashable (Hashable)
+import Data.Int (Int64)
+import qualified Data.Text as StrictT
+import qualified Data.Text.Lazy as LazyT
+import qualified Data.Vector as Vector hiding (indexed)
+import qualified Data.Vector.Primitive as Prim
+import qualified Data.Vector.Storable as Storable
+import qualified Data.Vector.Unboxed as Unboxed hiding (indexed)
+import Data.Word (Word8)
 
 import Optics.Core
 
@@ -100,7 +102,7 @@
   {-# INLINE ix #-}
 
 type instance IxValue (Prim.Vector a) = a
-instance Prim a => Ixed (Prim.Vector a) where
+instance Prim.Prim a => Ixed (Prim.Vector a) where
   ix i = atraversalVL $ \point f v ->
     if 0 <= i && i < Prim.length v
     then f (v Prim.! i) <&> \a -> v Prim.// [(i, a)]
@@ -108,7 +110,7 @@
   {-# INLINE ix #-}
 
 type instance IxValue (Storable.Vector a) = a
-instance Storable a => Ixed (Storable.Vector a) where
+instance Storable.Storable a => Ixed (Storable.Vector a) where
   ix i = atraversalVL $ \point f v ->
     if 0 <= i && i < Storable.length v
     then f (v Storable.! i) <&> \a -> v Storable.// [(i, a)]
@@ -116,7 +118,7 @@
   {-# INLINE ix #-}
 
 type instance IxValue (Unboxed.Vector a) = a
-instance Unbox a => Ixed (Unboxed.Vector a) where
+instance Unboxed.Unbox a => Ixed (Unboxed.Vector a) where
   ix i = atraversalVL $ \point f v ->
     if 0 <= i && i < Unboxed.length v
     then f (v Unboxed.! i) <&> \a -> v Unboxed.// [(i, a)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Optics/Cons.hs 
new/optics-extra-0.4/src/Optics/Cons.hs
--- old/optics-extra-0.3/src/Optics/Cons.hs     2001-09-09 03:46:40.000000000 
+0200
+++ new/optics-extra-0.4/src/Optics/Cons.hs     2001-09-09 03:46:40.000000000 
+0200
@@ -29,7 +29,7 @@
 import Data.Vector.Primitive (Prim)
 import Data.Vector.Storable (Storable)
 import Data.Vector.Unboxed (Unbox)
-import Data.Word
+import Data.Word (Word8)
 import qualified Data.ByteString as StrictB
 import qualified Data.ByteString.Lazy as LazyB
 import qualified Data.Text as StrictT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Optics/Each.hs 
new/optics-extra-0.4/src/Optics/Each.hs
--- old/optics-extra-0.3/src/Optics/Each.hs     2001-09-09 03:46:40.000000000 
+0200
+++ new/optics-extra-0.4/src/Optics/Each.hs     2001-09-09 03:46:40.000000000 
+0200
@@ -13,18 +13,19 @@
     Each(..)
   ) where
 
-import Data.ByteString as SB
-import Data.ByteString.Lazy as LB
-import Data.HashMap.Lazy as HashMap
-import Data.Int
-import Data.Text as ST
-import Data.Text.Lazy as LT
+import qualified Data.ByteString as SB
+import qualified Data.ByteString.Lazy as LB
+import Data.HashMap.Lazy (HashMap)
+import qualified Data.HashMap.Lazy as HashMap
+import Data.Int (Int64)
+import qualified Data.Text as ST
+import qualified Data.Text.Lazy as LT
 import Data.Text.Optics (text)
 import Data.Vector.Generic.Optics (vectorTraverse)
 import Data.Vector.Primitive (Prim)
 import Data.Vector.Storable (Storable)
 import Data.Vector.Unboxed (Unbox)
-import Data.Word
+import Data.Word (Word8)
 import qualified Data.Vector as V
 import qualified Data.Vector.Primitive as VP
 import qualified Data.Vector.Storable as VS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Optics/Empty.hs 
new/optics-extra-0.4/src/Optics/Empty.hs
--- old/optics-extra-0.3/src/Optics/Empty.hs    2001-09-09 03:46:40.000000000 
+0200
+++ new/optics-extra-0.4/src/Optics/Empty.hs    2001-09-09 03:46:40.000000000 
+0200
@@ -18,15 +18,17 @@
   , pattern Empty
   ) where
 
-import Data.ByteString as StrictB
-import Data.ByteString.Lazy as LazyB
-import Data.HashMap.Lazy as HashMap
-import Data.HashSet as HashSet
-import Data.Text as StrictT
-import Data.Text.Lazy as LazyT
-import Data.Vector as Vector
-import Data.Vector.Storable as Storable
-import Data.Vector.Unboxed as Unboxed
+import qualified Data.ByteString as StrictB
+import qualified Data.ByteString.Lazy as LazyB
+import Data.HashMap.Lazy (HashMap)
+import qualified Data.HashMap.Lazy as HashMap
+import Data.HashSet (HashSet)
+import qualified Data.HashSet as HashSet
+import qualified Data.Text as StrictT
+import qualified Data.Text.Lazy as LazyT
+import qualified Data.Vector as Vector
+import qualified Data.Vector.Storable as Storable
+import qualified Data.Vector.Unboxed as Unboxed
 
 import Optics.Core
 
@@ -44,11 +46,11 @@
   _Empty = nearly Vector.empty Vector.null
   {-# INLINE _Empty #-}
 
-instance Unbox a => AsEmpty (Unboxed.Vector a) where
+instance Unboxed.Unbox a => AsEmpty (Unboxed.Vector a) where
   _Empty = nearly Unboxed.empty Unboxed.null
   {-# INLINE _Empty #-}
 
-instance Storable a => AsEmpty (Storable.Vector a) where
+instance Storable.Storable a => AsEmpty (Storable.Vector a) where
   _Empty = nearly Storable.empty Storable.null
   {-# INLINE _Empty #-}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Optics/Extra/Internal/Zoom.hs 
new/optics-extra-0.4/src/Optics/Extra/Internal/Zoom.hs
--- old/optics-extra-0.3/src/Optics/Extra/Internal/Zoom.hs      2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Optics/Extra/Internal/Zoom.hs      2001-09-09 
03:46:40.000000000 +0200
@@ -139,8 +139,7 @@
 
 instance Monoid a => Monoid (May a) where
   mempty = May $ Just mempty
-  May (Just a) `mappend` May (Just b) = May $ Just (a `mappend` b)
-  _            `mappend` _            = May Nothing
+  mappend = (<>)
   {-# INLINE mempty #-}
   {-# INLINE mappend #-}
 
@@ -163,9 +162,7 @@
 
 instance Monoid a => Monoid (Err e a) where
   mempty = Err $ Right mempty
-  Err (Right a) `mappend` Err (Right b) = Err $ Right (a `mappend` b)
-  Err (Left e)  `mappend` _             = Err $ Left e
-  _             `mappend` Err (Left e)  = Err $ Left e
+  mappend = (<>)
   {-# INLINE mempty #-}
   {-# INLINE mappend #-}
 
@@ -186,7 +183,7 @@
 
 instance (Monad m, Monoid r) => Monoid (Effect m r) where
   mempty = Effect $ pure mempty
-  Effect ma `mappend` Effect mb = Effect $ mappend <$> ma <*> mb
+  mappend = (<>)
   {-# INLINE mempty #-}
   {-# INLINE mappend #-}
 
@@ -206,10 +203,7 @@
 
 instance (Monoid c, Monoid w, Monad m) => Monoid (EffectRWS w s m c) where
   mempty  = EffectRWS $ \s -> pure (mempty, s, mempty)
-  EffectRWS ma `mappend` EffectRWS mb = EffectRWS $ \s -> do
-    (c, s', w)    <- ma s
-    (c', s'', w') <- mb s'
-    pure (c `mappend` c', s'', w `mappend` w')
+  mappend = (<>)
   {-# INLINE mempty #-}
   {-# INLINE mappend #-}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Optics/Indexed.hs 
new/optics-extra-0.4/src/Optics/Indexed.hs
--- old/optics-extra-0.3/src/Optics/Indexed.hs  2001-09-09 03:46:40.000000000 
+0200
+++ new/optics-extra-0.4/src/Optics/Indexed.hs  2001-09-09 03:46:40.000000000 
+0200
@@ -51,9 +51,6 @@
   , ifor
   ) where
 
-import qualified Data.HashMap.Lazy as HM
-import qualified Data.Vector as V
-
 import Optics.Indexed.Core
 import Optics.IxAffineFold
 import Optics.IxAffineTraversal
@@ -63,36 +60,4 @@
 import Optics.IxSetter
 import Optics.IxTraversal
 
-----------------------------------------
--- Extra *WithIndex instances
-
--- HashMap
-
-instance FunctorWithIndex k (HM.HashMap k) where
-  imap = HM.mapWithKey
-  {-# INLINE imap #-}
-instance FoldableWithIndex k (HM.HashMap k) where
-  ifoldr  = HM.foldrWithKey
-  ifoldl' = HM.foldlWithKey' . flip
-  {-# INLINE ifoldr #-}
-  {-# INLINE ifoldl' #-}
-instance TraversableWithIndex k (HM.HashMap k) where
-  itraverse = HM.traverseWithKey
-  {-# INLINE itraverse #-}
-
--- Vector
-
-instance FunctorWithIndex Int V.Vector where
-  imap = V.imap
-  {-# INLINE imap #-}
-instance FoldableWithIndex Int V.Vector where
-  ifoldMap f = ifoldr (\i -> mappend . f i) mempty
-  ifoldr     = V.ifoldr
-  ifoldl'    = V.ifoldl' . flip
-  {-# INLINE ifoldMap #-}
-  {-# INLINE ifoldr #-}
-  {-# INLINE ifoldl' #-}
-instance TraversableWithIndex Int V.Vector where
-  itraverse f v =
-    let !n = V.length v in V.fromListN n <$> itraverse f (V.toList v)
-  {-# INLINE itraverse #-}
+import Data.Functor.WithIndex.Instances ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Optics/Passthrough.hs 
new/optics-extra-0.4/src/Optics/Passthrough.hs
--- old/optics-extra-0.3/src/Optics/Passthrough.hs      2001-09-09 
03:46:40.000000000 +0200
+++ new/optics-extra-0.4/src/Optics/Passthrough.hs      2001-09-09 
03:46:40.000000000 +0200
@@ -16,11 +16,11 @@
     -> (ViewResult k r, t)
 
 instance PermeableOptic An_Iso r where
-  passthrough = toLensVL
+  passthrough o = toLensVL o
   {-# INLINE passthrough #-}
 
 instance PermeableOptic A_Lens r where
-  passthrough = toLensVL
+  passthrough o = toLensVL o
   {-# INLINE passthrough #-}
 
 instance PermeableOptic A_Prism r where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/optics-extra-0.3/src/Optics/Zoom.hs 
new/optics-extra-0.4/src/Optics/Zoom.hs
--- old/optics-extra-0.3/src/Optics/Zoom.hs     2001-09-09 03:46:40.000000000 
+0200
+++ new/optics-extra-0.4/src/Optics/Zoom.hs     2001-09-09 03:46:40.000000000 
+0200
@@ -9,24 +9,31 @@
   , MagnifyMany(..)
   ) where
 
-import Control.Monad.Reader as Reader
-import Control.Monad.State
-import Control.Monad.Trans.Error
-import Control.Monad.Trans.Except
-import Control.Monad.Trans.Identity
-import Control.Monad.Trans.List
-import Control.Monad.Trans.Maybe
-import Control.Monad.Trans.RWS.Lazy as L
-import Control.Monad.Trans.RWS.Strict as S
-import Control.Monad.Trans.State.Lazy as L
-import Control.Monad.Trans.State.Strict as S
-import Control.Monad.Trans.Writer.Lazy as L
-import Control.Monad.Trans.Writer.Strict as S
+import Control.Monad.Reader (ReaderT (..), MonadReader)
+import Control.Monad.State (MonadState (..))
+import Control.Monad.Trans.Error (Error, ErrorT (..))
+import Control.Monad.Trans.Except (ExceptT (..), runExceptT)
+import Control.Monad.Trans.Identity (IdentityT (..))
+import Control.Monad.Trans.List (ListT (..))
+import Control.Monad.Trans.Maybe (MaybeT (..))
+import qualified Control.Monad.Trans.RWS.Lazy as L
+import qualified Control.Monad.Trans.RWS.Strict as S
+import qualified Control.Monad.Trans.State.Lazy as L
+import qualified Control.Monad.Trans.State.Strict as S
+import qualified Control.Monad.Trans.Writer.Lazy as L
+import qualified Control.Monad.Trans.Writer.Strict as S
 
 import Optics.Core
 import Optics.Internal.Utils
 import Optics.Extra.Internal.Zoom
 
+-- $setup
+-- >>> import Data.Monoid
+-- >>> import Control.Monad.Reader (runReader, ask)
+-- >>> import Optics.State
+-- >>> import Optics.State.Operators
+-- >>> import Optics.View
+
 -- Chosen so that they have lower fixity than ('%=').
 infixr 2 `zoom`, `zoomMaybe`, `zoomMany`
 infixr 2 `magnify`, `magnifyMaybe`, `magnifyMany`
@@ -215,10 +222,10 @@
 -- >>> (1,2) & magnify _2 (+1)
 -- 3
 --
--- >>> flip runReader (1,2) $ magnify _1 Reader.ask
+-- >>> flip runReader (1,2) $ magnify _1 ask
 -- 1
 --
--- >>> flip runReader (1,2,[10..20]) $ magnifyMaybe (_3 % _tail) Reader.ask
+-- >>> flip runReader (1,2,[10..20]) $ magnifyMaybe (_3 % _tail) ask
 -- Just [11,12,13,14,15,16,17,18,19,20]
 --
 class
@@ -404,9 +411,3 @@
 instance MagnifyMany m n b a => MagnifyMany (ExceptT e m) (ExceptT e n) b a 
where
   magnifyMany o = ExceptT #. fmap getErr . magnifyMany o . fmap Err .# 
runExceptT
   {-# INLINE magnifyMany #-}
-
--- $setup
--- >>> import Data.Monoid
--- >>> import Optics.State
--- >>> import Optics.State.Operators
--- >>> import Optics.View

Reply via email to