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.
To use base-orphans, simply import Data.Orphans ().
- Alternative,- MonadPlus, and- MonadZipinstances for- Proxy
- Alternative,- Applicative,- Bounded,- Data,- Enum,- Foldable,- Functor,- Ix,- Monad,- MonadFix,- MonadPlus,- MonadZip, and- Traversableinstances for data types in- GHC.Generics
- Alternative,- Eq,- Ord,- Read,- Show,- Foldable, and- Traversableinstances for- ZipList
- Applicativeinstance for- K1from- GHC.Generics
- Applicative,- Bits,- Bounded,- Data,- Enum,- Eq1,- FiniteBits,- Floating,- Foldable,- Fractional,- Functor,- Ix,- Ord1,- Monad,- MonadFix,- MonadZip,- Monoid,- Num,- Read,- Read1,- Real,- RealFloat,- RealFrac,- Semigroup,- Show,- Show1,- Storable, and- Traversableinstances for- Down
- Applicativeand- Alternativeinstances for- ReadPand- ReadPrec
- Applicativeinstance for strict and lazy- ST
- Applicative,- Foldable,- Functor,- Monad, and- Traversableinstances for- Complex,- Dual,- First,- Last,- Product, and- Sum
- Bitsinstance for- Bool
- Bits,- Bounded, and- Integralinstances for- CDev
- Bits,- Bounded,- Enum,- FiniteBits,- Floating,- Fractional,- Integral,- IsString,- Ix,- Num,- Real,- RealFloat,- RealFrac, and- Storableinstances for- Constand- Identity
- Datainstances for- All,- Any, and- Const,- IntPtr,- WordPtr,- WrappedArrowand- WrappedMonad
- Data,- MonadFixand- MonadZipinstances for- Alt,- Dual,- First,- Last,- Product, and- Sum
- Dataand- IsListinstances for- Versionand- ZipList
- Eq{1,2},- Ord{1,2},- Show{1,2}, and- Read{1,2}instances for- (,,)and- (,,,)
- Eqand- Ordinstances for- Control.Exception.ErrorCall
- Eq,- Ord,- Read, and- Showinstances for data types in- GHC.Generics
- Eq,- Ord,- Bounded,- Enum, and- Ixinstances for- Solo
- Eqand- Ordinstances for- Generically1
- Eqand- Ordinstances for- SChar,- SNat, and- SSymbol
- Eq1,- Read1, and- Show1instances for- Complex
- Eq1,- Ord1,- Read1, and- Show1instances for- NonEmpty
- Eq1,- Ord1,- Read1, and- Show1instances for basic- GHC.Genericsrepresentation types
- Enum,- Bounded,- Num,- Real,- Integral,- Fractional,- RealFrac,- Floating, and- RealFloatinstances for- Compose
- Foldableinstance for- Either,- (,)and- Const
- Foldableand- Traversableinstances for- Altfrom- Data.Monoid
- Functor,- Applicative, and- Monadinstances for- (,,) a band- (,,,) a b c
- Functorinstances for- (,,,,) a b c d,- (,,,,,) a b c d e, and- (,,,,,) a b c d e f
- Functorinstance for- Handler,- ArgOrder,- OptDescr, and- ArgDescr
- Functor,- Applicative,- Alternative, and- MonadPlusinstances for- ArrowMonad
- Functor,- Applicative,- Monad,- Alternative, and- MonadPlusinstances for- Kleisli
- Ixinstances for tuples of size 6 through 15
- Ixinstances for integral types in- Foreign.C.Types,- Foreign.Ptr, and- System.Posix.Types
- Monadinstance for- (,)
- Monadinstance for- WrappedMonad
- MonadFail,- Monoid, and- Semigroupinstances for strict- ST
- MonadFixinstance for- (,) a
- MonadFixand- MonadZipinstances for- Complex
- MonadZipinstance for- Maybe
- Monoid,- Eq,- Ord,- Read, and- Showinstances for- Const
- Monoidinstances for- Identityand- IO
- Numinstance for- Sumand- Product
- Readinstance for- Fixed
- Semigroupinstances for- IO,- Eventand- Lifetime
- Semigroupinstances for- V1,- U1,- Par1,- Rec1,- K1,- M1,- (:*:), and- (:.:)from- GHC.Generics.- Monoidinstances for the same types (except- V1).
- Semigroupand- Monoidinstances for- Data.Functor.Productand- Data.Functor.Compose
- Showinstance for- Fingerprint
- Showinstance for- UAddr
- Storableinstance for- (),- Complex, and- Ratio
- TestEqualityinstance for- Compose
- Traversableinstance for- Either,- (,)and- Const
- Ordinstance for- TyConand- TypeRep.
- Typeableinstance for most data types, typeclasses, and promoted data constructors (when possible)
base-orphans does not define the following instances:
- Genericor- Generic1instances. These can be found in the- Generics.Deriving.Instancesmodule of the- generic-derivinglibrary.
- The Alternative IOandMonadPlus IOinstances. These can be found in theControl.Monad.Trans.Errormodule of thetransformerslibrary.
- ghc-9.12.*/- base-4.21.*
- ghc-9.10.*/- base-4.20.*
- ghc-9.8.*/- base-4.19.*
- ghc-9.6.*/- base-4.18.*
- ghc-9.4.*/- base-4.17.*
- ghc-9.2.*/- base-4.16.*
- ghc-9.0.*/- base-4.15.*
- ghc-8.10.*/- base-4.14.*
- ghc-8.8.*/- base-4.13.*
- ghc-8.6.*/- base-4.12.*
- ghc-8.4.*/- base-4.11.*
- ghc-8.2.*/- base-4.10.*
- ghc-8.0.*/- base-4.9.*
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!