packages feed

base-orphans 0.6 → 0.7

raw patch · 5 files changed

+145/−38 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Data.Orphans: instance Data.Functor.Classes.Eq1 Data.List.NonEmpty.NonEmpty
- Data.Orphans: instance Data.Functor.Classes.Ord1 Data.List.NonEmpty.NonEmpty
- Data.Orphans: instance Data.Functor.Classes.Read1 Data.List.NonEmpty.NonEmpty
- Data.Orphans: instance Data.Functor.Classes.Show1 Data.List.NonEmpty.NonEmpty
- Data.Orphans: instance Data.Semigroup.Semigroup GHC.Event.Internal.Event
- Data.Orphans: instance Data.Semigroup.Semigroup GHC.Event.Internal.Lifetime
- Data.Orphans: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (GHC.Types.IO a)
- Data.Orphans: instance forall k (k1 :: k) k2 a (b :: k2). (Data.Typeable.Internal.Typeable k2, Data.Data.Data a, Data.Typeable.Internal.Typeable b) => Data.Data.Data (Data.Functor.Const.Const a b)
+ Data.Orphans: instance Control.Monad.Fail.MonadFail (GHC.ST.ST s)
+ Data.Orphans: instance Data.Data.Data Foreign.Ptr.IntPtr
+ Data.Orphans: instance Data.Data.Data Foreign.Ptr.WordPtr
+ Data.Orphans: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Data.Ord.Down a)
+ Data.Orphans: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (GHC.ST.ST s a)
+ Data.Orphans: instance GHC.Base.Alternative Control.Applicative.ZipList
+ Data.Orphans: instance GHC.Base.Applicative Data.Ord.Down
+ Data.Orphans: instance GHC.Base.Functor Data.Ord.Down
+ Data.Orphans: instance GHC.Base.Monad Data.Ord.Down
+ Data.Orphans: instance GHC.Base.Monoid a => GHC.Base.Monoid (Data.Ord.Down a)
+ Data.Orphans: instance GHC.Base.Monoid a => GHC.Base.Monoid (GHC.ST.ST s a)
+ Data.Orphans: instance GHC.Num.Num a => GHC.Num.Num (Data.Ord.Down a)

Files

