packages feed

mono-traversable-keys 0.1.0 → 0.2.0

raw patch · 5 files changed

+80/−9 lines, 5 filessetup-changedPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Data.MonoTraversable.Keys: instance (Data.Key.Adjustable f, Data.Key.Adjustable g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoAdjustable (Data.Functor.Product.Product f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.FoldableWithKey f, Data.Key.FoldableWithKey g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.Functor.Compose.Compose f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.FoldableWithKey f, Data.Key.FoldableWithKey g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.Functor.Product.Product f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.Indexable f, Data.Key.Indexable g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoIndexable (Data.Functor.Compose.Compose f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.Indexable f, Data.Key.Indexable g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoIndexable (Data.Functor.Product.Product f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.Keyed f, Data.Key.Keyed g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoKeyed (Data.Functor.Compose.Compose f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.Keyed f, Data.Key.Keyed g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoKeyed (Data.Functor.Product.Product f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.Lookup f, Data.Key.Lookup g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoLookup (Data.Functor.Compose.Compose f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.Lookup f, Data.Key.Lookup g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoLookup (Data.Functor.Product.Product f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.Zip f, Data.Key.Zip g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoZip (Data.Functor.Compose.Compose f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.Zip f, Data.Key.Zip g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoZip (Data.Functor.Product.Product f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.ZipWithKey f, Data.Key.ZipWithKey g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoZipWithKey (Data.Functor.Compose.Compose f g a)
- Data.MonoTraversable.Keys: instance (Data.Key.ZipWithKey f, Data.Key.ZipWithKey g, Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoZipWithKey (Data.Functor.Product.Product f g a)
- Data.MonoTraversable.Keys: instance (Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g, Data.Key.TraversableWithKey f, Data.Key.TraversableWithKey g) => Data.MonoTraversable.Keys.MonoTraversableWithKey (Data.Functor.Compose.Compose f g a)
- Data.MonoTraversable.Keys: instance (Data.MonoTraversable.Keys.MonoKey (f a) Data.Type.Equality.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) Data.Type.Equality.~ Data.Key.Key g, Data.Key.TraversableWithKey f, Data.Key.TraversableWithKey g) => Data.MonoTraversable.Keys.MonoTraversableWithKey (Data.Functor.Product.Product f g a)
- Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoAdjustable (Data.HashMap.Base.HashMap k v)
- Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoIndexable (Data.HashMap.Base.HashMap k v)
- Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoLookup (Data.HashMap.Base.HashMap k v)
- Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoZip (Data.HashMap.Base.HashMap k v)
- Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoZipWithKey (Data.HashMap.Base.HashMap k v)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoAdjustable (Data.Semigroup.Option a)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.HashMap.Base.HashMap k v)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.HashSet.Base.HashSet v)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.Semigroup.Option a)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoIndexable (Data.HashSet.Base.HashSet v)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoIndexable (Data.Semigroup.Option a)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoKeyed (Data.HashMap.Base.HashMap k v)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoKeyed (Data.Semigroup.Option a)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoLookup (Data.HashSet.Base.HashSet v)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoLookup (Data.Semigroup.Option a)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoTraversableWithKey (Data.HashMap.Base.HashMap k v)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoTraversableWithKey (Data.Semigroup.Option a)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoZip (Data.Semigroup.Option a)
- Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoZipWithKey (Data.Semigroup.Option a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Adjustable f, Data.Key.Adjustable g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoAdjustable (Data.Functor.Product.Product f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.FoldableWithKey f, Data.Key.FoldableWithKey g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.Functor.Compose.Compose f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.FoldableWithKey f, Data.Key.FoldableWithKey g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.Functor.Product.Product f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Indexable f, Data.Key.Indexable g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoIndexable (Data.Functor.Compose.Compose f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Indexable f, Data.Key.Indexable g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoIndexable (Data.Functor.Product.Product f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Keyed f, Data.Key.Keyed g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoKeyed (Data.Functor.Compose.Compose f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Keyed f, Data.Key.Keyed g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoKeyed (Data.Functor.Product.Product f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Lookup f, Data.Key.Lookup g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoLookup (Data.Functor.Compose.Compose f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Lookup f, Data.Key.Lookup g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoLookup (Data.Functor.Product.Product f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Zip f, Data.Key.Zip g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoZip (Data.Functor.Compose.Compose f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.Zip f, Data.Key.Zip g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoZip (Data.Functor.Product.Product f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.ZipWithKey f, Data.Key.ZipWithKey g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoZipWithKey (Data.Functor.Compose.Compose f g a)
+ Data.MonoTraversable.Keys: instance (Data.Key.ZipWithKey f, Data.Key.ZipWithKey g, Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g) => Data.MonoTraversable.Keys.MonoZipWithKey (Data.Functor.Product.Product f g a)
+ Data.MonoTraversable.Keys: instance (Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g, Data.Key.TraversableWithKey f, Data.Key.TraversableWithKey g) => Data.MonoTraversable.Keys.MonoTraversableWithKey (Data.Functor.Compose.Compose f g a)
+ Data.MonoTraversable.Keys: instance (Data.MonoTraversable.Keys.MonoKey (f a) GHC.Types.~ Data.Key.Key f, Data.MonoTraversable.Keys.MonoKey (g a) GHC.Types.~ Data.Key.Key g, Data.Key.TraversableWithKey f, Data.Key.TraversableWithKey g) => Data.MonoTraversable.Keys.MonoTraversableWithKey (Data.Functor.Product.Product f g a)
+ Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoAdjustable (Data.HashMap.Internal.HashMap k v)
+ Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoIndexable (Data.HashMap.Internal.HashMap k v)
+ Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoLookup (Data.HashMap.Internal.HashMap k v)
+ Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoZip (Data.HashMap.Internal.HashMap k v)
+ Data.MonoTraversable.Keys: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.MonoTraversable.Keys.MonoZipWithKey (Data.HashMap.Internal.HashMap k v)
+ Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.HashMap.Internal.HashMap k v)
+ Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoFoldableWithKey (Data.HashSet.Internal.HashSet v)
+ Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoIndexable (Data.HashSet.Internal.HashSet v)
+ Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoKeyed (Data.HashMap.Internal.HashMap k v)
+ Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoLookup (Data.HashSet.Internal.HashSet v)
+ Data.MonoTraversable.Keys: instance Data.MonoTraversable.Keys.MonoTraversableWithKey (Data.HashMap.Internal.HashMap k v)

Files

CHANGELOG.md view
@@ -1,6 +1,11 @@ # Changelog for mono-traversable-keys -## _0.1.0_ Unreleased changes+## _0.2.0_++	* Added support for GHC-9.2+	* Conditional inclusion of many import to support backwards compatability++## _0.1.0_ Initial version  	* Added `MonoAdjustable` type-class and initial instances 	* Added `MonoIndexable` type-class and initial instances
README.md view
@@ -1,6 +1,12 @@-# mono-traversable-keys+## Type-classes for interacting with monomorphic containers with a key -Provides type-classes for interacting with monomorphic containers in the following was:+[![Build Status](https://travis-ci.org/recursion-ninja/mono-traversable-keys.svg?branch=master)](https://travis-ci.org/recursion-ninja/mono-traversable-keys)+[![License FreeBSD](https://img.shields.io/badge/license-FreeBSD-brightgreen.svg)](http://opensource.org/licenses/BSD-3-Clause)+[![Hackage](https://img.shields.io/hackage/v/mono-traversable-keys.svg?style=flat)](https://hackage.haskell.org/package/mono-traversable-keys)+[![Stackage Nightly](http://stackage.org/package/mono-traversable-keys/badge/nightly)](http://stackage.org/nightly/package/mono-traversable-keys)+[![Stackage LTS](http://stackage.org/package/mono-traversable-keys/badge/lts)](http://stackage.org/lts/package/mono-traversable-keys)++Provides type-classes for interacting with monomorphic containers in the following ways:   * zipping  * adjusting an element at a key
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
mono-traversable-keys.cabal view
@@ -1,7 +1,7 @@ cabal-version: 1.12  name:           mono-traversable-keys-version:        0.1.0+version:        0.2.0 synopsis:       Type-classes for interacting with monomorphic containers with a key category:       Containers, Data, Data Structures build-type:     Simple@@ -24,7 +24,11 @@   CHANGELOG.md  tested-with:-  GHC == 8.6.3+  GHC == 9.2.1+  GHC == 9.0.1+  GHC == 8.10.7+  GHC == 8.8.4+  GHC == 8.6.5   GHC == 8.4.4   GHC == 8.2.2   GHC == 8.0.2@@ -43,12 +47,15 @@       hashable             >= 1.2     && < 2.0,                 keys                 >= 3       && < 4.0,                 mono-traversable     >= 1       && < 2.0,          -      semigroups           >= 0.8.3.1 && < 1.0,       text                 >= 0.11    && < 2.0,       transformers         >= 0.2     && < 1.0,       unordered-containers >= 0.2.4   && < 1.0,       vector               >= 0.10    && < 1.0,       vector-instances     >= 3.4     && < 4.0++  if impl(ghc < 8.0)+    build-depends:+      semigroups           >= 0.8.3.1 && < 1.0                    default-language:       Haskell2010@@ -79,6 +86,14 @@       -fwarn-unused-imports       -fwarn-unused-matches       -fwarn-wrong-do-bind+      -- Lots of false positives reported,+      -- due to supporting backwards compatability+      -fno-warn-deprecations +  if impl(ghc >= 8.10)+    ghc-options:+      -fwarn-deriving-defaults+      -fwarn-unused-packages+         hs-source-dirs:       src
src/Data/MonoTraversable/Keys.hs view
@@ -15,6 +15,7 @@ -- been prefixed with @o@. The mnemonic is inherited from 'Data.MonoTraversable'.  {-# LANGUAGE BangPatterns            #-}+{-# LANGUAGE CPP                     #-} {-# LANGUAGE ConstrainedClassMethods #-} {-# LANGUAGE DefaultSignatures       #-} {-# LANGUAGE FlexibleContexts        #-}@@ -45,7 +46,10 @@ import           Control.Applicative import           Control.Arrow                            (Arrow) --import           Control.Comonad.Cofree                   (Cofree(..))+#if MIN_VERSION_base(4,13,0)+#else import           Control.Monad                            (Monad (..))+#endif --import           Control.Monad.Free import           Control.Monad.Trans.Cont                 (ContT) import           Control.Monad.Trans.Identity             (IdentityT)@@ -69,7 +73,10 @@ import qualified Data.HashMap.Strict               as HM import           Data.HashSet                             (HashSet) import qualified Data.HashSet                      as HS+#if MIN_VERSION_base(4,13,0)+#else import           Data.Int                                 (Int)+#endif import           Data.IntMap                              (IntMap) import qualified Data.IntMap                       as IM import           Data.IntSet                              (IntSet)@@ -79,10 +86,23 @@ import           Data.Map                                 (Map) import qualified Data.Map.Strict                   as Map import           Data.Maybe+#if MIN_VERSION_base(4,13,0)+#else import           Data.Monoid                              (Monoid(..))+#endif import           Data.MonoTraversable                     (Element, MonoFoldable(..), MonoFunctor(..), MonoTraversable(..)) --import           Data.Proxy-import           Data.Semigroup                           (Semigroup(..), Arg(..), Dual(..), Endo(..), Option(..))+import           Data.Semigroup                           (+#if MIN_VERSION_base(4,11,0)+#else+                                                           Semigroup(..),+#endif+                                                           Arg(..), Dual(..), Endo(..)+#if MIN_VERSION_base(4,16,0)+#else+                                                          , Option(..)+#endif+                                                          ) import           Data.Sequence                            (Seq, ViewL(..), ViewR(..)) import qualified Data.Sequence                     as Seq import           Data.Set                                 (Set)@@ -136,7 +156,10 @@ type instance MonoKey (MaybeT m a)         = () --type instance MonoKey (M1 i c f a)         = Key (M1 i c f) type instance MonoKey (NonEmpty a)         = Int+#if MIN_VERSION_base(4,16,0)+#else type instance MonoKey (Option a)           = ()+#endif --type instance MonoKey (Par1 a)             = () type instance MonoKey (Product f g a)      = Either (Key f) (Key g) --type instance MonoKey (Proxy a)            = Void@@ -448,12 +471,15 @@ instance MonoKeyed (NonEmpty a)  +#if MIN_VERSION_base(4,16,0)+#else -- | -- @since 0.1.0  instance MonoKeyed (Option a) where     {-# INLINE omapWithKey #-}      omapWithKey = omapWithUnitKey+#endif   -- |@@ -782,12 +808,15 @@     ofoldlWithKey   = monoFoldableWithIntegralKey  +#if MIN_VERSION_base(4,16,0)+#else -- | -- @since 0.1.0  instance MonoFoldableWithKey (Option a) where     {-# INLINE ofoldMapWithKey #-}      ofoldMapWithKey = monoFoldableWithUnitKey+#endif   -- |@@ -1069,12 +1098,15 @@     otraverseWithKey = traverseWithKey  +#if MIN_VERSION_base(4,16,0)+#else -- | -- @since 0.1.0  instance MonoTraversableWithKey (Option a) where     {-# INLINE otraverseWithKey #-}      otraverseWithKey = monoTraversableWithUnitKey+#endif   -- |@@ -1323,12 +1355,15 @@     olookup = lookup  +#if MIN_VERSION_base(4,16,0)+#else -- | -- @since 0.1.0  instance MonoLookup (Option a) where     {-# INLINE olookup #-}      olookup = const getOption+#endif   -- |@@ -1598,6 +1633,8 @@     oindex = index  +#if MIN_VERSION_base(4,16,0)+#else -- | -- @since 0.1.0  instance MonoIndexable (Option a) where@@ -1607,6 +1644,7 @@       where         errorMessage = error              "oindex on empty Option, cannot retreive a value. Consider using olookup instead."+#endif   -- |@@ -1908,12 +1946,15 @@     oadjust = adjust  +#if MIN_VERSION_base(4,16,0)+#else -- | -- @since 0.1.0  instance MonoAdjustable (Option a) where     {-# INLINE oadjust #-}      oadjust f = const $ fmap f+#endif   -- |@@ -2269,12 +2310,15 @@     ozipWith f (x:|xs) (y :|ys) = f x y :| zipWith f xs ys  +#if MIN_VERSION_base(4,16,0)+#else -- | -- @since 0.1.0  instance MonoZip (Option a) where     {-# INLINE ozipWith #-}      ozipWith = liftA2+#endif   -- |@@ -2631,12 +2675,15 @@     ozipWithKey = zipWithKey  +#if MIN_VERSION_base(4,16,0)+#else -- | -- @since 0.1.0  instance MonoZipWithKey (Option a) where     {-# INLINE ozipWithKey #-}      ozipWithKey f = liftA2 (f ())+#endif   -- |