- 
Bundled with GHC 8.10.1 
- 
Add a TestEqualityinstance for theComposenewtype.
 
- 
Data.Ord.Downnow has a field name,getDown
 
- 
Add Bits,Bounded,Enum,FiniteBits,Floating,Fractional,Integral,Ix,Real,RealFrac,RealFloatandStorableinstances
toData.Ord.Down.
 
- 
Fix the integer-gmpvariant ofisValidNatural: Previously it would fail
to detect values<= maxBound::Wordthat were incorrectly encoded using
theNatJ#constructor.
 
- 
The type of coercehas been generalized. It is now runtime-representation
polymorphic:forall {r :: RuntimeRep} (a :: TYPE r) (b :: TYPE r). Coercible a b => a -> b.
The type argumentris marked asInferredto prevent it from
interfering with visible type application.
 
- 
Make FixedandHasResolutionpoly-kinded.
 
- 
Add HasResolutioninstances forNats.
 
- 
Add Functor,Applicative,Monad,Alternative,MonadPlus,GenericandGeneric1instances toKleisli
 
- 
openTempFileis now fully atomic and thread-safe on Windows.
 
- 
Add isResourceVanishedError,resourceVanishedErrorType, andisResourceVanishedErrorTypetoSystem.IO.Error.
 
- 
Add newtypes for CSocklen(socklen_t) andCNfds(nfds_t) toSystem.Posix.Types.
 
- 
Add Functor,ApplicativeandMonadinstances to(,,) a band(,,,) a b c.
 
- 
Add resizeSmallMutableArray#toGHC.Exts.
 
- 
Add a Datainstance toWrappedArrow,WrappedMonad, andZipList.
 
- 
Add IsListinstance forZipList.
 
- 
Bundled with GHC 8.6.1 
- 
The STM invariant-checking mechanism (alwaysandalwaysSucceeds), which
was deprecated in GHC 8.4, has been removed (as proposed in
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0011-deprecate-stm-invariants.rst).
This is a bit earlier than proposed in the deprecation pragma included in
GHC 8.4, but due to community feedback we decided to move ahead with the
early removal.
 Existing users are encouraged to encapsulate their STM operations in safe
