base-orphans 0.8.3 → 0.8.4
raw patch · 4 files changed
+18/−2 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Orphans: instance (Data.Orphans.Prelude.Typeable1 m, Data.Typeable.Internal.Typeable a, Data.Data.Data (m a)) => Data.Data.Data (Control.Applicative.WrappedMonad m a)
- Data.Orphans: instance (Data.Orphans.Prelude.Typeable2 a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Data.Data (a b c)) => Data.Data.Data (Control.Applicative.WrappedArrow a b c)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7, GHC.Arr.Ix a8) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7, a8)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7, GHC.Arr.Ix a8, GHC.Arr.Ix a9) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7, GHC.Arr.Ix a8, GHC.Arr.Ix a9, GHC.Arr.Ix aA) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7, GHC.Arr.Ix a8, GHC.Arr.Ix a9, GHC.Arr.Ix aA, GHC.Arr.Ix aB) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7, GHC.Arr.Ix a8, GHC.Arr.Ix a9, GHC.Arr.Ix aA, GHC.Arr.Ix aB, GHC.Arr.Ix aC) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7, GHC.Arr.Ix a8, GHC.Arr.Ix a9, GHC.Arr.Ix aA, GHC.Arr.Ix aB, GHC.Arr.Ix aC, GHC.Arr.Ix aD) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7, GHC.Arr.Ix a8, GHC.Arr.Ix a9, GHC.Arr.Ix aA, GHC.Arr.Ix aB, GHC.Arr.Ix aC, GHC.Arr.Ix aD, GHC.Arr.Ix aE) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)
- Data.Orphans: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5, GHC.Arr.Ix a6, GHC.Arr.Ix a7, GHC.Arr.Ix a8, GHC.Arr.Ix a9, GHC.Arr.Ix aA, GHC.Arr.Ix aB, GHC.Arr.Ix aC, GHC.Arr.Ix aD, GHC.Arr.Ix aE, GHC.Arr.Ix aF) => GHC.Arr.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)
- Data.Orphans: instance (GHC.Base.Monoid a, GHC.Base.Monoid b) => GHC.Base.Applicative ((,,) a b)
- Data.Orphans: instance (GHC.Base.Monoid a, GHC.Base.Monoid b) => GHC.Base.Monad ((,,) a b)
- Data.Orphans: instance (GHC.Base.Monoid a, GHC.Base.Monoid b, GHC.Base.Monoid c) => GHC.Base.Applicative ((,,,) a b c)
- Data.Orphans: instance (GHC.Base.Monoid a, GHC.Base.Monoid b, GHC.Base.Monoid c) => GHC.Base.Monad ((,,,) a b c)
- Data.Orphans: instance Data.Bits.Bits a => Data.Bits.Bits (Data.Ord.Down a)
- Data.Orphans: instance Data.Bits.FiniteBits a => Data.Bits.FiniteBits (Data.Ord.Down a)
- Data.Orphans: instance Data.Data.Data a => Data.Data.Data (Control.Applicative.ZipList a)
- Data.Orphans: instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Data.Ord.Down a)
- Data.Orphans: instance GHC.Arr.Ix a => GHC.Arr.Ix (Data.Ord.Down a)
- Data.Orphans: instance GHC.Base.Alternative m => GHC.Base.Alternative (Control.Arrow.Kleisli m a)
- Data.Orphans: instance GHC.Base.Applicative m => GHC.Base.Applicative (Control.Arrow.Kleisli m a)
- Data.Orphans: instance GHC.Base.Functor ((,,) a b)
- Data.Orphans: instance GHC.Base.Functor ((,,,) a b c)
- Data.Orphans: instance GHC.Base.Functor m => GHC.Base.Functor (Control.Arrow.Kleisli m a)
- Data.Orphans: instance GHC.Base.Monad m => GHC.Base.Monad (Control.Arrow.Kleisli m a)
- Data.Orphans: instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Control.Arrow.Kleisli m a)
- Data.Orphans: instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Data.Ord.Down a)
- Data.Orphans: instance GHC.Enum.Enum a => GHC.Enum.Enum (Data.Ord.Down a)
- Data.Orphans: instance GHC.Exts.IsList (Control.Applicative.ZipList a)
- Data.Orphans: instance GHC.Float.Floating a => GHC.Float.Floating (Data.Ord.Down a)
- Data.Orphans: instance GHC.Float.RealFloat a => GHC.Float.RealFloat (Data.Ord.Down a)
- Data.Orphans: instance GHC.Real.Fractional a => GHC.Real.Fractional (Data.Ord.Down a)
- Data.Orphans: instance GHC.Real.Integral a => GHC.Real.Integral (Data.Ord.Down a)
- Data.Orphans: instance GHC.Real.Real a => GHC.Real.Real (Data.Ord.Down a)
- Data.Orphans: instance GHC.Real.RealFrac a => GHC.Real.RealFrac (Data.Ord.Down a)
- Data.Orphans: instance forall k1 k2 (f :: k2 -> *) (g :: k1 -> k2). Data.Type.Equality.TestEquality f => Data.Type.Equality.TestEquality (Data.Functor.Compose.Compose f g)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7, GHC.Ix.Ix a8) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7, a8)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7, GHC.Ix.Ix a8, GHC.Ix.Ix a9) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7, GHC.Ix.Ix a8, GHC.Ix.Ix a9, GHC.Ix.Ix aA) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7, GHC.Ix.Ix a8, GHC.Ix.Ix a9, GHC.Ix.Ix aA, GHC.Ix.Ix aB) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7, GHC.Ix.Ix a8, GHC.Ix.Ix a9, GHC.Ix.Ix aA, GHC.Ix.Ix aB, GHC.Ix.Ix aC) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7, GHC.Ix.Ix a8, GHC.Ix.Ix a9, GHC.Ix.Ix aA, GHC.Ix.Ix aB, GHC.Ix.Ix aC, GHC.Ix.Ix aD) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7, GHC.Ix.Ix a8, GHC.Ix.Ix a9, GHC.Ix.Ix aA, GHC.Ix.Ix aB, GHC.Ix.Ix aC, GHC.Ix.Ix aD, GHC.Ix.Ix aE) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)
+ Data.Orphans: instance (GHC.Ix.Ix a1, GHC.Ix.Ix a2, GHC.Ix.Ix a3, GHC.Ix.Ix a4, GHC.Ix.Ix a5, GHC.Ix.Ix a6, GHC.Ix.Ix a7, GHC.Ix.Ix a8, GHC.Ix.Ix a9, GHC.Ix.Ix aA, GHC.Ix.Ix aB, GHC.Ix.Ix aC, GHC.Ix.Ix aD, GHC.Ix.Ix aE, GHC.Ix.Ix aF) => GHC.Ix.Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)
Files
- CHANGES.markdown +4/−0
- README.markdown +1/−0
- base-orphans.cabal +2/−2
- src/Data/Orphans.hs +11/−0
CHANGES.markdown view
@@ -1,3 +1,7 @@+## Changes in 0.8.4 [2020.12.09]+ - Backport the `Ord` instances for `TyCon` and `TypeRep` to be available on+ GHC 7.0.+ ## Changes in 0.8.3 [2020.09.30] - Backport new instances from GHC 9.0/`base-4.15` * `MonadFix` and `MonadZip` instances for `Complex`
README.markdown view
@@ -80,6 +80,7 @@ * `Storable` instance for `()`, `Complex`, and `Ratio` * `TestEquality` instance for `Compose` * `Traversable` instance for `Either`, `(,)` and `Const`+ * `Ord` instance for `TyCon` and `TypeRep`. * `Typeable` instance for most data types, typeclasses, and promoted data constructors (when possible) ## What is not covered
base-orphans.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 55f37cf3d5ba9e06b928b53e1025ae733e222f62c44e67304b8819d4fe74f383+-- hash: 3f7729521eafb32086f9ec5393064162845096085d8c2302ff44044aecc88db3 name: base-orphans-version: 0.8.3+version: 0.8.4 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.
src/Data/Orphans.hs view
@@ -130,6 +130,17 @@ instance Applicative (Lazy.ST s) where pure = return (<*>) = ap++instance Ord TyCon where+ compare x y = compare (tyConString x) (tyConString y)++-- http://hackage.haskell.org/package/base-4.3.0.0/docs/Data-Typeable.html#t:TypeRep+-- Notice that the `TypeRep` constructor is not exported+-- and no pure accessor to its `Key` field is provided.+instance Ord TypeRep where+ compare x y =+ compare (typeRepTyCon x) (typeRepTyCon x) `mappend`+ compare (typeRepArgs x) (typeRepArgs y) #endif -- These instances are only valid if Bits isn't a subclass of Num (as Bool is