CHANGES.markdown view
@@ -1,3 +1,11 @@+## Changes in 0.7 [2018.03.08]+ - Backported new instances from GHC 8.4/`base-4.11`+   * `Alternative` instance for `ZipList`+   * `Data` instance for `IntPtr` and `WordPtr`+   * `Num`, `Functor`, `Applicative`, `Monad`, `Semigroup`, and `Monoid`+     instances for `Data.Ord.Down`+   * `MonadFail`, `Semigroup`, and `Monoid` instances for strict `ST`+ ## Changes in 0.6 [2017.04.10]  - Backported new instances from GHC 8.2/`base-4.10`    (see https://github.com/haskell-compat/base-orphans/issues/39):
README.markdown view
@@ -33,6 +33,7 @@   * `Alternative`, `MonadPlus`, and `MonadZip` instances for `Proxy`  * `Alternative`, `Applicative`, `Bounded`, `Data`, `Enum`, `Foldable`, `Functor`, `Ix`, `Monad`, `MonadFix`, `MonadPlus`, `MonadZip`, and `Traversable` instances for data types in `GHC.Generics`+ * `Alternative`, `Eq`, `Ord`, `Read`, `Show`, `Foldable`, and `Traversable` instances for `ZipList`  * `Applicative` and `Alternative` instances for `ReadP` and `ReadPrec`  * `Applicative` instance for strict and lazy `ST`  * `Applicative`, `Foldable`, `Functor`, `Monad`, and `Traversable` instances for `Complex`,@@ -40,25 +41,25 @@  * `Bits` instance for `Bool`  * `Bits`, `Bounded`, and `Integral` instances for `CDev`  * `Bits`, `Bounded`, `Enum`, `FiniteBits`, `Floating`, `Fractional`, `Integral`, `IsString`, `Ix`, `Num`, `Real`, `RealFloat`, `RealFrac`, and `Storable` instances for `Const` and `Identity`- * `Data` instances for `All`, `Any`, and `Const`+ * `Data` instances for `All`, `Any`, and `Const`, `IntPtr`, and `WordPtr`  * `Data`, `MonadFix` and `MonadZip` instances for `Alt`, `Dual`, `First`, `Last`,    `Product`, and `Sum`  * `Data` and `IsList` instances for `Version`  * `Eq` and `Ord` instances for `Control.Exception.ErrorCall`  * `Eq`, `Ord`, `Read`, and `Show` instances for data types in `GHC.Generics`- * `Eq`, `Ord`, `Read`, `Show`, `Foldable`, and `Traversable` instances for `ZipList`  * `Eq1`, `Ord1`, `Read1`, and `Show1` instances for `NonEmpty`  * `Foldable` instance for `Either`, `(,)` and `Const`  * `Functor` instance for `Handler`, `ArgOrder`, `OptDescr`, and `ArgDescr`  * `Functor`, `Applicative`, `Alternative`, and `MonadPlus` instances for `ArrowMonad`  * `Monad` instance for `(,)`  * `Monad` instance for `WrappedMonad`+ * `MonadFail`, `Monoid`, and `Semigroup` instances for strict `ST`  * `MonadZip` instance for `Maybe`  * `Monoid`, `Eq`, `Ord`, `Read`, and `Show` instances for `Const`  * `Monoid` instances for `Identity` and `IO`  * `Num` instance for `Sum` and `Product`  * `Read` instance for `Fixed`- * `Read` and `Show` instances for `Down`+ * `Applicative`, `Functor`, `Monad`, `Monoid`, `Num`, `Read`, `Semigroup`, and `Show` instances for `Down`  * `Semigroup` instances for `IO`, `Event` and `Lifetime`  * `Show` instance for `Fingerprint`  * `Storable` instance for `()`, `Complex`, and `Ratio`@@ -78,6 +79,8 @@  ## Supported versions of GHC/`base` + * `ghc-8.4.1`  / `base-4.11.0.0`+ * `ghc-8.2.2`  / `base-4.10.1.0`  * `ghc-8.2.1`  / `base-4.10.0.0`  * `ghc-8.0.2`  / `base-4.9.1.0`  * `ghc-8.0.1`  / `base-4.9.0.0`
base-orphans.cabal view
@@ -1,9 +1,11 @@--- This file has been generated from package.yaml by hpack version 0.17.0.+-- This file has been generated from package.yaml by hpack version 0.27.0. -- -- see: https://github.com/sol/hpack+--+-- hash: 41c092a82fb1cbacf3f1eb99d4bdfbdae043e7a56b2a03706c9ea6ece36fda6f  name:                base-orphans-version:             0.6+version:             0.7 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.@@ -23,10 +25,11 @@ license-file:        LICENSE build-type:          Simple cabal-version:       >= 1.10+tested-with:         GHC == 7.0.1,  GHC == 7.0.2,  GHC == 7.0.3,  GHC == 7.0.4 , GHC == 7.2.1,  GHC == 7.2.2 , GHC == 7.4.1,  GHC == 7.4.2 , GHC == 7.6.1,  GHC == 7.6.2,  GHC == 7.6.3 , GHC == 7.8.1,  GHC == 7.8.2,  GHC == 7.8.3,  GHC == 7.8.4 , GHC == 7.10.1, GHC == 7.10.2, GHC == 7.10.3 , GHC == 8.0.1,  GHC == 8.0.2 , GHC == 8.2.1,  GHC == 8.2.2 , GHC == 8.4.1  extra-source-files:-  CHANGES.markdown-  README.markdown+    CHANGES.markdown+    README.markdown  source-repository head   type: git@@ -34,38 +37,40 @@  library   hs-source-dirs:-    src+      src   ghc-options: -Wall   build-depends:-    base >= 4.3 && < 5,-    ghc-prim+      base >=4.3 && <5+    , ghc-prim   exposed-modules:-    Data.Orphans+      Data.Orphans   other-modules:-    Data.Orphans.Prelude+      Data.Orphans.Prelude   default-language: Haskell2010  test-suite spec   type: exitcode-stdio-1.0   main-is: Spec.hs   hs-source-dirs:-    test+      test   ghc-options: -Wall   build-depends:-    base >= 4.3 && < 5,-    base-orphans,-    hspec == 2.*,-    QuickCheck+      QuickCheck+    , base >=4.3 && <5+    , base-orphans+    , hspec ==2.*+  build-tool-depends: hspec-discover:hspec-discover == 2.*   other-modules:-    Control.Applicative.OrphansSpec-    Control.Exception.OrphansSpec-    Data.Bits.OrphansSpec-    Data.Foldable.OrphansSpec-    Data.Monoid.OrphansSpec-    Data.Traversable.OrphansSpec-    Data.Version.OrphansSpec-    Foreign.Storable.OrphansSpec-    GHC.Fingerprint.OrphansSpec-    System.Posix.Types.IntWord-    System.Posix.Types.OrphansSpec+      Control.Applicative.OrphansSpec+      Control.Exception.OrphansSpec+      Data.Bits.OrphansSpec+      Data.Foldable.OrphansSpec+      Data.Monoid.OrphansSpec+      Data.Traversable.OrphansSpec+      Data.Version.OrphansSpec+      Foreign.Storable.OrphansSpec+      GHC.Fingerprint.OrphansSpec+      System.Posix.Types.IntWord+      System.Posix.Types.OrphansSpec+      Paths_base_orphans   default-language: Haskell2010
src/Data/Orphans.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE BangPatterns #-} {-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveFoldable #-}@@ -36,10 +37,6 @@ -} module Data.Orphans () where -#if !(MIN_VERSION_base(4,4,0))-import           Control.Monad.ST as Strict-#endif- #if __GLASGOW_HASKELL__ >= 701 && !(MIN_VERSION_base(4,9,0)) import           GHC.Generics as Generics #endif@@ -49,7 +46,6 @@ #endif  #if !(MIN_VERSION_base(4,9,0))-import           Data.Data as Data import qualified Data.Foldable as F (Foldable(..)) import           Data.Monoid as Monoid import qualified Data.Traversable as T (Traversable(..))@@ -57,6 +53,18 @@ import           Text.Read as Read #endif +#if MIN_VERSION_base(4,9,0) && !(MIN_VERSION_base(4,11,0))+import qualified Control.Monad.Fail as Fail (MonadFail(..))+#endif++#if !(MIN_VERSION_base(4,10,0))+import           Data.Data as Data+#endif++#if !(MIN_VERSION_base(4,11,0))+import           Control.Monad.ST as Strict+#endif+ #if __GLASGOW_HASKELL__ < 710 import           Control.Exception as Exception import           Control.Monad.ST.Lazy as Lazy@@ -69,7 +77,7 @@ # endif #endif -#if !(MIN_VERSION_base(4,10,0))+#if !(MIN_VERSION_base(4,11,0)) import           Data.Orphans.Prelude #endif @@ -935,6 +943,83 @@     (<>) = mappend     stimes = stimesMonoid #  endif+# endif+#endif++#if !(MIN_VERSION_base(4,11,0))+instance Alternative ZipList where+  empty = ZipList []+  ZipList xs <|> ZipList ys = ZipList (xs ++ drop (length xs) ys)++deriving instance Monoid a => Monoid (Down a)+deriving instance Num a => Num (Down a)++instance Functor Down where+    fmap = coerce++instance Applicative Down where+    pure = Down+    (<*>) = coerce++instance Monad Down where+    return = Down+    Down a >>= k = k a++instance Monoid a => Monoid (Strict.ST s a) where+    mempty = pure mempty+    mappend = liftA2 mappend++# if MIN_VERSION_base(4,9,0)+instance Fail.MonadFail (Strict.ST s) where+    fail s = errorWithoutStackTrace s++deriving instance Semigroup a => Semigroup (Down a)++instance Semigroup a => Semigroup (Strict.ST s a) where+    (<>) = liftA2 (<>)+# endif++# if MIN_VERSION_base(4,10,0)+deriving instance Data IntPtr+deriving instance Data WordPtr+# else+-- The constructors for IntPtr and WordPtr aren't exposed on older versions+-- of base, so we're forced to hand-roll the Data instances here+instance Data IntPtr where+  gfoldl k z iptr = z intPtr `k` unIntPtr iptr+  gunfold k z _ = k (z intPtr)+  toConstr !_ = cIntPtr+  dataTypeOf _ = tIntPtr++intPtr :: Int -> IntPtr+intPtr = unsafeCoerce++unIntPtr :: IntPtr -> Int+unIntPtr = unsafeCoerce++tIntPtr :: DataType+tIntPtr = mkDataType "IntPtr" [cIntPtr]++cIntPtr :: Constr+cIntPtr = mkConstr tIntPtr "IntPtr" [] Data.Prefix++instance Data WordPtr where+  gfoldl k z wptr = z wordPtr `k` unWordPtr wptr+  gunfold k z _ = k (z wordPtr)+  toConstr !_ = cWordPtr+  dataTypeOf _ = tWordPtr++wordPtr :: Word -> WordPtr+wordPtr = unsafeCoerce++unWordPtr :: WordPtr -> Word+unWordPtr = unsafeCoerce++tWordPtr :: DataType+tWordPtr = mkDataType "WordPtr" [cWordPtr]++cWordPtr :: Constr+cWordPtr = mkConstr tWordPtr "WordPtr" [] Data.Prefix # endif #endif 
src/Data/Orphans/Prelude.hs view
@@ -15,7 +15,7 @@ Note that this module does not export any modules that could introduce name clashes. -} module Data.Orphans.Prelude-#if MIN_VERSION_base(4,10,0)+#if MIN_VERSION_base(4,11,0)     () where #else     (module OrphansPrelude, realPart, imagPart) where@@ -30,7 +30,7 @@ import Data.Bits as OrphansPrelude import Data.Char as OrphansPrelude import Data.Complex as OrphansPrelude (Complex(..))-import Data.Data as OrphansPrelude (Data)+import Data.Data as OrphansPrelude (Data(..), Constr, DataType, mkConstr, mkDataType) import Data.Fixed as OrphansPrelude import Data.Int as OrphansPrelude import Data.Ix as OrphansPrelude@@ -42,7 +42,7 @@ import Foreign.C.Error as OrphansPrelude import Foreign.C.Types as OrphansPrelude import Foreign.Marshal.Pool as OrphansPrelude-import Foreign.Ptr as OrphansPrelude (castPtr)+import Foreign.Ptr as OrphansPrelude import Foreign.Storable as OrphansPrelude  import GHC.Base as OrphansPrelude@@ -75,14 +75,17 @@  # if MIN_VERSION_base(4,4,0) import Control.Monad.Zip as OrphansPrelude-import Data.Typeable.Internal as OrphansPrelude import GHC.Fingerprint as OrphansPrelude import GHC.IO.Encoding.Failure as OrphansPrelude  #  if !defined(mingw32_HOST_OS) && !defined(__GHCJS__) import GHC.Event as OrphansPrelude #  endif++# if !(MIN_VERSION_base(4,10,0))+import Data.Typeable.Internal as OrphansPrelude # endif+# endif  # if MIN_VERSION_base(4,5,0) import GHC.Stack as OrphansPrelude@@ -90,8 +93,11 @@ # endif  # if MIN_VERSION_base(4,6,0)+import Data.Ord as OrphansPrelude (Down(..)) import GHC.GHCi as OrphansPrelude import GHC.TypeLits as OrphansPrelude hiding (type (*))+# else+import GHC.Exts as OrphansPrelude (Down(..)) # endif  # if MIN_VERSION_base(4,6,0) && !(MIN_VERSION_base(4,8,2))