base-orphans: Backwards-compatible orphan instances for base

[ compatibility, library, mit ] [ Propose Tags ]

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 base-compat. See the README for what instances are covered: https://github.com/haskell-compat/base-orphans#readme. See also the what is not covered section.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0, 0.1.0, 0.2.0, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.6, 0.7, 0.8, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.8.8, 0.8.8.1, 0.8.8.2, 0.9.0, 0.9.1 (info)
Change log CHANGES.markdown
Dependencies base (>=4.3 && <5), ghc-prim [details]
License MIT
Copyright (c) 2012-2017 Simon Hengel, (c) 2014-2017 João Cristóvão, (c) 2015-2017 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>
Category Compatibility
Home page https://github.com/haskell-compat/base-orphans#readme
Bug tracker https://github.com/haskell-compat/base-orphans/issues
Source repo head: git clone https://github.com/haskell-compat/base-orphans
Uploaded by ryanglscott at 2019-03-25T18:16:25Z
Distributions Arch:0.8.8.2, Debian:0.8.2, Fedora:0.9.0, FreeBSD:0.4.4, LTSHaskell:0.9.1, NixOS:0.9.1, Stackage:0.9.1, openSUSE:0.9.1
Reverse Dependencies 58 direct, 14590 indirect [details]
Downloads 157205 total (605 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-03-25 [all 1 reports]

Readme for base-orphans-0.8.1

[back to package description]

base-orphans

Hackage Hackage Dependencies Haskell Programming Language BSD3 License Build

Scope

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 base-compat.

Note that base-orphans doesn't cover every possible instance. See the What is not covered section for exceptions.

Usage

To use base-orphans, simply import Data.Orphans ().

What is covered

  • 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 instance for K1 from GHC.Generics
  • Applicative, Data, Eq1, Foldable, Functor, Ord1, Monad, MonadFix, MonadZip, Monoid, Num, Read, Read1, Semigroup, Show, Show1, and Traversable instances for Down
  • Applicative and Alternative instances for ReadP and ReadPrec
  • Applicative instance for strict and lazy ST
  • Applicative, Foldable, Functor, Monad, and Traversable instances for Complex, Dual, First, Last, Product, and Sum
  • 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, 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
  • Eq1, Ord1, Read1, and Show1 instances for NonEmpty
  • Foldable instance for Either, (,) and Const
  • Foldable and Traversable instances for Alt from Data.Monoid
  • 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
  • Semigroup instances for IO, Event and Lifetime
  • Semigroup instances for V1, U1, Par1, Rec1, K1, M1, (:*:), and (:.:) from GHC.Generics. Monoid instances for the same types (except V1).
  • Show instance for Fingerprint
  • Storable instance for (), Complex, and Ratio
  • Traversable instance for Either, (,) and Const
  • Typeable instance for most data types, typeclasses, and promoted data constructors (when possible)

What is not covered

base-orphans does not define the following instances:

Supported versions of GHC/base

  • ghc-8.6.4 / base-4.12.0.0
  • ghc-8.6.3 / base-4.12.0.0
  • ghc-8.6.2 / base-4.12.0.0
  • ghc-8.6.1 / base-4.12.0.0
  • ghc-8.4.3 / base-4.11.1.0
  • ghc-8.4.2 / base-4.11.1.0
  • 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
  • ghc-7.10.3 / base-4.8.2.0
  • ghc-7.10.2 / base-4.8.1.0
  • ghc-7.10.1 / base-4.8.0.0
  • ghc-7.8.4 / base-4.7.0.2
  • ghc-7.8.3 / base-4.7.0.1
  • ghc-7.8.2 / base-4.7.0.0
  • ghc-7.8.1 / base-4.7.0.0
  • ghc-7.6.3 / base-4.6.0.1
  • ghc-7.6.2 / base-4.6.0.1
  • ghc-7.6.1 / base-4.6.0.0
  • ghc-7.4.2 / base-4.5.1.0
  • ghc-7.4.1 / base-4.5.0.0
  • ghc-7.2.2 / base-4.4.1.0
  • ghc-7.2.1 / base-4.4.0.0
  • ghc-7.0.4 / base-4.3.1.0
  • ghc-7.0.3 / base-4.3.1.0
  • ghc-7.0.2 / base-4.3.1.0
  • ghc-7.0.1 / base-4.3.0.0

We also make an attempt to keep base-orphans building with GHC HEAD, but due to its volatility, it may not work at any given point in time. If it doesn't, please report it!

Patches are welcome; add tests for new code!