Changelog for base-4.8.0.0
Changelog for base
package
4.8.0.0 Mar 2015
-
Bundled with GHC 7.10.1
-
Make
Applicative
a superclass ofMonad
-
Add reverse application operator
Data.Function.(&)
-
Add
Data.List.sortOn
sorting function -
Add
System.Exit.die
-
Deprecate
versionTags
field ofData.Version.Version
. AddmakeVersion :: [Int] -> Version
constructor function to aid migration to a futureversionTags
-lessVersion
. -
Add
IsList Version
instance -
Weaken RealFloat constraints on some
Data.Complex
functions -
Add
Control.Monad.(<$!>)
as a strict version of(<$>)
-
The
Data.Monoid
module now has thePolyKinds
extension enabled, so that theMonoid
instance forProxy
are polykinded likeProxy
itself is. -
Make
abs
andsignum
handle (-0.0) correctly per IEEE-754. -
Re-export
Data.Word.Word
fromPrelude
-
Add
countLeadingZeros
andcountTrailingZeros
methods toData.Bits.FiniteBits
class -
Add
Data.List.uncons
list 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
, andminimum
intoFoldable
methods (#9621) -
Replace the
Data.List
-exported functionsall, and, any, concat, concatMap, elem, find, product, sum, mapAccumL, mapAccumR
by re-exports of their generalised
Data.Foldable
/Data.Traversable
counterparts. In other words, unqualified imports ofData.List
andData.Foldable
/Data.Traversable
no longer lead to conflicting definitions. (#9586) -
New (unofficial) module
GHC.OldList
containing only list-specialised versions of the functions fromData.List
(in other words,GHC.OldList
corresponds tobase-4.7.0.2
'sData.List
) -
Replace the
Control.Monad
-exported functionssequence_, msum, mapM_, forM_, forM, mapM, sequence
by re-exports of their generalised
Data.Foldable
/Data.Traversable
counterparts. In other words, unqualified imports ofControl.Monad
andData.Foldable
/Data.Traversable
no longer lead to conflicting definitions. (#9586) -
Generalise
Control.Monad.{when,unless,guard}
fromMonad
toApplicative
and fromMonadPlus
toAlternative
respectively. -
Generalise
Control.Monad.{foldM,foldM_}
toFoldable
-
scanr
,mapAccumL
andfilterM
now take part in list fusion (#9355, #9502, #9546) -
Remove deprecated
Data.OldTypeable
(#9639) -
New module
Data.Bifunctor
providing theBifunctor(bimap,first,second)
class (previously defined inbifunctors
package) (#9682) -
New module
Data.Void
providing the canonical uninhabited typeVoid
(previously defined invoid
package) (#9814) -
Update Unicode class definitions to Unicode version 7.0
-
Add
Alt
, anAlternative
wrapper, toData.Monoid
. (#9759) -
Add
isSubsequenceOf
toData.List
(#9767) -
The arguments to
==
andeq
inData.List.nub
andData.List.nubBy
are swapped, such thatData.List.nubBy (<) [1,2]
now returns[1]
instead of[1,2]
(#2528, #3280, #7913) -
New module
Data.Functor.Identity
(previously provided bytransformers
package). (#9664) -
Add
scanl'
, a strictly accumulating version ofscanl
, toData.List
andData.OldList
. (#9368) -
Add
fillBytes
toForeign.Marshal.Utils
. -
Add new
displayException
method toException
typeclass. (#9822) -
Add
Data.Bits.toIntegralSized
, a size-checked version offromIntegral
. (#9816) -
New module
Numeric.Natural
providing newNatural
type representing non-negative arbitrary-precision integers. TheGHC.Natural
module 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.Flags
that 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 = id
forData.Fixed
(#9240) -
Add
calloc
andcallocBytes
toForeign.Marshal.Alloc
. (#9859) -
Add
callocArray
andcallocArray0
toForeign.Marshal.Array
. (#9859) -
Restore invariant in
Data (Ratio a)
instance (#10011) -
Add/expose
rnfTypeRep
,rnfTyCon
,typeRepFingerprint
, andtyConFingerprint
helpers toData.Typeable
. -
Define proper
MINIMAL
pragma 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.ForeignPtr
in Haddock (#8475) -
Fix recomputation of
TypeRep
inTypeable
type-application instance (#9203) -
Fix regression in Data.Fixed Read instance (#9231)
-
Fix
fdReady
to 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.Category
module now has thePolyKinds
extension enabled, meaning that instances ofCategory
no longer need be of kind* -> * -> *
. -
There are now
Foldable
andTraversable
instances forEither a
,Const r
, and(,) a
. -
There are now
Show
,Read
,Eq
,Ord
,Monoid
,Generic
, andGeneric1
instances forConst
. -
There is now a
Data
instance forData.Version
. -
A new
Data.Bits.FiniteBits
class has been added to represent types with fixed bit-count. The existingBits
class is extended with abitSizeMaybe
method to replace the now obsoletebitsize
method. -
Data.Bits.Bits
gained a newzeroBits
method which completes theBits
API with a direct way to introduce a value with all bits cleared. -
There are now
Bits
andFiniteBits
instances forBool
. -
There are now
Eq
,Ord
,Show
,Read
,Generic
. andGeneric1
instances forZipList
. -
There are now
Eq
,Ord
,Show
andRead
instances forDown
. -
There are now
Eq
,Ord
,Show
,Read
andGeneric
instances for types in GHC.Generics (U1
,Par1
,Rec1
,K1
,M1
,(:+:)
,(:*:)
,(:.:)
). -
Data.Monoid
: There are nowGeneric
instances forDual
,Endo
,All
,Any
,Sum
,Product
,First
, andLast
; as well asGeneric1
instances forDual
,Sum
,Product
,First
, andLast
. -
The
Data.Monoid.{Product,Sum}
newtype wrappers now haveNum
instances. -
There are now
Functor
instances 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.Proxy
module providing a concrete, poly-kinded proxy type. -
New
Data.Coerce
module which exports the newCoercible
class together with thecoerce
primitive which provide safe coercion (wrt role checking) between types with same representation. -
Control.Concurrent.MVar
has a new implementation ofreadMVar
, which fixes a long-standing bug wherereadMVar
is only atomic if there are no other threads runningputMVar
.readMVar
now is atomic, and is guaranteed to return the value from the firstputMVar
. There is also a newtryReadMVar
which is a non-blocking version. -
New
Control.Concurrent.MVar.withMVarMasked
which executesIO
action with asynchronous exceptions masked in the same style as the existingmodifyMVarMasked
andmodifyMVarMasked_
. -
New
threadWait{Read,Write}STM :: Fd -> IO (STM (), IO ())
functions added toControl.Concurrent
for 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.Bool
now exportsbool :: a -> a -> Bool -> a
, analogously tomaybe
andeither
in their respective modules. -
Data.Either
now exportsisLeft, isRight :: Either a b -> Bool
. -
Debug.Trace
now exportstraceId
,traceShowId
,traceM
, andtraceShowM
. -
Data.Functor
now exports($>)
andvoid
. -
Rewrote portions of
Text.Printf
, and made changes toNumeric
(addedNumeric.showFFloatAlt
andNumeric.showGFloatAlt
) andGHC.Float
(addedformatRealFloatAlt
) to support it. The rewritten version is extensible to user types, adds a "generic" format specifier "%v
", extends theprintf
spec to support much of C'sprintf(3)
functionality, and fixes the spurious warnings about usingText.Printf.printf
at(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 aMonad
to anApplicative
, has now aMonad m => Monad (WrappedMonad m)
instance. -
There is now a
Generic
and aGeneric1
instance forWrappedMonad
andWrappedArrow
. -
Handle
ExitFailure (-sig)
on Unix by killing process with signalsig
. -
New module
Data.Type.Bool
providing operations on type-level booleans. -
Expose
System.Mem.performMinorGC
for triggering minor GCs. -
New
System.Environment.{set,unset}Env
for manipulating environment variables. -
Add
Typeable
instance for(->)
andRealWorld
. -
Declare CPP header
<Typeable.h>
officially obsolete as GHC 7.8+ does not support hand-writtenTypeable
instances anymore. -
Remove (unmaintained) Hugs98 and NHC98 specific code.
-
Optimize
System.Timeout.timeout
for the threaded RTS. -
Remove deprecated functions
unsafeInterleaveST
,unsafeIOToST
, andunsafeSTToIO
fromControl.Monad.ST
. -
Add a new superclass
SomeAsyncException
for all asynchronous exceptions and makes the existingAsyncException
andTimeout
exception children ofSomeAsyncException
in the hierarchy. -
Remove deprecated functions
blocked
,unblock
, andblock
fromControl.Exception
. -
Remove deprecated function
forkIOUnmasked
fromControl.Concurrent
. -
Remove deprecated function
unsafePerformIO
export fromForeign
(still available viaSystem.IO.Unsafe.unsafePerformIO
). -
Various fixes and other improvements (see Git history for full details).