Changelog for base-4.16.0.0
Changelog for base package
\
4.16.0.0 Nov 2021
-
Shipped with GHC 9.2.1
-
The unary tuple type,
Solo, is now exported byData.Tuple. -
Add a
Typeableconstraint tofromStaticPtrin the classGHC.StaticPtr.IsStatic. -
Make it possible to promote
Naturals and remove the separateNatkind. For backwards compatibility,Natis now a type synonym forNatural. As a consequence, one must enableTypeSynonymInstancesin order to define instances forNat. Also, different instances forNatandNaturalwon't typecheck anymore. -
Add
Data.Type.Ordas a module for type-level comparison operations. The(<=?)type operator fromGHC.TypeNats, previously kind-specific toNat, is now kind-polymorphic and governed by theComparetype family inData.Type.Ord. Note that this means GHC will no longer deduce0 <= nfor allnany more. -
Add
cmpNat,cmpSymbol, andcmpChartoGHC.TypeNatsandGHC.TypeLits. -
Add
CmpChar,ConsSymbol,UnconsSymbol,CharToNat, andNatToChartype families toGHC.TypeLits. -
Add the
KnownCharclass,charValandcharVal'toGHC.TypeLits. -
Add
SemigroupandMonoidinstances forData.Functor.ProductandData.Functor.Compose. -
Add
Functor,Applicative,Monad,MonadFix,Foldable,Traversable,Eq,Ord,Show,Read,Eq1,Ord1,Show1,Read1,Generic,Generic1, andDatainstances forGHC.Tuple.Solo. -
Add
Eq1,Read1andShow1instances forComplex; addEq1/2,Ord1/2,Show1/2andRead1/2instances for 3 and 4-tuples. -
Remove
Data.Semigroup.Optionand the accompanyingoptionfunction. -
Make
allocaBytesAlignedandallocathrow an IOError when the alignment is not a power-of-two. The underlying primopnewAlignedPinnedByteArray#actually always assumed this but we didn't document this fact in the user facing API until now.Generic1, andDatainstances forGHC.Tuple.Solo. -
Under POSIX,
System.IO.openFilewill no longer leak a file descriptor if it is interrupted by an asynchronous exception (#19114, #19115). -
Additionally export
asumfromControl.Applicative -
fromInteger :: Integer -> Float/Doublenow consistently round to the nearest value, with ties to even.
4.15.0.0 Feb 2021
-
openFilenow calls theopensystem call with aninterruptibleFFI call, ensuring that the call can be interrupted withSIGINTon POSIX systems. -
Add
hGetContents',getContents', andreadFile'inSystem.IO: Strict IO variants ofhGetContents,getContents, andreadFile. -
Add
singletonfunction forData.List.NonEmpty. -
The planned deprecation of
Data.Monoid.FirstandData.Monoid.Lastis scrapped due to difficulties with the suggested migration path. -
Data.Semigroup.Optionand the accompanyingoptionfunction are deprecated and scheduled for removal in 4.16. -
Add
Genericinstances toFingerprint,GiveGCStats,GCFlags,ConcFlags,DebugFlags,CCFlags,DoHeapProfile,ProfFlags,DoTrace,TraceFlags,TickyFlags,ParFlags,RTSFlags,RTSStats,GCStats,ByteOrder,GeneralCategory,SrcLoc -
Add rules
unpackUtf8,unpack-listUtf8andunpack-appendUtf8toGHC.Base. They correspond to their ascii versions and hopefully make it easier for libraries to handle utf8 encoded strings efficiently. -
An issue with list fusion and
elemwas fixed.elemapplied to known small lists will now compile to a simple case statement more often. -
Add
MonadFixandMonadZipinstances forComplex -
Add
Ixinstances for tuples of size 6 through 15 -
Correct
Boundedinstance and removeEnumandIntegralinstances forData.Ord.Down. -
catMaybesis now implemented usingmapMaybe, so that it is both a "good consumer" and "good producer" for list-fusion (#18574) -
Foreign.ForeignPtr.withForeignPtris now less aggressively optimised, avoiding the soundness issue reported in #17760 in exchange for a small amount more allocation. If your application regresses significantly and the continuation given towithForeignPtrwill not provably diverge then the previous optimisation behavior can be recovered by instead usingGHC.ForeignPtr.unsafeWithForeignPtr. -
Correct
Boundedinstance and removeEnumandIntegralinstances forData.Ord.Down. -
Data.Foldablemethodsmaximum{,By},minimum{,By},productandsumare now stricter by default, as well as in the class implementation for List.
4.14.0.0 Jan 2020
-
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.
4.13.0.0 July 2019
-
Bundled with GHC 8.8.1
-
The final phase of the
MonadFailproposal has been implemented:-
The
failmethod ofMonadhas been removed in favor of the method of the same name in theMonadFailclass. -
MonadFail(fail)is now re-exported from thePreludeandControl.Monadmodules.
-
-
Fix
Showinstance ofData.Fixed: Negative numbers are now parenthesized according to their surrounding context. I.e.Data.Fixed.showproduces syntactically correct Haskell for expressions likeJust (-1 :: Fixed E2). (#16031) -
Support the characters from recent versions of Unicode (up to v. 12) in literals (#5518).
-
The
StableNametype parameter now has a phantom role instead of a representational one. There is really no reason to care about the type of the underlying object. -
Add
foldMap', a strict version offoldMap, toFoldable. -
The
shiftLandshiftRmethods in theBitsinstances ofInt,IntN,Word, andWordNnow throw an overflow exception for negative shift values (instead of being undefined behaviour). -
scanrno longer crashes when passed a fusable, infinite list. (#16943)
4.12.0.0 21 September 2018
-
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)
4.11.1.0 19 April 2018
-
Bundled with GHC 8.4.2
-
Add the
readFieldHashfunction toGHC.Readwhich behaves likereadField, but for a field that ends with a#symbol (#14918).
4.11.0.0 8 March 2018
-
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).
4.10.1.0 November 2017
-
Bundled with GHC 8.2.2
-
The file locking primitives provided by
GHC.IO.Handlenow use Linux open file descriptor locking if available. -
Fixed bottoming definition of
clearBitforNatural
4.10.0.0 July 2017
-
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 modulesData.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.
4.9.0.0 May 2016
-
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)
New instances
-
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.
Generalizations
-
Generalize
Debug.Trace.{traceM, traceShowM}fromMonadtoApplicative(#10023) -
Redundant typeclass constraints have been removed:
Data.Ratio.{denominator,numerator}have noIntegralconstraint anymore- TODO
-
Generalise
foreverfromMonadtoApplicative -
Generalize
filterM,mapAndUnzipM,zipWithM,zipWithM_,replicateM,replicateM_fromMonadtoApplicative(#10168) -
The
Genericinstance forProxyis now poly-kinded (#10775) -
Enable
PolyKindsin theData.Functor.Constmodule to giveConstthe kind* -> k -> *. (#10039)
4.8.2.0 Oct 2015
-
Bundled with GHC 7.10.3
-
The restore operation provided by
maskanduninterruptibleMasknow restores the previous masking state whatever the current masking state is. -
Exported
GiveGCStats,DoCostCentres,DoHeapProfile,DoTrace,RtsTime, andRtsNatfromGHC.RTS.Flags
4.8.1.0 Jul 2015
-
Bundled with GHC 7.10.2
-
Lifetimeis now exported fromGHC.Event -
Implicit-parameter based source location support exposed in
GHC.SrcLocandGHC.Stack. See GHC User's Manual for more information.
4.8.0.0 Mar 2015
-
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 functionsall, and, any, concat, concatMap, elem, find, product, sum, mapAccumL, mapAccumRby 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 functionssequence_, msum, mapM_, forM_, forM, mapM, sequenceby 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.ConcdisableAllocationLimit :: 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)
4.7.0.2 Dec 2014
-
Bundled with GHC 7.8.4
-
Fix performance bug in
Data.List.inits(#9345) -
Fix handling of null bytes in
Debug.Trace.trace(#9395)
4.7.0.1 Jul 2014
-
Bundled with GHC 7.8.3
-
Unhide
Foreign.ForeignPtrin Haddock (#8475) -
Fix recomputation of
TypeRepinTypeabletype-application instance (#9203) -
Fix regression in Data.Fixed Read instance (#9231)
-
Fix
fdReadyto honorFD_SETSIZE(#9168)
4.7.0.0 Apr 2014
-
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).