abstractions which can perform the invariant checking without help from the
runtime system. 
- 
Add a new module GHC.ResponseFile(previously defined in thehaddockpackage). (#13896)
 
- 
Move the module Data.Functor.Contravariantfrom thecontravariantpackage tobase.
 
- 
($!)is now representation-polymorphic like($).
 
- 
Add Applicative(forK1),SemigroupandMonoidinstances inGHC.Generics. (#14849)
 
- 
asinhforFloatandDoubleis now numerically stable in the face of
non-small negative arguments and enormous arguments of either sign. (#14927)
 
- 
Numeric.showEFloat (Just 0)now respects the user’s requested precision.
(#15115)
 
- 
Data.Monoid.Altnow hasFoldableandTraversableinstances. (#15099)
 
- 
Data.Monoid.Aphas been introduced
 
- 
Control.Exception.throwis now levity polymorphic. (#15180)
 
- 
Data.Ord.Downnow has a number of new instances. These include:MonadFix,MonadZip,Data,Foldable,Traversable,Eq1,Ord1,Read1,Show1,Generic,Generic1. (#15098)
 
- 
Bundled with GHC 8.4.1 
- 
System.IO.openTempFileis now thread-safe on Windows.
 
- 
Deprecated GHC.Stats.GCStatsinterface has been removed.
 
- 
Add showHFloattoNumeric
 
- 
Add Div,Mod, andLog2functions on type-level naturals
inGHC.TypeLits.
 
- 
Add Alternativeinstance forZipList(#13520)
 
- 
Add instances Num,Functor,Applicative,Monad,SemigroupandMonoidforData.Ord.Down(#13097).
 
- 
Add Semigroupinstance forEventLifetime.
 
- 
Make Semigroupa superclass ofMonoid;
exportSemigroup((<>))fromPrelude; removeMonoidreexport
fromData.Semigroup(#14191).
 
- 
Generalise instance Monoid a => Monoid (Maybe a)toinstance Semigroup a => Monoid (Maybe a).
 
- 
Add infixl 9 !!declaration forData.List.NonEmpty.!!
 
- 
Add <&>operator toData.Functor(#14029)
 
- 
Remove the deprecated Typeable{1..7}type synonyms (#14047)
 
- 
Make Data.Type.Equality.==a closed type family. It now works for all
kinds out of the box. Any modules that previously declared instances of this
family will need to remove them. Whereas the previous definition was somewhat
ad hoc, the behavior is now completely uniform. As a result, some applications
that used to reduce no longer do, and conversely. Most notably,(==)no
longer treats the*,j -> k, or()kinds specially; equality is
tested structurally in all cases.
 
- 
Add instances SemigroupandMonoidforControl.Monad.ST(#14107).
 
- 
The Readinstances forProxy,Coercion,(:~:),(:~~:), andU1now ignore the parsing precedence. The effect of this is thatreadwill
be able to successfully parse more strings containing"Proxy"et al.
without surrounding parentheses (e.g.,"Thing Proxy") (#12874).
 
- 
Add iterate', a strict version ofiterate, toData.ListandData.OldList(#3474)
 
- 
Add Datainstances forIntPtrandWordPtr(#13115)
 
- 
Add missing MonadFailinstance forControl.Monad.Strict.ST.ST
 
- 
Make zipWithandzipWith3inlinable (#14224)
 
- 
Type.Reflection.Appnow matches on function types (fixes #14236)
 
- 
Type.Reflection.withTypeableis now polymorphic in theRuntimeRepof
its result.
 
- 
Add installSEHHandlerstoMiscFlagsinGHC.RTS.Flagsto determine if
exception handling is enabled.
 
- 
The deprecated functions isEmptyChanandunGetChaninControl.Concurrent.Chanhave been removed (#13561).
 
- 
Add generateCrashDumpFiletoMiscFlagsinGHC.RTS.Flagsto determine
if a core dump will be generated on crashes.
 
- 
Add generateStackTracetoMiscFlagsinGHC.RTS.Flagsto determine if
stack traces will be generated on unhandled exceptions by the RTS.
 
- 
getExecutablePathnow resolves symlinks on Windows (#14483)
 
- 
Deprecated STM invariant checking primitives (checkInv,always, andalwaysSucceeds) inGHC.Conc.Sync(#14324).
 
- 
Add a FixIOExceptiondata type toControl.Exception.Base, and changefixIOto throw that instead of aBlockedIndefinitelyOnMVarexception
(#14356).
 
- 
Bundled with GHC 8.2.1 
- 
Data.Type.Bool.Notgiven a type family dependency (#12057).
 
- 
Foreign.Ptrnow exports the constructors forIntPtrandWordPtr(#11983)
 
- 
Generic1, as well as the associated datatypes and typeclasses inGHC.Generics, are now poly-kinded (#10604)
 
- 
New modules Data.BifoldableandData.Bitraversable(previously defined in thebifunctors` package) (#10448)
 
- 
Data.Eithernow providesfromLeftandfromRight(#12402)
 
- 
Data.Type.Coercionnow providesgcoerceWith(#12493)
 
- 
New methods liftReadList(2)andliftReadListPrec(2)in theRead1/Read2classes that are defined in terms ofReadPrecinstead ofReadS, as well as related combinators, have been added toData.Functor.Classes(#12358)
 
- 
Add Semigroupinstance forIO, as well as forEventandLifetimefromGHC.Event(#12464)
 
- 
Add Datainstance forConst(#12438)
 
- 
Added Eq1,Ord1,Read1andShow1instances forNonEmpty.
 
- 
Add wrappers for blksize_t,blkcnt_t,clockid_t,fsblkcnt_t,fsfilcnt_t,id_t,key_t, andtimer_tto System.Posix.Types (#12795)
 
- 
Add CBool, a wrapper around C’sbooltype, toForeign.C.Types(#13136)
 
- 
Raw buffer operations in GHC.IO.FDare now strict in the buffer, offset, and length operations (#9696)
 
- 
Add plusForeignPtrtoForeign.ForeignPtr.
 
- 
Add type family AppendSymbol (m :: Symbol) (n :: Symbol) :: SymboltoGHC.TypeLits(#12162)
 
- 
Add GHC.TypeNatsmodule withNatural-basedKnownNat. TheNatoperations inGHC.TypeLitsare a thin compatibility layer on top.
Note: theKnownNatevidence is changed from anIntegerto aNatural.
 
- 
The type of asProxyTypeOfinData.Proxyhas been generalized (#12805)
 
- 
liftA2is now a method of theApplicativeclass.liftA2and<*>each have a default implementation based on the other. Various
library functions have been updated to useliftA2where it might offer
some benefit.liftA2is not yet in thePrelude, and must currently be
imported fromControl.Applicative. It is likely to be added to thePreludein the future. (#13191)
 
- 
A new module, Type.Reflection, exposing GHC’s new type-indexed type
representation mechanism is now provided.
 
- 
Data.Dynamicnow exports theDyndata constructor, enabled by the new
type-indexed type representation mechanism.
 
- 
Data.Type.Equalitynow provides a kind heterogeneous type equality
evidence type,(:~~:).
 
- 
The CostCentresXMLconstructor ofGHC.RTS.Flags.DoCostCentreshas been
replaced byCostCentresJSONdue to the new JSON export format supported by
the cost centre profiler.
 
- 
The ErrorCallpattern synonym has been given aCOMPLETEpragma so that
functions which solely match againErrorCalldo not produce
non-exhaustive pattern-match warnings (#8779)
 
- 
Change the implementations of maximumByandminimumByfromData.Foldableto usefoldl1instead offoldr1. This makes them run
in constant space when applied to lists. (#10830)
 
- 
mkFunTy,mkAppTy, andmkTyConAppfromData.Typeableno longer exist.
This functionality is superceded by the interfaces provided byType.Reflection.
 
- 
mkTyCon3is no longer exported byData.Typeable. This function is
replaced byType.Reflection.Unsafe.mkTyCon.
 
- 
Data.List.NonEmpty.unfoldhas been deprecated in favor ofunfoldr,
which is functionally equivalent.
 
- 
Bundled with GHC 8.0 
- 
errorandundefinednow print a partial stack-trace alongside the error message.
 
- 
New errorWithoutStackTracefunction throws an error without printing the stack trace.
 
- 
The restore operation provided by maskanduninterruptibleMasknow
restores the previous masking state whatever the current masking state is.
 
- 
New GHC.Generics.packageNameoperation
 
- 
Redesigned GHC.Stack.CallStackdata type. As a result,CallStack’sShowinstance produces different output, andCallStackno longer has anEqinstance.
 
- 
New GHC.Generics.packageNameoperation
 
- 
New GHC.Stack.Typesmodule now contains the definition ofCallStackandSrcLoc
 
- 
New GHC.Stack.Types.emptyCallStackfunction builds an emptyCallStack
 
- 
New GHC.Stack.Types.freezeCallStackfunction freezes aCallStackpreventing futurepushCallStackoperations from having any effect
 
- 
New GHC.Stack.Types.pushCallStackfunction pushes a call-site onto aCallStack
 
- 
New GHC.Stack.Types.fromCallSiteListfunction creates aCallStackfrom
a list of call-sites (i.e.,[(String, SrcLoc)])
 
- 
GHC.SrcLochas been removed
 
- 
GHC.Stack.showCallStackandGHC.SrcLoc.showSrcLocare now calledGHC.Stack.prettyCallStackandGHC.Stack.prettySrcLocrespectively
 
- 
add Data.List.NonEmptyandData.Semigroup(to become
super-class ofMonoidin the future). These modules were
provided by thesemigroupspackage previously. (#10365)
 
- 
Add selSourceUnpackedness,selSourceStrictness, andselDecidedStrictness, three functions which look up strictness
information of a field in a data constructor, to theSelectortype class
inGHC.Generics(#10716)
 
- 
Add URec,UAddr,UChar,UDouble,UFloat,UInt, andUWordtoGHC.Genericsas part of making GHC generics capable of handling
unlifted types (#10868)
 
- 
The Eq,Ord,Read, andShowinstances forU1now use lazier
pattern-matching
 
- 
Keep shift{L,R}onIntegerwith negative shift-arguments from
segfaulting (#10571)
 
- 
Add forkOSWithUnmasktoControl.Concurrent, which is likeforkIOWithUnmask, but the child is run in a bound thread.
 
- 
The MINIMALdefinition ofArrowis nowarr AND (first OR (***)).
 
- 
The MINIMALdefinition ofArrowChoiceis nowleft OR (+++).
 
- 
Exported GiveGCStats,DoCostCentres,DoHeapProfile,DoTrace,RtsTime, andRtsNatfromGHC.RTS.Flags
 
- 
New function GHC.IO.interruptibleused to correctly implementControl.Exception.allowInterrupt(#9516)
 
- 
Made PatternMatchFail,RecSelError,RecConError,RecUpdError,NoMethodError, andAssertionFailednewtypes (#10738)
 
- 
New module Control.Monad.IO.Class(previously provided bytransformerspackage). (#10773)
 
- 
New modules Data.Functor.Classes,Data.Functor.Compose,Data.Functor.Product, andData.Functor.Sum(previously provided bytransformerspackage). (#11135)
 
- 
New instances for Proxy:Eq1,Ord1,Show1,Read1. All
of the classes are fromData.Functor.Classes(#11756).
 
- 
New module Control.Monad.Failproviding newMonadFail(fail)class (#10751)
 
- 
Add GHC.TypeLits.TypeErrorandErrorMessageto allow users
to define custom compile-time error messages.
 
- 
Redesign GHC.Genericsto use type-level literals to represent the
metadata of generic representation types (#9766)
 
- 
The IsStringinstance for[Char]has been modified to eliminate
ambiguity arising from overloaded strings and functions like(++).
 
- 
Move ConstfromControl.Applicativeto its own module inData.Functor.Const. (#11135)
 
- 
Re-export ConstfromControl.Applicativefor backwards compatibility.
 
- 
Expand Floatingclass to include operations that allow for better
precision:log1p,expm1,log1pexpandlog1mexp. These are not
available fromPrelude, but the full class is exported fromNumeric.
 
- 
New Control.Exception.TypeErrordatatype, which is thrown when an
expression fails to typecheck when run using-fdefer-type-errors(#10284)
 
- 
The bitSizemethod ofData.Bits.Bitsnow has a (partial!)
default implementation based onbitSizeMaybe. (#12970)
 
- 
Alt,Dual,First,Last,Product, andSumnow haveData,MonadZip, andMonadFixinstances
 
- 
The datatypes in GHC.Genericsnow haveEnum,Bounded,Ix,Functor,Applicative,Monad,MonadFix,MonadPlus,MonadZip,Foldable,Foldable,Traversable,Generic1, andDatainstances
as appropriate.
 
- 
Maybenow has aMonadZipinstance
 
- 
AllandAnynow haveDatainstances
 
- 
Dual,First,Last,Product, andSumnow haveFoldableandTraversableinstances
 
- 
Dual,Product, andSumnow haveFunctor,Applicative, andMonadinstances
 
- 
(,) anow has aMonadinstance
 
- 
ZipListnow hasFoldableandTraversableinstances
 
- 
Identitynow hasSemigroupandMonoidinstances
 
- 
IdentityandConstnow haveBits,Bounded,Enum,FiniteBits,Floating,Fractional,Integral,IsString,Ix,Num,Real,RealFloat,RealFracandStorableinstances. (#11210, #11790)
 
- 
()now has aStorableinstance
 
- 
Complexnow hasGeneric,Generic1,Functor,Foldable,Traversable,Applicative, andMonadinstances
 
- 
System.Exit.ExitCodenow has aGenericinstance
 
- 
Data.Version.Versionnow has aGenericinstance
 
- 
IOnow has aMonoidinstance
 
- 
Add MonadPlus IOandAlternative IOinstances
(previously orphans intransformers) (#10755)
 
- 
CallStacknow has anIsListinstance
 
- 
The field spInfoNameofGHC.StaticPtr.StaticPtrInfohas been removed.
The value is no longer available when constructing theStaticPtr.
 
- 
VecElemandVecCountnow haveEnumandBoundedinstances.
 
- 
Bundled with GHC 7.10.1 
- 
Make Applicativea superclass ofMonad
 
- 
Add reverse application operator Data.Function.(&)
 
- 
Add Data.List.sortOnsorting function
 
- 
Add System.Exit.die
 
- 
Deprecate versionTagsfield ofData.Version.Version.
AddmakeVersion :: [Int] -> Versionconstructor function to aid
migration to a futureversionTags-lessVersion.
 
- 
Add IsList Versioninstance
 
- 
Weaken RealFloat constraints on some Data.Complexfunctions
 
- 
Add Control.Monad.(<$!>)as a strict version of(<$>)
 
- 
The Data.Monoidmodule now has thePolyKindsextension
enabled, so that theMonoidinstance forProxyare polykinded
likeProxyitself is.
 
- 
Make absandsignumhandle (-0.0) correctly per IEEE-754.
 
- 
Re-export Data.Word.WordfromPrelude
 
- 
Add countLeadingZerosandcountTrailingZerosmethods toData.Bits.FiniteBitsclass
 
- 
Add Data.List.unconslist destructor (#9550)
 
- 
Export Monoid(..)fromPrelude
 
- 
Export Foldable(..)fromPrelude(hidingfold,foldl',foldr', andtoList)
 
- 
Export Traversable(..)fromPrelude
 
- 
Set fixity for Data.Foldable.{elem,notElem}to match the
conventional one set forData.List.{elem,notElem}(#9610)
 
- 
Turn toList,elem,sum,product,maximum, andminimumintoFoldablemethods (#9621)
 
- 
Replace the Data.List-exported functions
 all, and, any, concat, concatMap, elem, find, product, sum,
mapAccumL, mapAccumR
 by re-exports of their generalised Data.Foldable/Data.Traversablecounterparts.  In other words, unqualified imports ofData.ListandData.Foldable/Data.Traversableno longer lead to conflicting
definitions. (#9586)
 
- 
New (unofficial) module GHC.OldListcontaining only list-specialised
versions of the functions fromData.List(in other words,GHC.OldListcorresponds tobase-4.7.0.2’sData.List)
 
- 
Replace the Control.Monad-exported functions
 sequence_, msum, mapM_, forM_,
forM, mapM, sequence
 by re-exports of their generalised Data.Foldable/Data.Traversablecounterparts.  In other words, unqualified imports ofControl.MonadandData.Foldable/Data.Traversableno longer lead to conflicting
definitions. (#9586)
 
- 
Generalise Control.Monad.{when,unless,guard}fromMonadtoApplicativeand fromMonadPlustoAlternativerespectively.
 
- 
Generalise Control.Monad.{foldM,foldM_}toFoldable
 
- 
scanr,mapAccumLandfilterMnow take part in list fusion (#9355,
#9502, #9546)
 
- 
Remove deprecated Data.OldTypeable(#9639)
 
- 
New module Data.Bifunctorproviding theBifunctor(bimap,first,second)class (previously defined inbifunctorspackage) (#9682)
 
- 
New module Data.Voidproviding the canonical uninhabited typeVoid(previously defined invoidpackage) (#9814)
 
- 
Update Unicode class definitions to Unicode version 7.0 
- 
Add Alt, anAlternativewrapper, toData.Monoid. (#9759)
 
- 
Add isSubsequenceOftoData.List(#9767)
 
- 
The arguments to ==andeqinData.List.nubandData.List.nubByare swapped, such thatData.List.nubBy (<) [1,2]now returns[1]instead of[1,2](#2528, #3280, #7913)
 
- 
New module Data.Functor.Identity(previously provided bytransformerspackage). (#9664)
 
- 
Add scanl', a strictly accumulating version ofscanl, toData.ListandData.OldList. (#9368)
 
- 
Add fillBytestoForeign.Marshal.Utils.
 
- 
Add new displayExceptionmethod toExceptiontypeclass. (#9822)
 
- 
Add Data.Bits.toIntegralSized, a size-checked version offromIntegral. (#9816)
 
- 
New module Numeric.Naturalproviding newNaturaltype
representing non-negative arbitrary-precision integers.  TheGHC.Naturalmodule exposes additional GHC-specific primitives. (#9818)
 
- 
Add (Storable a, Integeral a) => Storable (Ratio a)instance (#9826)
 
- 
Add Storable a => Storable (Complex a)instance (#9826)
 
- 
New module GHC.RTS.Flagsthat provides accessors to runtime flags.
 
- 
Expose functions for per-thread allocation counters and limits in GHC.Conc
 disableAllocationLimit :: IO ()
enableAllocationLimit :: IO ()
getAllocationCounter :: IO Int64
setAllocationCounter :: Int64 -> IO ()
 together with a new exception AllocationLimitExceeded.
 
- 
Make read . show = idforData.Fixed(#9240)
 
- 
Add callocandcallocBytestoForeign.Marshal.Alloc. (#9859)
 
- 
Add callocArrayandcallocArray0toForeign.Marshal.Array. (#9859)
 
- 
Restore invariant in Data (Ratio a)instance (#10011)
 
- 
Add/expose rnfTypeRep,rnfTyCon,typeRepFingerprint, andtyConFingerprinthelpers toData.Typeable.
 
- 
Define proper MINIMALpragma forclass Ix. (#10142)
 
- 
Bundled with GHC 7.8.1 
- 
Add /Since: 4.[4567].0.0/Haddock annotations to entities
denoting the package version, when the given entity was introduced
(or its type signature changed in a non-compatible way)
 
- 
The Control.Categorymodule now has thePolyKindsextension
enabled, meaning that instances ofCategoryno longer need be of
kind* -> * -> *.
 
- 
There are now FoldableandTraversableinstances forEither a,Const r, and(,) a.
 
- 
There are now Show,Read,Eq,Ord,Monoid,Generic, andGeneric1instances forConst.
 
- 
There is now a Datainstance forData.Version.
 
- 
A new Data.Bits.FiniteBitsclass has been added to represent
types with fixed bit-count. The existingBitsclass is extended
with abitSizeMaybemethod to replace the now obsoletebitsizemethod.
 
- 
Data.Bits.Bitsgained a newzeroBitsmethod which completes theBitsAPI with a direct way to introduce a value with all bits cleared.
 
- 
There are now BitsandFiniteBitsinstances forBool.
 
- 
There are now Eq,Ord,Show,Read,Generic. andGeneric1instances forZipList.
 
- 
There are now Eq,Ord,ShowandReadinstances forDown.
 
- 
There are now Eq,Ord,Show,ReadandGenericinstances
for types in GHC.Generics (U1,Par1,Rec1,K1,M1,(:+:),(:*:),(:.:)).
 
- 
Data.Monoid: There are nowGenericinstances forDual,Endo,All,Any,Sum,Product,First, andLast; as well asGeneric1instances forDual,Sum,Product,First, andLast.
 
- 
The Data.Monoid.{Product,Sum}newtype wrappers now haveNuminstances.
 
- 
There are now Functorinstances forSystem.Console.GetOpt’sArgOrder,OptDescr, andArgDescr.
 
- 
A zero-width unboxed poly-kinded Proxy#was added toGHC.Prim. It can be used to make it so that there is no the
operational overhead for passing around proxy arguments to model
type application.
 
- 
New Data.Proxymodule providing a concrete, poly-kinded proxy type.
 
- 
New Data.Coercemodule which exports the newCoercibleclass
together with thecoerceprimitive which provide safe coercion
(wrt role checking) between types with same representation.
 
- 
Control.Concurrent.MVarhas a new implementation ofreadMVar,
which fixes a long-standing bug wherereadMVaris only atomic if
there are no other threads runningputMVar.readMVarnow is
atomic, and is guaranteed to return the value from the firstputMVar.  There is also a newtryReadMVarwhich is a
non-blocking version.
 
- 
New Control.Concurrent.MVar.withMVarMaskedwhich executesIOaction with asynchronous exceptions masked in the same style
as the existingmodifyMVarMaskedandmodifyMVarMasked_.
 
- 
New threadWait{Read,Write}STM :: Fd -> IO (STM (), IO ())functions added toControl.Concurrentfor waiting on FD
readiness with STM actions.
 
- 
Expose Data.Fixed.Fixed’s constructor.
 
- 
There are now byte endian-swapping primitives
byteSwap{16,32,64}available inData.Word, which use
optimized machine instructions when available.
 
- 
Data.Boolnow exportsbool :: a -> a -> Bool -> a, analogously
tomaybeandeitherin their respective modules.
 
- 
Data.Eithernow exportsisLeft, isRight :: Either a b -> Bool.
 
- 
Debug.Tracenow exportstraceId,traceShowId,traceM,
andtraceShowM.
 
- 
Data.Functornow exports($>)andvoid.
 
- 
Rewrote portions of Text.Printf, and made changes toNumeric(addedNumeric.showFFloatAltandNumeric.showGFloatAlt) andGHC.Float(addedformatRealFloatAlt) to support it.  The
rewritten version is extensible to user types, adds a “generic”
format specifier “%v”, extends theprintfspec to support much
of C’sprintf(3)functionality, and fixes the spurious warnings
about usingText.Printf.printfat(IO a)while ignoring the
return value.  These changes were contributed by Bart Massey.
 
- 
The minimal complete definitions for all type-classes with cyclic
default implementations have been explicitly annotated with the
new {-# MINIMAL #-}pragma.
 
- 
Control.Applicative.WrappedMonad, which can be used to convert aMonadto anApplicative, has now aMonad m => Monad (WrappedMonad m)instance.
 
- 
There is now a Genericand aGeneric1instance forWrappedMonadandWrappedArrow.
 
- 
Handle ExitFailure (-sig)on Unix by killing process with signalsig.
 
- 
New module Data.Type.Boolproviding operations on type-level booleans.
 
- 
Expose System.Mem.performMinorGCfor triggering minor GCs.
 
- 
New System.Environment.{set,unset}Envfor manipulating
environment variables.
 
- 
Add Typeableinstance for(->)andRealWorld.
 
- 
Declare CPP header <Typeable.h>officially obsolete as GHC 7.8+
does not support hand-writtenTypeableinstances anymore.
 
- 
Remove (unmaintained) Hugs98 and NHC98 specific code. 
- 
Optimize System.Timeout.timeoutfor the threaded RTS.
 
- 
Remove deprecated functions unsafeInterleaveST,unsafeIOToST,
andunsafeSTToIOfromControl.Monad.ST.
 
- 
Add a new superclass SomeAsyncExceptionfor all asynchronous exceptions
and makes the existingAsyncExceptionandTimeoutexception children
ofSomeAsyncExceptionin the hierarchy.
 
- 
Remove deprecated functions blocked,unblock, andblockfromControl.Exception.
 
- 
Remove deprecated function forkIOUnmaskedfromControl.Concurrent.
 
- 
Remove deprecated function unsafePerformIOexport fromForeign(still available viaSystem.IO.Unsafe.unsafePerformIO).
 
- 
Various fixes and other improvements (see Git history for full details).