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 +6/−1
- README.md +8/−2
- Setup.hs +0/−2
- mono-traversable-keys.cabal +18/−3
- src/Data/MonoTraversable/Keys.hs +48/−1
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:+[](https://travis-ci.org/recursion-ninja/mono-traversable-keys)+[](http://opensource.org/licenses/BSD-3-Clause)+[](https://hackage.haskell.org/package/mono-traversable-keys)+[](http://stackage.org/nightly/package/mono-traversable-keys)+[](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 -- |