- 
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)
 
- 
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
 
- 
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).