base-compat-batteries (empty) → 0.10.0
raw patch · 130 files changed
+1674/−0 lines, 130 filesdep +QuickCheckdep +basedep +base-compatsetup-changed
Dependencies added: QuickCheck, base, base-compat, base-compat-batteries, bifunctors, fail, hspec, nats, semigroups, tagged, transformers, transformers-compat, void
Files
- CHANGES.markdown +5/−0
- LICENSE +19/−0
- README.markdown +34/−0
- Setup.lhs +3/−0
- base-compat-batteries.cabal +223/−0
- src/Control/Concurrent/Compat.hs +6/−0
- src/Control/Concurrent/Compat/Repl/Batteries.hs +8/−0
- src/Control/Concurrent/MVar/Compat.hs +6/−0
- src/Control/Concurrent/MVar/Compat/Repl/Batteries.hs +8/−0
- src/Control/Monad/Compat.hs +6/−0
- src/Control/Monad/Compat/Repl/Batteries.hs +8/−0
- src/Control/Monad/Fail/Compat.hs +10/−0
- src/Control/Monad/Fail/Compat/Repl/Batteries.hs +8/−0
- src/Control/Monad/IO/Class/Compat.hs +10/−0
- src/Control/Monad/IO/Class/Compat/Repl/Batteries.hs +8/−0
- src/Control/Monad/ST/Lazy/Unsafe/Compat.hs +6/−0
- src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl/Batteries.hs +8/−0
- src/Control/Monad/ST/Unsafe/Compat.hs +6/−0
- src/Control/Monad/ST/Unsafe/Compat/Repl/Batteries.hs +8/−0
- src/Data/Bifoldable/Compat.hs +10/−0
- src/Data/Bifoldable/Compat/Repl/Batteries.hs +8/−0
- src/Data/Bifunctor/Compat.hs +10/−0
- src/Data/Bifunctor/Compat/Repl/Batteries.hs +8/−0
- src/Data/Bitraversable/Compat.hs +10/−0
- src/Data/Bitraversable/Compat/Repl/Batteries.hs +8/−0
- src/Data/Bits/Compat.hs +6/−0
- src/Data/Bits/Compat/Repl/Batteries.hs +8/−0
- src/Data/Bool/Compat.hs +6/−0
- src/Data/Bool/Compat/Repl/Batteries.hs +8/−0
- src/Data/Complex/Compat.hs +6/−0
- src/Data/Complex/Compat/Repl/Batteries.hs +8/−0
- src/Data/Either/Compat.hs +6/−0
- src/Data/Either/Compat/Repl/Batteries.hs +8/−0
- src/Data/Foldable/Compat.hs +6/−0
- src/Data/Foldable/Compat/Repl/Batteries.hs +8/−0
- src/Data/Function/Compat.hs +6/−0
- src/Data/Function/Compat/Repl/Batteries.hs +8/−0
- src/Data/Functor/Compat.hs +51/−0
- src/Data/Functor/Compat/Repl/Batteries.hs +8/−0
- src/Data/Functor/Compose/Compat.hs +10/−0
- src/Data/Functor/Compose/Compat/Repl/Batteries.hs +8/−0
- src/Data/Functor/Const/Compat.hs +6/−0
- src/Data/Functor/Const/Compat/Repl/Batteries.hs +8/−0
- src/Data/Functor/Identity/Compat.hs +10/−0
- src/Data/Functor/Identity/Compat/Repl/Batteries.hs +8/−0
- src/Data/Functor/Product/Compat.hs +10/−0
- src/Data/Functor/Product/Compat/Repl/Batteries.hs +8/−0
- src/Data/Functor/Sum/Compat.hs +10/−0
- src/Data/Functor/Sum/Compat/Repl/Batteries.hs +8/−0
- src/Data/IORef/Compat.hs +6/−0
- src/Data/IORef/Compat/Repl/Batteries.hs +8/−0
- src/Data/List/Compat.hs +6/−0
- src/Data/List/Compat/Repl/Batteries.hs +8/−0
- src/Data/Monoid/Compat.hs +6/−0
- src/Data/Monoid/Compat/Repl/Batteries.hs +8/−0
- src/Data/Proxy/Compat.hs +10/−0
- src/Data/Proxy/Compat/Repl/Batteries.hs +8/−0
- src/Data/Ratio/Compat.hs +6/−0
- src/Data/Ratio/Compat/Repl/Batteries.hs +8/−0
- src/Data/STRef/Compat.hs +6/−0
- src/Data/STRef/Compat/Repl/Batteries.hs +8/−0
- src/Data/Semigroup/Compat.hs +37/−0
- src/Data/Semigroup/Compat/Repl/Batteries.hs +8/−0
- src/Data/String/Compat.hs +6/−0
- src/Data/String/Compat/Repl/Batteries.hs +8/−0
- src/Data/Type/Coercion/Compat.hs +10/−0
- src/Data/Type/Coercion/Compat/Repl/Batteries.hs +8/−0
- src/Data/Version/Compat.hs +6/−0
- src/Data/Version/Compat/Repl/Batteries.hs +8/−0
- src/Data/Void/Compat.hs +12/−0
- src/Data/Void/Compat/Repl/Batteries.hs +8/−0
- src/Data/Word/Compat.hs +6/−0
- src/Data/Word/Compat/Repl/Batteries.hs +8/−0
- src/Debug/Trace/Compat.hs +6/−0
- src/Debug/Trace/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/Compat.hs +6/−0
- src/Foreign/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/ForeignPtr/Compat.hs +6/−0
- src/Foreign/ForeignPtr/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/ForeignPtr/Safe/Compat.hs +6/−0
- src/Foreign/ForeignPtr/Safe/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/ForeignPtr/Unsafe/Compat.hs +6/−0
- src/Foreign/ForeignPtr/Unsafe/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/Marshal/Alloc/Compat.hs +6/−0
- src/Foreign/Marshal/Alloc/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/Marshal/Array/Compat.hs +6/−0
- src/Foreign/Marshal/Array/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/Marshal/Compat.hs +6/−0
- src/Foreign/Marshal/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/Marshal/Safe/Compat.hs +6/−0
- src/Foreign/Marshal/Safe/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/Marshal/Unsafe/Compat.hs +6/−0
- src/Foreign/Marshal/Unsafe/Compat/Repl/Batteries.hs +8/−0
- src/Foreign/Marshal/Utils/Compat.hs +6/−0
- src/Foreign/Marshal/Utils/Compat/Repl/Batteries.hs +8/−0
- src/Numeric/Compat.hs +6/−0
- src/Numeric/Compat/Repl/Batteries.hs +8/−0
- src/Numeric/Natural/Compat.hs +10/−0
- src/Numeric/Natural/Compat/Repl/Batteries.hs +8/−0
- src/Prelude/Compat.hs +13/−0
- src/Prelude/Compat/Repl/Batteries.hs +8/−0
- src/System/Environment/Compat.hs +6/−0
- src/System/Environment/Compat/Repl/Batteries.hs +8/−0
- src/System/Exit/Compat.hs +6/−0
- src/System/Exit/Compat/Repl/Batteries.hs +8/−0
- src/System/IO/Unsafe/Compat.hs +6/−0
- src/System/IO/Unsafe/Compat/Repl/Batteries.hs +8/−0
- src/Text/Read/Compat.hs +6/−0
- src/Text/Read/Compat/Repl/Batteries.hs +8/−0
- src/Type/Reflection/Compat.hs +34/−0
- src/Type/Reflection/Compat/Repl/Batteries.hs +8/−0
- test/Control/Monad/CompatSpec.hs +16/−0
- test/Data/Bits/CompatSpec.hs +34/−0
- test/Data/Bool/CompatSpec.hs +18/−0
- test/Data/Either/CompatSpec.hs +25/−0
- test/Data/Foldable/CompatSpec.hs +13/−0
- test/Data/Function/CompatSpec.hs +13/−0
- test/Data/Functor/CompatSpec.hs +17/−0
- test/Data/IORef/CompatSpec.hs +22/−0
- test/Data/List/CompatSpec.hs +43/−0
- test/Data/Monoid/CompatSpec.hs +19/−0
- test/Data/STRef/CompatSpec.hs +19/−0
- test/Data/Version/CompatSpec.hs +10/−0
- test/Data/Word/CompatSpec.hs +22/−0
- test/Foreign/Marshal/Alloc/CompatSpec.hs +17/−0
- test/Foreign/Marshal/Utils/CompatSpec.hs +20/−0
- test/Numeric/CompatSpec.hs +24/−0
- test/Spec.hs +1/−0
- test/System/Environment/CompatSpec.hs +126/−0
- test/Text/Read/CompatSpec.hs +24/−0
+ CHANGES.markdown view
@@ -0,0 +1,5 @@+## Changes in 0.10.0 [2018.04.05]+ - Sync with `base-4.11`/GHC 8.4+ - This coincides with the `base-compat-0.10` release. Refer to the+ [`base-compat` changelog](https://github.com/haskell-compat/base-compat/blob/master/base-compat/CHANGES.markdown#changes-in-0100-????????)+ for details.
+ LICENSE view
@@ -0,0 +1,19 @@+Copyright (c) 2012-2018 Simon Hengel <sol@typeful.net> and Ryan Scott <ryan.gl.scott@gmail.com>++Permission is hereby granted, free of charge, to any person obtaining a copy+of this software and associated documentation files (the "Software"), to deal+in the Software without restriction, including without limitation the rights+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+copies of the Software, and to permit persons to whom the Software is+furnished to do so, subject to the following conditions:++The above copyright notice and this permission notice shall be included in+all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+THE SOFTWARE.
+ README.markdown view
@@ -0,0 +1,34 @@+# `base-compat` with extra batteries+[][Hackage: base-compat-batteries]+[](http://packdeps.haskellers.com/reverse/base-compat-batteries)+[][Haskell.org]+[][tl;dr Legal: MIT]++[Hackage: base-compat-batteries]:+ http://hackage.haskell.org/package/base-compat-batteries+ "base-compat-batteries package on Hackage"+[Haskell.org]:+ http://www.haskell.org+ "The Haskell Programming Language"+[tl;dr Legal: MIT]:+ https://tldrlegal.com/license/mit-license+ "MIT License"++## Scope++`base-compat-batteries` provides functions available in later versions of+`base` to a wider range of compilers, without requiring you to use CPP+pragmas in your code.++This package provides the same API as the+[`base-compat`](http://hackage.haskell.org/package/base-compat) library, but+depends on compatibility packages (such as `semigroups`) to offer a wider+support window than `base-compat`, which has no dependencies.++Like `base-compat`, `base-compat-batteries` does not add any orphan instances.+There is a separate package+[`base-orphans`](https://github.com/haskell-compat/base-orphans) for that.++See [here](https://github.com/haskell-compat/base-compat/blob/master/base-compat/README.markdown#dependencies)+for a more comprehensive list of differences between `base-compat` and+`base-compat-batteries`.
+ Setup.lhs view
@@ -0,0 +1,3 @@+#!/usr/bin/env runhaskell+> import Distribution.Simple+> main = defaultMain
+ base-compat-batteries.cabal view
@@ -0,0 +1,223 @@+name: base-compat-batteries+version: 0.10.0+license: MIT+license-file: LICENSE+copyright: (c) 2012-2018 Simon Hengel,+ (c) 2014-2018 João Cristóvão,+ (c) 2015-2018 Ryan Scott+author: Simon Hengel <sol@typeful.net>,+ João Cristóvão <jmacristovao@gmail.com>,+ Ryan Scott <ryan.gl.scott@gmail.com>+maintainer: Simon Hengel <sol@typeful.net>,+ João Cristóvão <jmacristovao@gmail.com>,+ Ryan Scott <ryan.gl.scott@gmail.com>+build-type: Simple+cabal-version: >= 1.8+category: Compatibility+synopsis: base-compat with extra batteries+description: Provides functions available in later versions of @base@ to+ a wider range of compilers, without requiring you to use CPP+ pragmas in your code.+ .+ This package provides the same API as the+ @<http://hackage.haskell.org/package/base-compat base-compat>@+ library, but depends on compatibility packages+ (such as @semigroups@) to offer a wider support window than+ @base-compat@, which has no dependencies. Most of the modules+ in this library have the same names as in @base-compat@+ to make it easier to switch between the two. There also exist+ versions of each module with the suffix @.Repl.Batteries@,+ which are distinct from anything in @base-compat@, to allow+ for easier use in GHCi.+ .+ See+ @<https://github.com/haskell-compat/base-compat/blob/master/base-compat/README.markdown#dependencies here>@+ for a more comprehensive list of differences between+ @base-compat@ and @base-compat-batteries@.+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++source-repository head+ type: git+ location: https://github.com/haskell-compat/base-compat+ subdir: base-compat-batteries++library+ ghc-options:+ -Wall+ build-depends:+ base >= 4.3 && < 5,+ base-compat >= 0.10 && < 0.11+ if !impl(ghc >= 7.8)+ build-depends:+ tagged >= 0.8 && < 0.9+ if !impl(ghc >= 7.10)+ build-depends:+ nats >= 1.1 && < 1.2,+ void >= 0.7 && < 0.8+ if !impl(ghc >= 8.0)+ build-depends:+ fail >= 4.9 && < 4.10,+ semigroups >= 0.16 && < 0.19,+ transformers >= 0.2 && < 0.6,+ transformers-compat >= 0.3 && < 0.7+ if !impl(ghc >= 8.2)+ build-depends:+ bifunctors >= 5.4.1 && < 5.6+ ghc-options:+ -fno-warn-duplicate-exports++ hs-source-dirs:+ src++ exposed-modules:+ Control.Concurrent.Compat+ Control.Concurrent.MVar.Compat+ Control.Monad.Compat+ Control.Monad.Fail.Compat+ Control.Monad.IO.Class.Compat+ Control.Monad.ST.Lazy.Unsafe.Compat+ Control.Monad.ST.Unsafe.Compat+ Data.Bifoldable.Compat+ Data.Bifunctor.Compat+ Data.Bitraversable.Compat+ Data.Bits.Compat+ Data.Bool.Compat+ Data.Complex.Compat+ Data.Either.Compat+ Data.Foldable.Compat+ Data.Function.Compat+ Data.Functor.Compat+ Data.Functor.Compose.Compat+ Data.Functor.Const.Compat+ Data.Functor.Identity.Compat+ Data.Functor.Product.Compat+ Data.Functor.Sum.Compat+ Data.IORef.Compat+ Data.List.Compat+ Data.Monoid.Compat+ Data.Proxy.Compat+ Data.Ratio.Compat+ Data.Semigroup.Compat+ Data.STRef.Compat+ Data.String.Compat+ Data.Type.Coercion.Compat+ Data.Version.Compat+ Data.Void.Compat+ Data.Word.Compat+ Debug.Trace.Compat+ Foreign.Compat+ Foreign.ForeignPtr.Compat+ Foreign.ForeignPtr.Safe.Compat+ Foreign.ForeignPtr.Unsafe.Compat+ Foreign.Marshal.Alloc.Compat+ Foreign.Marshal.Array.Compat+ Foreign.Marshal.Compat+ Foreign.Marshal.Safe.Compat+ Foreign.Marshal.Unsafe.Compat+ Foreign.Marshal.Utils.Compat+ Numeric.Compat+ Numeric.Natural.Compat+ Prelude.Compat+ System.Environment.Compat+ System.Exit.Compat+ System.IO.Unsafe.Compat+ Text.Read.Compat+ Type.Reflection.Compat++ Control.Concurrent.Compat.Repl.Batteries+ Control.Concurrent.MVar.Compat.Repl.Batteries+ Control.Monad.Compat.Repl.Batteries+ Control.Monad.Fail.Compat.Repl.Batteries+ Control.Monad.IO.Class.Compat.Repl.Batteries+ Control.Monad.ST.Lazy.Unsafe.Compat.Repl.Batteries+ Control.Monad.ST.Unsafe.Compat.Repl.Batteries+ Data.Bifoldable.Compat.Repl.Batteries+ Data.Bifunctor.Compat.Repl.Batteries+ Data.Bitraversable.Compat.Repl.Batteries+ Data.Bits.Compat.Repl.Batteries+ Data.Bool.Compat.Repl.Batteries+ Data.Complex.Compat.Repl.Batteries+ Data.Either.Compat.Repl.Batteries+ Data.Foldable.Compat.Repl.Batteries+ Data.Function.Compat.Repl.Batteries+ Data.Functor.Compat.Repl.Batteries+ Data.Functor.Compose.Compat.Repl.Batteries+ Data.Functor.Const.Compat.Repl.Batteries+ Data.Functor.Identity.Compat.Repl.Batteries+ Data.Functor.Product.Compat.Repl.Batteries+ Data.Functor.Sum.Compat.Repl.Batteries+ Data.IORef.Compat.Repl.Batteries+ Data.List.Compat.Repl.Batteries+ Data.Monoid.Compat.Repl.Batteries+ Data.Proxy.Compat.Repl.Batteries+ Data.Ratio.Compat.Repl.Batteries+ Data.Semigroup.Compat.Repl.Batteries+ Data.STRef.Compat.Repl.Batteries+ Data.String.Compat.Repl.Batteries+ Data.Type.Coercion.Compat.Repl.Batteries+ Data.Version.Compat.Repl.Batteries+ Data.Void.Compat.Repl.Batteries+ Data.Word.Compat.Repl.Batteries+ Debug.Trace.Compat.Repl.Batteries+ Foreign.Compat.Repl.Batteries+ Foreign.ForeignPtr.Compat.Repl.Batteries+ Foreign.ForeignPtr.Safe.Compat.Repl.Batteries+ Foreign.ForeignPtr.Unsafe.Compat.Repl.Batteries+ Foreign.Marshal.Alloc.Compat.Repl.Batteries+ Foreign.Marshal.Array.Compat.Repl.Batteries+ Foreign.Marshal.Compat.Repl.Batteries+ Foreign.Marshal.Safe.Compat.Repl.Batteries+ Foreign.Marshal.Unsafe.Compat.Repl.Batteries+ Foreign.Marshal.Utils.Compat.Repl.Batteries+ Numeric.Compat.Repl.Batteries+ Numeric.Natural.Compat.Repl.Batteries+ Prelude.Compat.Repl.Batteries+ System.Environment.Compat.Repl.Batteries+ System.Exit.Compat.Repl.Batteries+ System.IO.Unsafe.Compat.Repl.Batteries+ Text.Read.Compat.Repl.Batteries+ Type.Reflection.Compat.Repl.Batteries+test-suite spec+ type:+ exitcode-stdio-1.0+ ghc-options:+ -Wall+ hs-source-dirs:+ test+ main-is:+ Spec.hs+ other-modules:+ Control.Monad.CompatSpec+ Data.Bits.CompatSpec+ Data.Bool.CompatSpec+ Data.Either.CompatSpec+ Data.Foldable.CompatSpec+ Data.Function.CompatSpec+ Data.Functor.CompatSpec+ Data.IORef.CompatSpec+ Data.List.CompatSpec+ Data.Monoid.CompatSpec+ Data.STRef.CompatSpec+ Data.Version.CompatSpec+ Data.Word.CompatSpec+ Foreign.Marshal.Alloc.CompatSpec+ Foreign.Marshal.Utils.CompatSpec+ Numeric.CompatSpec+ System.Environment.CompatSpec+ Text.Read.CompatSpec+ build-depends:+ base >= 4.3 && < 5+ , base-compat-batteries+ , hspec >= 1.8+ , QuickCheck+ build-tool-depends:+ hspec-discover:hspec-discover >= 1.8
+ src/Control/Concurrent/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Control.Concurrent.Compat (+ module Base+) where++import "base-compat" Control.Concurrent.Compat as Base
+ src/Control/Concurrent/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Control.Concurrent.Compat"+-- from a globally unique namespace.+module Control.Concurrent.Compat.Repl.Batteries (+ module Control.Concurrent.Compat+) where+import "this" Control.Concurrent.Compat
+ src/Control/Concurrent/MVar/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Control.Concurrent.MVar.Compat (+ module Base+) where++import "base-compat" Control.Concurrent.MVar.Compat as Base
+ src/Control/Concurrent/MVar/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Control.Concurrent.MVar.Compat"+-- from a globally unique namespace.+module Control.Concurrent.MVar.Compat.Repl.Batteries (+ module Control.Concurrent.MVar.Compat+) where+import "this" Control.Concurrent.MVar.Compat
+ src/Control/Monad/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Control.Monad.Compat (+ module Base+ ) where++import "base-compat" Control.Monad.Compat as Base
+ src/Control/Monad/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Control.Monad.Compat"+-- from a globally unique namespace.+module Control.Monad.Compat.Repl.Batteries (+ module Control.Monad.Compat+) where+import "this" Control.Monad.Compat
+ src/Control/Monad/Fail/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Control.Monad.Fail.Compat (+ module Base+) where++#if MIN_VERSION_base(4,9,0)+import "base-compat" Control.Monad.Fail.Compat as Base+#else+import "fail" Control.Monad.Fail as Base+#endif
+ src/Control/Monad/Fail/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Control.Monad.Fail.Compat"+-- from a globally unique namespace.+module Control.Monad.Fail.Compat.Repl.Batteries (+ module Control.Monad.Fail.Compat+) where+import "this" Control.Monad.Fail.Compat
+ src/Control/Monad/IO/Class/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Control.Monad.IO.Class.Compat (+ module Base+) where++#if MIN_VERSION_base(4,9,0)+import "base-compat" Control.Monad.IO.Class.Compat as Base+#else+import Control.Monad.IO.Class as Base+#endif
+ src/Control/Monad/IO/Class/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Control.Monad.IO.Class.Compat"+-- from a globally unique namespace.+module Control.Monad.IO.Class.Compat.Repl.Batteries (+ module Control.Monad.IO.Class.Compat+) where+import "this" Control.Monad.IO.Class.Compat
+ src/Control/Monad/ST/Lazy/Unsafe/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Control.Monad.ST.Lazy.Unsafe.Compat (+ module Base+) where++import "base-compat" Control.Monad.ST.Lazy.Unsafe.Compat as Base
+ src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Control.Monad.ST.Lazy.Unsafe.Compat"+-- from a globally unique namespace.+module Control.Monad.ST.Lazy.Unsafe.Compat.Repl.Batteries (+ module Control.Monad.ST.Lazy.Unsafe.Compat+) where+import "this" Control.Monad.ST.Lazy.Unsafe.Compat
+ src/Control/Monad/ST/Unsafe/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Control.Monad.ST.Unsafe.Compat (+ module Base+) where++import "base-compat" Control.Monad.ST.Unsafe.Compat as Base
+ src/Control/Monad/ST/Unsafe/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Control.Monad.ST.Unsafe.Compat"+-- from a globally unique namespace.+module Control.Monad.ST.Unsafe.Compat.Repl.Batteries (+ module Control.Monad.ST.Unsafe.Compat+) where+import "this" Control.Monad.ST.Unsafe.Compat
+ src/Data/Bifoldable/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Bifoldable.Compat (+ module Base+) where++#if MIN_VERSION_base(4,10,0)+import "base-compat" Data.Bifoldable.Compat as Base+#else+import "bifunctors" Data.Bifoldable as Base+#endif
+ src/Data/Bifoldable/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Bifoldable.Compat"+-- from a globally unique namespace.+module Data.Bifoldable.Compat.Repl.Batteries (+ module Data.Bifoldable.Compat+) where+import "this" Data.Bifoldable.Compat
+ src/Data/Bifunctor/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Bifunctor.Compat (+ module Base+) where++#if MIN_VERSION_base(4,8,0)+import "base-compat" Data.Bifunctor.Compat as Base+#else+import "bifunctors" Data.Bifunctor as Base+#endif
+ src/Data/Bifunctor/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Bifunctor.Compat"+-- from a globally unique namespace.+module Data.Bifunctor.Compat.Repl.Batteries (+ module Data.Bifunctor.Compat+) where+import "this" Data.Bifunctor.Compat
+ src/Data/Bitraversable/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Bitraversable.Compat (+ module Base+) where++#if MIN_VERSION_base(4,10,0)+import "base-compat" Data.Bitraversable.Compat as Base+#else+import "bifunctors" Data.Bitraversable as Base+#endif
+ src/Data/Bitraversable/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Bitraversable.Compat"+-- from a globally unique namespace.+module Data.Bitraversable.Compat.Repl.Batteries (+ module Data.Bitraversable.Compat+) where+import "this" Data.Bitraversable.Compat
+ src/Data/Bits/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Bits.Compat (+ module Base+) where++import "base-compat" Data.Bits.Compat as Base
+ src/Data/Bits/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Bits.Compat"+-- from a globally unique namespace.+module Data.Bits.Compat.Repl.Batteries (+ module Data.Bits.Compat+) where+import "this" Data.Bits.Compat
+ src/Data/Bool/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Bool.Compat (+ module Base+) where++import "base-compat" Data.Bool.Compat as Base
+ src/Data/Bool/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Bool.Compat"+-- from a globally unique namespace.+module Data.Bool.Compat.Repl.Batteries (+ module Data.Bool.Compat+) where+import "this" Data.Bool.Compat
+ src/Data/Complex/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Complex.Compat (+ module Base+) where++import "base-compat" Data.Complex.Compat as Base
+ src/Data/Complex/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Complex.Compat"+-- from a globally unique namespace.+module Data.Complex.Compat.Repl.Batteries (+ module Data.Complex.Compat+) where+import "this" Data.Complex.Compat
+ src/Data/Either/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Either.Compat (+ module Base+) where++import "base-compat" Data.Either.Compat as Base
+ src/Data/Either/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Either.Compat"+-- from a globally unique namespace.+module Data.Either.Compat.Repl.Batteries (+ module Data.Either.Compat+) where+import "this" Data.Either.Compat
+ src/Data/Foldable/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Foldable.Compat (+ module Base+) where++import "base-compat" Data.Foldable.Compat as Base
+ src/Data/Foldable/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Foldable.Compat"+-- from a globally unique namespace.+module Data.Foldable.Compat.Repl.Batteries (+ module Data.Foldable.Compat+) where+import "this" Data.Foldable.Compat
+ src/Data/Function/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Function.Compat (+ module Base+) where++import "base-compat" Data.Function.Compat as Base
+ src/Data/Function/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Function.Compat"+-- from a globally unique namespace.+module Data.Function.Compat.Repl.Batteries (+ module Data.Function.Compat+) where+import "this" Data.Function.Compat
+ src/Data/Functor/Compat.hs view
@@ -0,0 +1,51 @@+{-# LANGUAGE CPP, NoImplicitPrelude #-}+module Data.Functor.Compat (+ module Base+, Functor(..)+, ($>)+, void+, (<&>)+) where+import Data.Functor as Base++#if !(MIN_VERSION_base(4,7,0))+import Control.Monad.Compat (void)+import Data.Function (flip)+#endif++#if !(MIN_VERSION_base(4,7,0))+infixl 4 $>++-- | Flipped version of '$>'.+--+-- /Since: 4.7.0.0/+($>) :: Functor f => f a -> b -> f b+($>) = flip (<$)+#endif++#if !(MIN_VERSION_base(4,11,0))+-- | Flipped version of '<$>'.+--+-- @+-- ('<&>') = 'flip' 'fmap'+-- @+--+-- /Since: 4.11.0.0/+--+-- ==== __Examples__+-- Apply @(+1)@ to a list, a 'Data.Maybe.Just' and a 'Data.Either.Right':+--+-- >>> Just 2 <&> (+1)+-- Just 3+--+-- >>> [1,2,3] <&> (+1)+-- [2,3,4]+--+-- >>> Right 3 <&> (+1)+-- Right 4+--+(<&>) :: Functor f => f a -> (a -> b) -> f b+as <&> f = f <$> as++infixl 1 <&>+#endif
+ src/Data/Functor/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Functor.Compat"+-- from a globally unique namespace.+module Data.Functor.Compat.Repl.Batteries (+ module Data.Functor.Compat+) where+import "this" Data.Functor.Compat
+ src/Data/Functor/Compose/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Functor.Compose.Compat (+ module Base+) where++#if MIN_VERSION_base(4,9,0)+import "base-compat" Data.Functor.Compose.Compat as Base+#else+import Data.Functor.Compose as Base+#endif
+ src/Data/Functor/Compose/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Functor.Compose.Compat"+-- from a globally unique namespace.+module Data.Functor.Compose.Compat.Repl.Batteries (+ module Data.Functor.Compose.Compat+) where+import "this" Data.Functor.Compose.Compat
+ src/Data/Functor/Const/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Functor.Const.Compat (+ module Base+) where++import "base-compat" Data.Functor.Const.Compat as Base
+ src/Data/Functor/Const/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Functor.Const.Compat"+-- from a globally unique namespace.+module Data.Functor.Const.Compat.Repl.Batteries (+ module Data.Functor.Const.Compat+) where+import "this" Data.Functor.Const.Compat
+ src/Data/Functor/Identity/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Functor.Identity.Compat (+ module Base+) where++#if MIN_VERSION_base(4,8,0)+import "base-compat" Data.Functor.Identity.Compat as Base+#else+import Data.Functor.Identity as Base+#endif
+ src/Data/Functor/Identity/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Functor.Identity.Compat"+-- from a globally unique namespace.+module Data.Functor.Identity.Compat.Repl.Batteries (+ module Data.Functor.Identity.Compat+) where+import "this" Data.Functor.Identity.Compat
+ src/Data/Functor/Product/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Functor.Product.Compat (+ module Base+) where++#if MIN_VERSION_base(4,9,0)+import "base-compat" Data.Functor.Product.Compat as Base+#else+import Data.Functor.Product as Base+#endif
+ src/Data/Functor/Product/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Functor.Product.Compat"+-- from a globally unique namespace.+module Data.Functor.Product.Compat.Repl.Batteries (+ module Data.Functor.Product.Compat+) where+import "this" Data.Functor.Product.Compat
+ src/Data/Functor/Sum/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Functor.Sum.Compat (+ module Base+) where++#if MIN_VERSION_base(4,9,0)+import "base-compat" Data.Functor.Sum.Compat as Base+#else+import Data.Functor.Sum as Base+#endif
+ src/Data/Functor/Sum/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Functor.Sum.Compat"+-- from a globally unique namespace.+module Data.Functor.Sum.Compat.Repl.Batteries (+ module Data.Functor.Sum.Compat+) where+import "this" Data.Functor.Sum.Compat
+ src/Data/IORef/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.IORef.Compat (+ module Base+) where++import "base-compat" Data.IORef.Compat as Base
+ src/Data/IORef/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.IORef.Compat"+-- from a globally unique namespace.+module Data.IORef.Compat.Repl.Batteries (+ module Data.IORef.Compat+) where+import "this" Data.IORef.Compat
+ src/Data/List/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.List.Compat (+ module Base+) where++import "base-compat" Data.List.Compat as Base
+ src/Data/List/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.List.Compat"+-- from a globally unique namespace.+module Data.List.Compat.Repl.Batteries (+ module Data.List.Compat+) where+import "this" Data.List.Compat
+ src/Data/Monoid/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Monoid.Compat (+ module Base+) where++import "base-compat" Data.Monoid.Compat as Base
+ src/Data/Monoid/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Monoid.Compat"+-- from a globally unique namespace.+module Data.Monoid.Compat.Repl.Batteries (+ module Data.Monoid.Compat+) where+import "this" Data.Monoid.Compat
+ src/Data/Proxy/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Proxy.Compat (+ module Base+) where++#if MIN_VERSION_base(4,7,0)+import "base-compat" Data.Proxy.Compat as Base+#else+import "tagged" Data.Proxy as Base+#endif
+ src/Data/Proxy/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Proxy.Compat"+-- from a globally unique namespace.+module Data.Proxy.Compat.Repl.Batteries (+ module Data.Proxy.Compat+) where+import "this" Data.Proxy.Compat
+ src/Data/Ratio/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Ratio.Compat (+ module Base+) where++import "base-compat" Data.Ratio.Compat as Base
+ src/Data/Ratio/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Ratio.Compat"+-- from a globally unique namespace.+module Data.Ratio.Compat.Repl.Batteries (+ module Data.Ratio.Compat+) where+import "this" Data.Ratio.Compat
+ src/Data/STRef/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.STRef.Compat (+ module Base+) where++import "base-compat" Data.STRef.Compat as Base
+ src/Data/STRef/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.STRef.Compat"+-- from a globally unique namespace.+module Data.STRef.Compat.Repl.Batteries (+ module Data.STRef.Compat+) where+import "this" Data.STRef.Compat
+ src/Data/Semigroup/Compat.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Semigroup.Compat (+ Semigroup(..)+ , stimesMonoid+ , stimesIdempotent+ , stimesIdempotentMonoid+ , mtimesDefault+ -- * Semigroups+ , Min(..)+ , Max(..)+ , First(..)+ , Last(..)+ , WrappedMonoid(..)+ -- * Re-exported monoids from Data.Monoid+ , Dual(..)+ , Endo(..)+ , All(..)+ , Any(..)+ , Sum(..)+ , Product(..)+ -- * A better monoid for Maybe+ , Option(..)+ , option+ -- * Difference lists of a semigroup+ , diff+ , cycle1+ -- * ArgMin, ArgMax+ , Arg(..)+ , ArgMin+ , ArgMax+ ) where++#if MIN_VERSION_base(4,9,0)+import "base-compat" Data.Semigroup.Compat+#else+import "semigroups" Data.Semigroup+#endif
+ src/Data/Semigroup/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Semigroup.Compat"+-- from a globally unique namespace.+module Data.Semigroup.Compat.Repl.Batteries (+ module Data.Semigroup.Compat+) where+import "this" Data.Semigroup.Compat
+ src/Data/String/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.String.Compat (+ module Base+) where++import "base-compat" Data.String.Compat as Base
+ src/Data/String/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.String.Compat"+-- from a globally unique namespace.+module Data.String.Compat.Repl.Batteries (+ module Data.String.Compat+) where+import "this" Data.String.Compat
+ src/Data/Type/Coercion/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Type.Coercion.Compat (+#if MIN_VERSION_base(4,7,0)+ module Base+#endif+) where++#if MIN_VERSION_base(4,7,0)+import "base-compat" Data.Type.Coercion.Compat as Base+#endif
+ src/Data/Type/Coercion/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Type.Coercion.Compat"+-- from a globally unique namespace.+module Data.Type.Coercion.Compat.Repl.Batteries (+ module Data.Type.Coercion.Compat+) where+import "this" Data.Type.Coercion.Compat
+ src/Data/Version/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Version.Compat (+ module Base+) where++import "base-compat" Data.Version.Compat as Base
+ src/Data/Version/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Version.Compat"+-- from a globally unique namespace.+module Data.Version.Compat.Repl.Batteries (+ module Data.Version.Compat+) where+import "this" Data.Version.Compat
+ src/Data/Void/Compat.hs view
@@ -0,0 +1,12 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Void.Compat (+ Void+, absurd+, vacuous+) where++#if MIN_VERSION_base(4,8,0)+import "base-compat" Data.Void.Compat as Base+#else+import "void" Data.Void as Base+#endif
+ src/Data/Void/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Void.Compat"+-- from a globally unique namespace.+module Data.Void.Compat.Repl.Batteries (+ module Data.Void.Compat+) where+import "this" Data.Void.Compat
+ src/Data/Word/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Data.Word.Compat (+ module Base+) where++import "base-compat" Data.Word.Compat as Base
+ src/Data/Word/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Data.Word.Compat"+-- from a globally unique namespace.+module Data.Word.Compat.Repl.Batteries (+ module Data.Word.Compat+) where+import "this" Data.Word.Compat
+ src/Debug/Trace/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Debug.Trace.Compat (+ module Base+) where++import "base-compat" Debug.Trace.Compat as Base
+ src/Debug/Trace/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Debug.Trace.Compat"+-- from a globally unique namespace.+module Debug.Trace.Compat.Repl.Batteries (+ module Debug.Trace.Compat+) where+import "this" Debug.Trace.Compat
+ src/Foreign/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.Compat (+ module Base+) where++import "base-compat" Foreign.Compat as Base
+ src/Foreign/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.Compat"+-- from a globally unique namespace.+module Foreign.Compat.Repl.Batteries (+ module Foreign.Compat+) where+import "this" Foreign.Compat
+ src/Foreign/ForeignPtr/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.ForeignPtr.Compat (+ module Base+) where++import "base-compat" Foreign.ForeignPtr.Compat as Base
+ src/Foreign/ForeignPtr/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.ForeignPtr.Compat"+-- from a globally unique namespace.+module Foreign.ForeignPtr.Compat.Repl.Batteries (+ module Foreign.ForeignPtr.Compat+) where+import "this" Foreign.ForeignPtr.Compat
+ src/Foreign/ForeignPtr/Safe/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.ForeignPtr.Safe.Compat (+ module Base+) where++import "base-compat" Foreign.ForeignPtr.Safe.Compat as Base
+ src/Foreign/ForeignPtr/Safe/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.ForeignPtr.Safe.Compat"+-- from a globally unique namespace.+module Foreign.ForeignPtr.Safe.Compat.Repl.Batteries (+ module Foreign.ForeignPtr.Safe.Compat+) where+import "this" Foreign.ForeignPtr.Safe.Compat
+ src/Foreign/ForeignPtr/Unsafe/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.ForeignPtr.Unsafe.Compat (+ module Base+) where++import "base-compat" Foreign.ForeignPtr.Unsafe.Compat as Base
+ src/Foreign/ForeignPtr/Unsafe/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.ForeignPtr.Unsafe.Compat"+-- from a globally unique namespace.+module Foreign.ForeignPtr.Unsafe.Compat.Repl.Batteries (+ module Foreign.ForeignPtr.Unsafe.Compat+) where+import "this" Foreign.ForeignPtr.Unsafe.Compat
+ src/Foreign/Marshal/Alloc/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.Marshal.Alloc.Compat (+ module Base+) where++import "base-compat" Foreign.Marshal.Alloc.Compat as Base
+ src/Foreign/Marshal/Alloc/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.Marshal.Alloc.Compat"+-- from a globally unique namespace.+module Foreign.Marshal.Alloc.Compat.Repl.Batteries (+ module Foreign.Marshal.Alloc.Compat+) where+import "this" Foreign.Marshal.Alloc.Compat
+ src/Foreign/Marshal/Array/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.Marshal.Array.Compat (+ module Base+) where++import "base-compat" Foreign.Marshal.Array.Compat as Base
+ src/Foreign/Marshal/Array/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.Marshal.Array.Compat"+-- from a globally unique namespace.+module Foreign.Marshal.Array.Compat.Repl.Batteries (+ module Foreign.Marshal.Array.Compat+) where+import "this" Foreign.Marshal.Array.Compat
+ src/Foreign/Marshal/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.Marshal.Compat (+ module Base+) where++import "base-compat" Foreign.Marshal.Compat as Base
+ src/Foreign/Marshal/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.Marshal.Compat"+-- from a globally unique namespace.+module Foreign.Marshal.Compat.Repl.Batteries (+ module Foreign.Marshal.Compat+) where+import "this" Foreign.Marshal.Compat
+ src/Foreign/Marshal/Safe/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.Marshal.Safe.Compat (+ module Base+) where++import "base-compat" Foreign.Marshal.Safe.Compat as Base
+ src/Foreign/Marshal/Safe/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.Marshal.Safe.Compat"+-- from a globally unique namespace.+module Foreign.Marshal.Safe.Compat.Repl.Batteries (+ module Foreign.Marshal.Safe.Compat+) where+import "this" Foreign.Marshal.Safe.Compat
+ src/Foreign/Marshal/Unsafe/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.Marshal.Unsafe.Compat (+ module Base+) where++import "base-compat" Foreign.Marshal.Unsafe.Compat as Base
+ src/Foreign/Marshal/Unsafe/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.Marshal.Unsafe.Compat"+-- from a globally unique namespace.+module Foreign.Marshal.Unsafe.Compat.Repl.Batteries (+ module Foreign.Marshal.Unsafe.Compat+) where+import "this" Foreign.Marshal.Unsafe.Compat
+ src/Foreign/Marshal/Utils/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Foreign.Marshal.Utils.Compat (+ module Base+) where++import "base-compat" Foreign.Marshal.Utils.Compat as Base
+ src/Foreign/Marshal/Utils/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Foreign.Marshal.Utils.Compat"+-- from a globally unique namespace.+module Foreign.Marshal.Utils.Compat.Repl.Batteries (+ module Foreign.Marshal.Utils.Compat+) where+import "this" Foreign.Marshal.Utils.Compat
+ src/Numeric/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Numeric.Compat (+ module Base+) where++import "base-compat" Numeric.Compat as Base
+ src/Numeric/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Numeric.Compat"+-- from a globally unique namespace.+module Numeric.Compat.Repl.Batteries (+ module Numeric.Compat+) where+import "this" Numeric.Compat
+ src/Numeric/Natural/Compat.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Numeric.Natural.Compat (+ module Base+) where++#if MIN_VERSION_base(4,8,0)+import "base-compat" Numeric.Natural.Compat as Base+#else+import "nats" Numeric.Natural as Base+#endif
+ src/Numeric/Natural/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Numeric.Natural.Compat"+-- from a globally unique namespace.+module Numeric.Natural.Compat.Repl.Batteries (+ module Numeric.Natural.Compat+) where+import "this" Numeric.Natural.Compat
+ src/Prelude/Compat.hs view
@@ -0,0 +1,13 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Prelude.Compat (+ module Base+#if !(MIN_VERSION_base(4,9,0))+, Semi.Semigroup((Semi.<>))+#endif+) where++import "base-compat" Prelude.Compat as Base++#if !(MIN_VERSION_base(4,9,0))+import "semigroups" Data.Semigroup as Semi+#endif
+ src/Prelude/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Prelude.Compat"+-- from a globally unique namespace.+module Prelude.Compat.Repl.Batteries (+ module Prelude.Compat+) where+import "this" Prelude.Compat
+ src/System/Environment/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module System.Environment.Compat (+ module Base+) where++import "base-compat" System.Environment.Compat as Base
+ src/System/Environment/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "System.Environment.Compat"+-- from a globally unique namespace.+module System.Environment.Compat.Repl.Batteries (+ module System.Environment.Compat+) where+import "this" System.Environment.Compat
+ src/System/Exit/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module System.Exit.Compat (+ module Base+) where++import "base-compat" System.Exit.Compat as Base
+ src/System/Exit/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "System.Exit.Compat"+-- from a globally unique namespace.+module System.Exit.Compat.Repl.Batteries (+ module System.Exit.Compat+) where+import "this" System.Exit.Compat
+ src/System/IO/Unsafe/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module System.IO.Unsafe.Compat (+ module Base+) where++import "base-compat" System.IO.Unsafe.Compat as Base
+ src/System/IO/Unsafe/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "System.IO.Unsafe.Compat"+-- from a globally unique namespace.+module System.IO.Unsafe.Compat.Repl.Batteries (+ module System.IO.Unsafe.Compat+) where+import "this" System.IO.Unsafe.Compat
+ src/Text/Read/Compat.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}+module Text.Read.Compat (+ module Base+) where++import "base-compat" Text.Read.Compat as Base
+ src/Text/Read/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Text.Read.Compat"+-- from a globally unique namespace.+module Text.Read.Compat.Repl.Batteries (+ module Text.Read.Compat+) where+import "this" Text.Read.Compat
+ src/Type/Reflection/Compat.hs view
@@ -0,0 +1,34 @@+{-# LANGUAGE CPP, NoImplicitPrelude #-}+#if MIN_VERSION_base(4,10,0) && !(MIN_VERSION_base(4,11,0))+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeInType #-}+#endif+module Type.Reflection.Compat (+#if MIN_VERSION_base(4,10,0)+ module Base+, withTypeable+#endif+) where++#if MIN_VERSION_base(4,11,0)+import Type.Reflection as Base+#elif MIN_VERSION_base(4,10,0)+import Type.Reflection as Base hiding (withTypeable)+#endif++#if MIN_VERSION_base(4,10,0) && !(MIN_VERSION_base(4,11,0))+import GHC.Exts (TYPE)+import Type.Reflection (Typeable, TypeRep)+import Unsafe.Coerce (unsafeCoerce)++-- | Use a 'TypeRep' as 'Typeable' evidence.+withTypeable :: forall (a :: k) (r :: TYPE rep). ()+ => TypeRep a -> (Typeable a => r) -> r+withTypeable rep k = unsafeCoerce k' rep+ where k' :: Gift a r+ k' = Gift k++-- | A helper to satisfy the type checker in 'withTypeable'.+newtype Gift a (r :: TYPE rep) = Gift (Typeable a => r)+#endif
+ src/Type/Reflection/Compat/Repl/Batteries.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE PackageImports #-}+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}+-- | Reexports "Type.Reflection.Compat"+-- from a globally unique namespace.+module Type.Reflection.Compat.Repl.Batteries (+ module Type.Reflection.Compat+) where+import "this" Type.Reflection.Compat
+ test/Control/Monad/CompatSpec.hs view
@@ -0,0 +1,16 @@+module Control.Monad.CompatSpec (main, spec) where++import Test.Hspec++import Control.Monad.Compat+import Prelude ()+import Prelude.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "(<$!>)" $ do+ it "is a strict version of (<$>)" $ do+ not <$!> [True, False] `shouldBe` not <$> [True, False]
+ test/Data/Bits/CompatSpec.hs view
@@ -0,0 +1,34 @@+{-# LANGUAGE CPP #-}+module Data.Bits.CompatSpec (main, spec) where++import Test.Hspec+import Data.Bits.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "bitDefault" $+ it "sets the ith bit with all other bits clear" $ do+ bitDefault 0 `shouldBe` (1 :: Int)+ bitDefault 1 `shouldBe` (2 :: Int)+ bitDefault 2 `shouldBe` (4 :: Int)+ bitDefault 3 `shouldBe` (8 :: Int)+ describe "testBitDefault" $+ it "returns True if the nth bit of the argument is 1" $ do+ testBitDefault (10 :: Int) 0 `shouldBe` False+ testBitDefault (10 :: Int) 1 `shouldBe` True+ testBitDefault (10 :: Int) 2 `shouldBe` False+ testBitDefault (10 :: Int) 3 `shouldBe` True+ describe "popCountDefault" $+ it "returns the number of set bits in the argument" $ do+ popCountDefault (0 :: Int) `shouldBe` 0+ popCountDefault (1 :: Int) `shouldBe` 1+ popCountDefault (10 :: Int) `shouldBe` 2+#if MIN_VERSION_base(4,7,0)+ describe "toIntegralSized" $+ it "converts an Integral type to another as measured by bitSizeMaybe" $ do+ toIntegralSized (42 :: Integer) `shouldBe` (Just 42 :: Maybe Int)+ toIntegralSized (12345678901234567890 :: Integer) `shouldBe` (Nothing :: Maybe Int)+#endif
+ test/Data/Bool/CompatSpec.hs view
@@ -0,0 +1,18 @@+module Data.Bool.CompatSpec (main, spec) where++import Test.Hspec++import Data.Bool.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "bool" $ do+ it "evaluates to first parameter if condition is False" $ do+ bool "KO" "OK" False `shouldBe` "KO"++ it "evaluates to second parameter if condition is True" $ do+ bool "KO" "OK" True `shouldBe` "OK"+
+ test/Data/Either/CompatSpec.hs view
@@ -0,0 +1,25 @@+module Data.Either.CompatSpec (main, spec) where++import Test.Hspec++import Data.Either.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "isLeft" $ do+ it "returns True for a Left value" $ do+ isLeft (Left "23" :: Either String String) `shouldBe` True++ it "returns False for a Right value" $ do+ isLeft (Right "23" :: Either String String) `shouldBe` False++ describe "isRight" $ do+ it "returns False for a Left value" $ do+ isRight (Left "23" :: Either String String) `shouldBe` False++ it "returns True for a Right value" $ do+ isRight (Right "23" :: Either String String) `shouldBe` True+
+ test/Data/Foldable/CompatSpec.hs view
@@ -0,0 +1,13 @@+module Data.Foldable.CompatSpec (main, spec) where++import Test.Hspec+import Data.Foldable.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "maximumBy" $ do+ it "runs in constant space" $ do+ maximumBy compare [1..10000] `shouldBe` (10000 :: Int)
+ test/Data/Function/CompatSpec.hs view
@@ -0,0 +1,13 @@+module Data.Function.CompatSpec (main, spec) where++import Test.Hspec+import Data.Function.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "&" $ do+ it "reverses function application" $ do+ (False & not) `shouldBe` True
+ test/Data/Functor/CompatSpec.hs view
@@ -0,0 +1,17 @@+module Data.Functor.CompatSpec (main, spec) where++import Test.Hspec+import Data.Functor.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "void" $ do+ it "discards computation result" $ do+ void (return 1 :: IO Int) `shouldReturn` ()++ describe "$>" $ do+ it "is the same as flipped <$" $ do+ (Just 5 :: Maybe Int) $> 6 `shouldBe` (Just 6 :: Maybe Int)
+ test/Data/IORef/CompatSpec.hs view
@@ -0,0 +1,22 @@+module Data.IORef.CompatSpec (main, spec) where++import Test.Hspec++import Control.Monad+import Data.IORef.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "modifyIORef'" $+ it "mutates the contents of an IORef strictly" $ do+ ref <- newIORef 0+ replicateM_ 1000000 $ modifyIORef' ref (+1)+ readIORef ref `shouldReturn` (1000000 :: Int)+ describe "atomicModifyIORef'" $+ it "atomically modifies the contents of an IORef strictly" $ do+ ref <- newIORef 0+ replicateM_ 1000000 . atomicModifyIORef' ref $ \n -> (n+1, ())+ readIORef ref `shouldReturn` (1000000 :: Int)
+ test/Data/List/CompatSpec.hs view
@@ -0,0 +1,43 @@+module Data.List.CompatSpec (main, spec) where++import Test.Hspec+import Data.List.Compat++data Asymmetric = A | B deriving Show++instance Eq Asymmetric where+ A == _ = True+ B == _ = False++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "dropWhileEnd" $ do+ it "drops the largest suffix of a list in which a predicate holds for all elements" $ do+ dropWhileEnd (== ' ') "foo " `shouldBe` "foo"+ dropWhileEnd (== ' ') "foo bar" `shouldBe` "foo bar"+ describe "isSubsequenceOf" $ do+ it "returns True if the first list is a subsequence of the second list" $ do+ isSubsequenceOf "GHC" "The Glorious Haskell Compiler" `shouldBe` True+ isSubsequenceOf "JHC" "The Glorious Haskell Compiler" `shouldBe` False+ describe "nub" $+ it "preserves the order of arguments to (==)" $+ nub [A, B] `shouldBe` [A]+ describe "nubBy" $+ it "preserves the order of arguments to the equality function" $+ nubBy (<) "12" `shouldBe` "1"+ describe "sortOn" $ do+ it "sorts a list by comparing the results of a key function applied to each element" $ do+ sortOn (>='b') "cba" `shouldBe` "acb"+ describe "uncons" $ do+ it "decomposes a list into its head and tail" $ do+ uncons "" `shouldBe` Nothing+ uncons "12" `shouldBe` Just ('1', "2")+ describe "union" $+ it "nubs arguments in the same order as (==)" $ do+ union [A] [A, B] `shouldBe` [A]+ describe "unionBy" $+ it "nubs arguments in the same order as nubBy's equality function" $ do+ unionBy (<) "1" "21" `shouldBe` "11"
+ test/Data/Monoid/CompatSpec.hs view
@@ -0,0 +1,19 @@+module Data.Monoid.CompatSpec (main, spec) where++import Test.Hspec+import Test.QuickCheck++import Data.Monoid.Compat++import Prelude ()+import Prelude.Compat (IO, String, ($))++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "<>" $ do+ it "is an infix synonym for mappend" $ do+ property $ \xs ys -> do+ xs <> ys `shouldBe` (mappend xs ys :: String)
+ test/Data/STRef/CompatSpec.hs view
@@ -0,0 +1,19 @@+module Data.STRef.CompatSpec (main, spec) where++import Test.Hspec++import Control.Monad+import Control.Monad.ST+import Data.STRef.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec =+ describe "modifySTRef'" $+ it "should mutate the contents of an STRef strictly" $+ shouldBe (1000000 :: Int) $ runST $ do+ ref <- newSTRef 0+ replicateM_ 1000000 $ modifySTRef' ref (+1)+ readSTRef ref
+ test/Data/Version/CompatSpec.hs view
@@ -0,0 +1,10 @@+module Data.Version.CompatSpec (spec) where++import Test.Hspec+import Data.Version.Compat++spec :: Spec+spec = do+ describe "makeVersion" $+ it "constructs a tagless Version" $+ makeVersion [1,2,3] `shouldBe` Version [1,2,3] []
+ test/Data/Word/CompatSpec.hs view
@@ -0,0 +1,22 @@+module Data.Word.CompatSpec (main, spec) where++import Test.Hspec+import Data.Word.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "byteSwap16" $+ it "reverses the order of bytes in a Word16 value" $ do+ byteSwap16 0x1100 `shouldBe` 0x0011+ byteSwap16 0x1010 `shouldBe` 0x1010+ describe "byteSwap32" $+ it "reverses the order of bytes in a Word32 value" $ do+ byteSwap32 0x11001010 `shouldBe` 0x10100011+ byteSwap32 0x10101111 `shouldBe` 0x11111010+ describe "byteSwap64" $+ it "reverses the order of bytes in a Word64 value" $ do+ byteSwap64 0x1010111110101111 `shouldBe` 0x1111101011111010+ byteSwap64 0x1100000000000011 `shouldBe` 0x1100000000000011
+ test/Foreign/Marshal/Alloc/CompatSpec.hs view
@@ -0,0 +1,17 @@+module Foreign.Marshal.Alloc.CompatSpec (main, spec) where++import Test.Hspec++import Control.Exception+import Foreign.Marshal.Alloc.Compat+import Foreign.Storable++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "calloc" $+ it "allocates memory with bytes of value zero" $ do+ bracket calloc free $ \ptr -> do+ peek ptr `shouldReturn` (0 :: Int)
+ test/Foreign/Marshal/Utils/CompatSpec.hs view
@@ -0,0 +1,20 @@+module Foreign.Marshal.Utils.CompatSpec (main, spec) where++import Test.Hspec++import Foreign.Marshal.Alloc+import Foreign.Marshal.Utils.Compat+import Foreign.Ptr+import Foreign.Storable++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "fillBytes" $+ it "fills a given number of bytes in memory area with a byte value" $ do+ alloca $ \ptr -> do+ let _ = ptr :: Ptr Int+ fillBytes ptr 0 $ sizeOf ptr+ peek ptr `shouldReturn` 0
+ test/Numeric/CompatSpec.hs view
@@ -0,0 +1,24 @@+module Numeric.CompatSpec (main, spec) where++import Test.Hspec+import Numeric.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "showFFloatAlt" $ do+ it "shows a RealFloat value, always using decimal notation" $+ showFFloatAlt Nothing (12 :: Double) "" `shouldBe` "12.0"+ it "allows to specify the number of decimal places" $+ showFFloatAlt (Just 4) (12 :: Double) "" `shouldBe` "12.0000"+ describe "showGFloatAlt" $ do+ it "shows a RealFloat value, using decimal notation if the absolute value lies between 0.1 and 9,999,999" $+ showGFloatAlt Nothing (12 :: Double) "" `shouldBe` "12.0"+ it "shows a RealFloat value, using decimal notation and specifying the number of decimal places" $+ showGFloatAlt (Just 4) (12 :: Double) "" `shouldBe` "12.0000"+ it "shows a RealFloat value, using scientific notation if the absolute value falls outside of the range" $+ showGFloatAlt Nothing (1234567890 :: Double) "" `shouldBe` "1.23456789e9"+ it "shows a RealFloat value, using scientific notation and specifying the number of decimal places" $+ showGFloatAlt (Just 4) (1234567890 :: Double) "" `shouldBe` "1.2346e9"
+ test/Spec.hs view
@@ -0,0 +1,1 @@+{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
+ test/System/Environment/CompatSpec.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE CPP #-}+module System.Environment.CompatSpec (main, spec) where++import Test.Hspec+#if __GLASGOW_HASKELL__ >= 702+import Test.QuickCheck+#endif++import qualified Control.Exception as E+import GHC.IO.Exception (IOErrorType (InvalidArgument))+import System.Environment.Compat+import System.IO.Error++main :: IO ()+main = hspec spec++withEnv :: String -> String -> IO a -> IO a+withEnv k v action = E.bracket save restore $ \_ -> do+ setEnv k v >> action+ where+ save = lookupEnv k+ restore = maybe (unsetEnv k) (setEnv k)++withoutEnv :: String -> IO a -> IO a+withoutEnv k action = E.bracket save restore $ \_ -> do+ unsetEnv k >> action+ where+ save = lookupEnv k+ restore = maybe (unsetEnv k) (setEnv k)++spec :: Spec+spec = do+ describe "lookupEnv" $ do+ it "returns specified environment variable" $ do+ withEnv "FOOBAR" "23" $ do+ lookupEnv "FOOBAR" `shouldReturn` Just "23"++ it "returns Nothing if specified environment variable is not set" $ do+ withoutEnv "FOOBAR" $ do+ lookupEnv "FOOBAR" `shouldReturn` Nothing++ describe "unsetEnv" $ do+ it "removes specified environment variable" $ do+ setEnv "FOO" "foo"+ unsetEnv "FOO"+ getEnv "FOO" `shouldThrow` isDoesNotExistError++ it "does nothing if specified environment variable is not set" $ do+ unsetEnv "BAR"+ unsetEnv "BAR"+ getEnv "BAR" `shouldThrow` isDoesNotExistError++ it "throws an exception if key is the empty string" $ do+ unsetEnv "" `shouldThrow` (== InvalidArgument) . ioeGetErrorType++ it "throws an exception if key contains '='" $ do+ unsetEnv "some=key" `shouldThrow` (== InvalidArgument) . ioeGetErrorType++#if __GLASGOW_HASKELL__ >= 702+ it "works for arbitrary keys" $+ property $ \k -> ('\NUL' `notElem` k && '=' `notElem` k && (not . null) k) ==> do+ setEnv k "foo"+ unsetEnv k+ getEnv k `shouldThrow` isDoesNotExistError+#endif++ describe "setEnv" $ do+ it "sets specified environment variable to given value" $ do+ unsetEnv "FOO"+ setEnv "FOO" "foo"+ getEnv "FOO" `shouldReturn` "foo"++ it "resets specified environment variable, if it is already set" $ do+ unsetEnv "FOO"+ setEnv "FOO" "foo"+ setEnv "FOO" "bar"+ getEnv "FOO" `shouldReturn` "bar"++ it "removes specified environment variable when value is the empty string" $ do+ setEnv "FOO" "foo"+ setEnv "FOO" ""+ getEnv "FOO" `shouldThrow` isDoesNotExistError++ it "removes specified environment variable when first character of value is NUL" $ do+ setEnv "FOO" "foo"+ setEnv "FOO" "\NULfoo"+ getEnv "FOO" `shouldThrow` isDoesNotExistError++ it "truncates value at NUL character" $ do+ unsetEnv "FOO"+ setEnv "FOO" "foo\NULbar"+ getEnv "FOO" `shouldReturn` "foo"++ it "truncates key at NUL character" $ do+ unsetEnv "FOO"+ setEnv "FOO\NULBAR" "foo"+ getEnv "FOO" `shouldReturn` "foo"++#if __GLASGOW_HASKELL__ >= 702+ it "works for unicode" $ do+ unsetEnv "FOO"+ setEnv "FOO" "foo-\955-bar"+ getEnv "FOO" `shouldReturn` "foo-\955-bar"++ it "works for arbitrary values" $+ property $ \v -> ('\NUL' `notElem` v && (not . null) v) ==> do+ setEnv "FOO" v+ getEnv "FOO" `shouldReturn` v+#endif++ it "works for unicode keys" $ do+ setEnv "foo-\955-bar" "foo"+ getEnv "foo-\955-bar" `shouldReturn` "foo"++ it "throws an exception if key is the empty string" $ do+ setEnv "" "foo" `shouldThrow` (== InvalidArgument) . ioeGetErrorType++ it "throws an exception if key contains '='" $ do+ setEnv "some=key" "foo" `shouldThrow` (== InvalidArgument) . ioeGetErrorType++#if __GLASGOW_HASKELL__ >= 702+ it "works for arbitrary keys" $+ property $ \k -> ('\NUL' `notElem` k && '=' `notElem` k && (not . null) k) ==> do+ setEnv k "foo"+ getEnv k `shouldReturn` "foo"+#endif
+ test/Text/Read/CompatSpec.hs view
@@ -0,0 +1,24 @@+module Text.Read.CompatSpec (main, spec) where++import Test.Hspec++import Text.Read.Compat++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "readMaybe" $ do+ it "parses a value" $ do+ readMaybe "23" `shouldBe` (Just 23 :: Maybe Int)++ it "returns Nothing if parsing fails" $ do+ readMaybe "xx" `shouldBe` (Nothing :: Maybe Int)++ describe "readEither" $ do+ it "parses a value" $ do+ readEither "23" `shouldBe` (Right 23 :: Either String Int)++ it "returns Left if parsing fails" $ do+ readEither "xx" `shouldBe` (Left "Prelude.read: no parse" :: Either String Int)