base-orphans 0.5.2 → 0.5.3
raw patch · 3 files changed
+71/−8 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Orphans: instance (Control.Monad.Fix.MonadFix f, Control.Monad.Fix.MonadFix g) => Control.Monad.Fix.MonadFix (f GHC.Generics.:*: g)
+ Data.Orphans: instance (Control.Monad.Zip.MonadZip f, Control.Monad.Zip.MonadZip g) => Control.Monad.Zip.MonadZip (f GHC.Generics.:*: g)
+ Data.Orphans: instance (Data.Data.Data (f a), Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable a) => Data.Data.Data (Data.Monoid.Alt f a)
+ Data.Orphans: instance (Data.Data.Data (f p), Data.Typeable.Internal.Typeable f, Data.Data.Data p) => Data.Data.Data (GHC.Generics.Rec1 f p)
+ Data.Orphans: instance (Data.Data.Data p, Data.Data.Data (f p), Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable i, Data.Typeable.Internal.Typeable f) => Data.Data.Data (GHC.Generics.M1 i c f p)
+ Data.Orphans: instance (Data.Foldable.Foldable f, Data.Foldable.Foldable g) => Data.Foldable.Foldable (f GHC.Generics.:*: g)
+ Data.Orphans: instance (Data.Foldable.Foldable f, Data.Foldable.Foldable g) => Data.Foldable.Foldable (f GHC.Generics.:+: g)
+ Data.Orphans: instance (Data.Foldable.Foldable f, Data.Foldable.Foldable g) => Data.Foldable.Foldable (f GHC.Generics.:.: g)
+ Data.Orphans: instance (Data.Traversable.Traversable f, Data.Traversable.Traversable g) => Data.Traversable.Traversable (f GHC.Generics.:*: g)
+ Data.Orphans: instance (Data.Traversable.Traversable f, Data.Traversable.Traversable g) => Data.Traversable.Traversable (f GHC.Generics.:+: g)
+ Data.Orphans: instance (Data.Traversable.Traversable f, Data.Traversable.Traversable g) => Data.Traversable.Traversable (f GHC.Generics.:.: g)
+ Data.Orphans: instance (Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable g, Data.Data.Data p, Data.Data.Data (f (g p))) => Data.Data.Data ((GHC.Generics.:.:) f g p)
+ Data.Orphans: instance (Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable g, Data.Data.Data p, Data.Data.Data (f p), Data.Data.Data (g p)) => Data.Data.Data ((GHC.Generics.:*:) f g p)
+ Data.Orphans: instance (Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable g, Data.Data.Data p, Data.Data.Data (f p), Data.Data.Data (g p)) => Data.Data.Data ((GHC.Generics.:+:) f g p)
+ Data.Orphans: instance (Data.Typeable.Internal.Typeable i, Data.Data.Data p, Data.Data.Data c) => Data.Data.Data (GHC.Generics.K1 i c p)
+ Data.Orphans: instance (GHC.Base.Alternative f, GHC.Base.Alternative g) => GHC.Base.Alternative (f GHC.Generics.:*: g)
+ Data.Orphans: instance (GHC.Base.Alternative f, GHC.Base.Applicative g) => GHC.Base.Alternative (f GHC.Generics.:.: g)
+ Data.Orphans: instance (GHC.Base.Applicative f, GHC.Base.Applicative g) => GHC.Base.Applicative (f GHC.Generics.:*: g)
+ Data.Orphans: instance (GHC.Base.Applicative f, GHC.Base.Applicative g) => GHC.Base.Applicative (f GHC.Generics.:.: g)
+ Data.Orphans: instance (GHC.Base.Functor f, GHC.Base.Functor g) => GHC.Base.Functor (f GHC.Generics.:*: g)
+ Data.Orphans: instance (GHC.Base.Functor f, GHC.Base.Functor g) => GHC.Base.Functor (f GHC.Generics.:+: g)
+ Data.Orphans: instance (GHC.Base.Functor f, GHC.Base.Functor g) => GHC.Base.Functor (f GHC.Generics.:.: g)
+ Data.Orphans: instance (GHC.Base.Monad f, GHC.Base.Monad g) => GHC.Base.Monad (f GHC.Generics.:*: g)
+ Data.Orphans: instance (GHC.Base.MonadPlus f, GHC.Base.MonadPlus g) => GHC.Base.MonadPlus (f GHC.Generics.:*: g)
+ Data.Orphans: instance Control.Monad.Fix.MonadFix Data.Monoid.Dual
+ Data.Orphans: instance Control.Monad.Fix.MonadFix Data.Monoid.First
+ Data.Orphans: instance Control.Monad.Fix.MonadFix Data.Monoid.Last
+ Data.Orphans: instance Control.Monad.Fix.MonadFix Data.Monoid.Product
+ Data.Orphans: instance Control.Monad.Fix.MonadFix Data.Monoid.Sum
+ Data.Orphans: instance Control.Monad.Fix.MonadFix GHC.Generics.Par1
+ Data.Orphans: instance Control.Monad.Fix.MonadFix f => Control.Monad.Fix.MonadFix (Data.Monoid.Alt f)
+ Data.Orphans: instance Control.Monad.Fix.MonadFix f => Control.Monad.Fix.MonadFix (GHC.Generics.M1 i c f)
+ Data.Orphans: instance Control.Monad.Fix.MonadFix f => Control.Monad.Fix.MonadFix (GHC.Generics.Rec1 f)
+ Data.Orphans: instance Control.Monad.Zip.MonadZip Data.Monoid.Dual
+ Data.Orphans: instance Control.Monad.Zip.MonadZip Data.Monoid.First
+ Data.Orphans: instance Control.Monad.Zip.MonadZip Data.Monoid.Last
+ Data.Orphans: instance Control.Monad.Zip.MonadZip Data.Monoid.Product
+ Data.Orphans: instance Control.Monad.Zip.MonadZip Data.Monoid.Sum
+ Data.Orphans: instance Control.Monad.Zip.MonadZip Data.Proxy.Proxy
+ Data.Orphans: instance Control.Monad.Zip.MonadZip GHC.Base.Maybe
+ Data.Orphans: instance Control.Monad.Zip.MonadZip GHC.Generics.Par1
+ Data.Orphans: instance Control.Monad.Zip.MonadZip GHC.Generics.U1
+ Data.Orphans: instance Control.Monad.Zip.MonadZip f => Control.Monad.Zip.MonadZip (Data.Monoid.Alt f)
+ Data.Orphans: instance Control.Monad.Zip.MonadZip f => Control.Monad.Zip.MonadZip (GHC.Generics.M1 i c f)
+ Data.Orphans: instance Control.Monad.Zip.MonadZip f => Control.Monad.Zip.MonadZip (GHC.Generics.Rec1 f)
+ Data.Orphans: instance Data.Bifunctor.Bifunctor (GHC.Generics.K1 i)
+ Data.Orphans: instance Data.Data.Data Data.Monoid.All
+ Data.Orphans: instance Data.Data.Data Data.Monoid.Any
+ Data.Orphans: instance Data.Data.Data GHC.Generics.Associativity
+ Data.Orphans: instance Data.Data.Data GHC.Generics.Fixity
+ Data.Orphans: instance Data.Data.Data a => Data.Data.Data (Data.Monoid.Dual a)
+ Data.Orphans: instance Data.Data.Data a => Data.Data.Data (Data.Monoid.First a)
+ Data.Orphans: instance Data.Data.Data a => Data.Data.Data (Data.Monoid.Last a)
+ Data.Orphans: instance Data.Data.Data a => Data.Data.Data (Data.Monoid.Product a)
+ Data.Orphans: instance Data.Data.Data a => Data.Data.Data (Data.Monoid.Sum a)
+ Data.Orphans: instance Data.Data.Data p => Data.Data.Data (GHC.Generics.Par1 p)
+ Data.Orphans: instance Data.Data.Data p => Data.Data.Data (GHC.Generics.U1 p)
+ Data.Orphans: instance Data.Data.Data p => Data.Data.Data (GHC.Generics.V1 p)
+ Data.Orphans: instance Data.Foldable.Foldable (GHC.Generics.K1 i c)
+ Data.Orphans: instance Data.Foldable.Foldable Control.Applicative.ZipList
+ Data.Orphans: instance Data.Foldable.Foldable Data.Complex.Complex
+ Data.Orphans: instance Data.Foldable.Foldable Data.Monoid.Dual
+ Data.Orphans: instance Data.Foldable.Foldable Data.Monoid.First
+ Data.Orphans: instance Data.Foldable.Foldable Data.Monoid.Last
+ Data.Orphans: instance Data.Foldable.Foldable Data.Monoid.Product
+ Data.Orphans: instance Data.Foldable.Foldable Data.Monoid.Sum
+ Data.Orphans: instance Data.Foldable.Foldable GHC.Generics.Par1
+ Data.Orphans: instance Data.Foldable.Foldable GHC.Generics.U1
+ Data.Orphans: instance Data.Foldable.Foldable GHC.Generics.V1
+ Data.Orphans: instance Data.Foldable.Foldable f => Data.Foldable.Foldable (GHC.Generics.M1 i c f)
+ Data.Orphans: instance Data.Foldable.Foldable f => Data.Foldable.Foldable (GHC.Generics.Rec1 f)
+ Data.Orphans: instance Data.Traversable.Traversable (GHC.Generics.K1 i c)
+ Data.Orphans: instance Data.Traversable.Traversable Control.Applicative.ZipList
+ Data.Orphans: instance Data.Traversable.Traversable Data.Complex.Complex
+ Data.Orphans: instance Data.Traversable.Traversable Data.Monoid.Dual
+ Data.Orphans: instance Data.Traversable.Traversable Data.Monoid.First
+ Data.Orphans: instance Data.Traversable.Traversable Data.Monoid.Last
+ Data.Orphans: instance Data.Traversable.Traversable Data.Monoid.Product
+ Data.Orphans: instance Data.Traversable.Traversable Data.Monoid.Sum
+ Data.Orphans: instance Data.Traversable.Traversable GHC.Generics.Par1
+ Data.Orphans: instance Data.Traversable.Traversable GHC.Generics.U1
+ Data.Orphans: instance Data.Traversable.Traversable GHC.Generics.V1
+ Data.Orphans: instance Data.Traversable.Traversable f => Data.Traversable.Traversable (GHC.Generics.M1 i c f)
+ Data.Orphans: instance Data.Traversable.Traversable f => Data.Traversable.Traversable (GHC.Generics.Rec1 f)
+ Data.Orphans: instance Foreign.Storable.Storable ()
+ Data.Orphans: instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Control.Applicative.Const a b)
+ Data.Orphans: instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Data.Functor.Identity.Identity a)
+ Data.Orphans: instance GHC.Arr.Ix GHC.Generics.Associativity
+ Data.Orphans: instance GHC.Arr.Ix a => GHC.Arr.Ix (Control.Applicative.Const a b)
+ Data.Orphans: instance GHC.Arr.Ix a => GHC.Arr.Ix (Data.Functor.Identity.Identity a)
+ Data.Orphans: instance GHC.Base.Alternative Data.Proxy.Proxy
+ Data.Orphans: instance GHC.Base.Alternative GHC.Generics.U1
+ Data.Orphans: instance GHC.Base.Alternative f => GHC.Base.Alternative (GHC.Generics.M1 i c f)
+ Data.Orphans: instance GHC.Base.Alternative f => GHC.Base.Alternative (GHC.Generics.Rec1 f)
+ Data.Orphans: instance GHC.Base.Applicative Data.Complex.Complex
+ Data.Orphans: instance GHC.Base.Applicative Data.Monoid.Dual
+ Data.Orphans: instance GHC.Base.Applicative Data.Monoid.Product
+ Data.Orphans: instance GHC.Base.Applicative Data.Monoid.Sum
+ Data.Orphans: instance GHC.Base.Applicative GHC.Generics.Par1
+ Data.Orphans: instance GHC.Base.Applicative GHC.Generics.U1
+ Data.Orphans: instance GHC.Base.Applicative f => GHC.Base.Applicative (GHC.Generics.M1 i c f)
+ Data.Orphans: instance GHC.Base.Applicative f => GHC.Base.Applicative (GHC.Generics.Rec1 f)
+ Data.Orphans: instance GHC.Base.Functor (GHC.Generics.K1 i c)
+ Data.Orphans: instance GHC.Base.Functor Data.Complex.Complex
+ Data.Orphans: instance GHC.Base.Functor Data.Monoid.Dual
+ Data.Orphans: instance GHC.Base.Functor Data.Monoid.Product
+ Data.Orphans: instance GHC.Base.Functor Data.Monoid.Sum
+ Data.Orphans: instance GHC.Base.Functor GHC.Generics.Par1
+ Data.Orphans: instance GHC.Base.Functor GHC.Generics.U1
+ Data.Orphans: instance GHC.Base.Functor GHC.Generics.V1
+ Data.Orphans: instance GHC.Base.Functor f => GHC.Base.Functor (GHC.Generics.M1 i c f)
+ Data.Orphans: instance GHC.Base.Functor f => GHC.Base.Functor (GHC.Generics.Rec1 f)
+ Data.Orphans: instance GHC.Base.Monad Data.Complex.Complex
+ Data.Orphans: instance GHC.Base.Monad Data.Monoid.Dual
+ Data.Orphans: instance GHC.Base.Monad Data.Monoid.Product
+ Data.Orphans: instance GHC.Base.Monad Data.Monoid.Sum
+ Data.Orphans: instance GHC.Base.Monad GHC.Generics.Par1
+ Data.Orphans: instance GHC.Base.Monad GHC.Generics.U1
+ Data.Orphans: instance GHC.Base.Monad f => GHC.Base.Monad (GHC.Generics.M1 i c f)
+ Data.Orphans: instance GHC.Base.Monad f => GHC.Base.Monad (GHC.Generics.Rec1 f)
+ Data.Orphans: instance GHC.Base.MonadPlus Data.Proxy.Proxy
+ Data.Orphans: instance GHC.Base.MonadPlus GHC.Generics.U1
+ Data.Orphans: instance GHC.Base.MonadPlus f => GHC.Base.MonadPlus (GHC.Generics.M1 i c f)
+ Data.Orphans: instance GHC.Base.MonadPlus f => GHC.Base.MonadPlus (GHC.Generics.Rec1 f)
+ Data.Orphans: instance GHC.Base.Monoid a => GHC.Base.Monad ((,) a)
+ Data.Orphans: instance GHC.Base.Monoid a => GHC.Base.Monoid (Data.Functor.Identity.Identity a)
+ Data.Orphans: instance GHC.Base.Monoid a => GHC.Base.Monoid (GHC.Types.IO a)
+ Data.Orphans: instance GHC.Classes.Eq (GHC.Generics.V1 p)
+ Data.Orphans: instance GHC.Classes.Ord (GHC.Generics.V1 p)
+ Data.Orphans: instance GHC.Enum.Bounded GHC.Generics.Associativity
+ Data.Orphans: instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Control.Applicative.Const a b)
+ Data.Orphans: instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Data.Functor.Identity.Identity a)
+ Data.Orphans: instance GHC.Enum.Enum GHC.Generics.Associativity
+ Data.Orphans: instance GHC.Enum.Enum a => GHC.Enum.Enum (Control.Applicative.Const a b)
+ Data.Orphans: instance GHC.Enum.Enum a => GHC.Enum.Enum (Data.Functor.Identity.Identity a)
+ Data.Orphans: instance GHC.Read.Read (GHC.Generics.V1 p)
+ Data.Orphans: instance GHC.Show.Show (GHC.Generics.V1 p)
Files
- CHANGES.markdown +5/−0
- base-orphans.cabal +2/−2
- src/Data/Orphans.hs +64/−6
CHANGES.markdown view
@@ -1,3 +1,8 @@+## Changes in 0.5.3+ - Backported `Alternative`, `MonadPlus` and `MonadZip` instances for `U1` and+ `Proxy`, and made the `Functor`, `Foldable`, `Traversable`, `Alternative`,+ and `Monad` instances for `U1` lazier to correspond with `base-4.9`+ ## Changes in 0.5.2 - Backported `Enum`, `Bounded`, `Ix`, `Functor`, `Applicative`, `Monad`, `MonadFix`, `MonadPlus`, `MonadZip`, `Foldable`, `Traversable`, and
base-orphans.cabal view
@@ -1,9 +1,9 @@--- This file has been generated from package.yaml by hpack version 0.9.1.+-- This file has been generated from package.yaml by hpack version 0.10.0. -- -- see: https://github.com/sol/hpack name: base-orphans-version: 0.5.2+version: 0.5.3 synopsis: Backwards-compatible orphan instances for base description: @base-orphans@ defines orphan instances that mimic instances available in later versions of @base@ to a wider (older) range of compilers. @base-orphans@ does not export anything except the orphan instances themselves and complements @<http://hackage.haskell.org/package/base-compat base-compat>@. See the README for what instances are covered: <https://github.com/haskell-compat/base-orphans#readme>. See also the <https://github.com/haskell-compat/base-orphans#what-is-not-covered what is not covered> section.
src/Data/Orphans.hs view
@@ -607,6 +607,26 @@ mzipWith = liftM2 # endif +# if MIN_VERSION_base(4,7,0)+instance Alternative Proxy where+ empty = Proxy+ {-# INLINE empty #-}+ _ <|> _ = Proxy+ {-# INLINE (<|>) #-}++instance MonadPlus Proxy where+# if !(MIN_VERSION_base(4,8,0))+ mzero = Proxy+ {-# INLINE mzero #-}+ mplus _ _ = Proxy+ {-# INLINE mplus #-}+# endif++instance MonadZip Proxy where+ mzipWith _ _ _ = Proxy+ {-# INLINE mzipWith #-}+# endif+ # if MIN_VERSION_base(4,8,0) deriving instance (Data (f a), Typeable f, Typeable a) => Data (Alt (f :: * -> *) (a :: *))@@ -633,7 +653,6 @@ deriving instance Data Associativity deriving instance F.Foldable V1-deriving instance F.Foldable U1 deriving instance F.Foldable Par1 deriving instance F.Foldable f => F.Foldable (Rec1 f) deriving instance F.Foldable (K1 i c)@@ -643,7 +662,6 @@ deriving instance (F.Foldable f, F.Foldable g) => F.Foldable (f :.: g) deriving instance Functor V1-deriving instance Functor U1 deriving instance Functor Par1 deriving instance Functor f => Functor (Rec1 f) deriving instance Functor (K1 i c)@@ -667,6 +685,9 @@ fstP (a :*: _) = a sndP (_ :*: b) = b +instance MonadZip U1 where+ mzipWith _ _ _ = U1+ instance MonadZip Par1 where mzipWith = liftM2 @@ -680,7 +701,6 @@ mzipWith f (x1 :*: y1) (x2 :*: y2) = mzipWith f x1 x2 :*: mzipWith f y1 y2 deriving instance T.Traversable V1-deriving instance T.Traversable U1 deriving instance T.Traversable Par1 deriving instance T.Traversable f => T.Traversable (Rec1 f) deriving instance T.Traversable (K1 i c)@@ -703,19 +723,57 @@ readListPrec = readListPrecDefault deriving instance Show (V1 p) +instance Functor U1 where+ fmap _ _ = U1+ instance Applicative U1 where pure _ = U1- U1 <*> U1 = U1+ _ <*> _ = U1 instance Alternative U1 where empty = U1- U1 <|> U1 = U1+ _ <|> _ = U1 instance Monad U1 where # if !(MIN_VERSION_base(4,8,0)) return _ = U1 # endif- U1 >>= _ = U1+ _ >>= _ = U1++instance MonadPlus U1 where+# if !(MIN_VERSION_base(4,8,0))+ mzero = U1+ mplus _ _ = U1+# endif++instance F.Foldable U1 where+ foldMap _ _ = mempty+ {-# INLINE foldMap #-}+ fold _ = mempty+ {-# INLINE fold #-}+ foldr _ z _ = z+ {-# INLINE foldr #-}+ foldl _ z _ = z+ {-# INLINE foldl #-}+ foldl1 _ _ = error "foldl1: U1"+ foldr1 _ _ = error "foldr1: U1"+# if MIN_VERSION_base(4,8,0)+ length _ = 0+ null _ = True+ elem _ _ = False+ sum _ = 0+ product _ = 1+# endif++instance T.Traversable U1 where+ traverse _ _ = pure U1+ {-# INLINE traverse #-}+ sequenceA _ = pure U1+ {-# INLINE sequenceA #-}+ mapM _ _ = return U1+ {-# INLINE mapM #-}+ sequence _ = return U1+ {-# INLINE sequence #-} instance Applicative Par1 where pure a = Par1 a