The significant changes to the various parts of the compiler are listed in the following sections. There have also been numerous bug fixes and performance improvements over the 7.0 branch. The 7.2 branch is intended to be more of a "technology preview" than normal GHC stable branches.
DPH support (???) has been significantly improved.
A new feature Safe Haskell (7.23. Safe Haskell) has been implemented.
It is now possible to write compiler plugins (9.3. コンパイラプラグイン).
          It is now possible to give classes equality superclasses,
          i.e. you can write something like
          class (F a ~ b) => C a b where { ... }.
          See 7.9. 同値性制約 for more details.
        
          The TypeSynonymInstances extension now
          correctly requires that instances are valid once the type
          synonym is expanded. For example, in order to have
        
instance SomeClass String where
    ...
          you need both TypeSynonymInstances and
          FlexibleInstances enabled, as the latter
          is necessary for
        
instance SomeClass [Char] where
    ...
          The DatatypeContexts extension (which will
          not be in the next Haskell language standard) is now off by
          default, and deprecated. It is still enabled by the
          Haskell98 and
          Haskell2010 languages.
          See 7.4.2. データ型文脈 for more details.
        
          There is a new extension
          NondecreasingIndentation, which controls
          an extension to the layout rule that was previously always
          enabled. It is now on by default, and (incorrectly, but for
          backwards compatibility) on in Haskell98,
          but off in Haskell2010.
        
          The new RelaxedLayout extension now
          controls a small extension to the layout rule that GHC has
          supported unconditionally for some time. It allows explicit
          braces to be less indented than implicit braces, without
          closing the implicit braces, e.g.:
        
f x = case x of
     False -> do
    { return x; }
parses as
f x = case x of
     {False -> do
    { return x; }}
There is a new family of language extensions, collectively known as "Safe Haskell". This includes notions of "safe modules", "trusted modules" and "trusted packages". See 7.23. Safe Haskell for more details.
          The new SafeImports extension extends the
          import declaration syntax to take an optional
          safe keyword after the
          import keyword, e.g. with
        
import safe Network.Socket
          compilation will only succeed if
          Network.Socket is a "trusted" module.
          See 7.3.20. safeインポート for more details.
        
          The new Trustworthy extension means that
          users of the package are able to declare that this module is
          to be trusted, even though GHC can't infer that it is safe.
          It implies the SafeImports extension.
          See 7.23.4. 信頼とSafe Haskellのモード for more details.
        
          The new Safe extension means GHC will
          check that a module's code is safe, and that all its imports
          are trusted. It implies the SafeImports
          extension, although all imports are required to be trusted
          anyway.
          See 7.23.2. safe language for more details.
        
          The new extension MonadComprehensions
          allows comprehension syntax to be usde with any Monad, not
          just lists. e.g.
        
[ x + y | x <- Just 1, y <- Just 2 ]
          evaluates to Just 3.
          See 7.3.11. Monad内包表記 for more details.
        
          The new DefaultSignatures extension
          allows you to define a default implementation for
          a class method that isn't as general as the method's type.
          For example,
        
class DefaultValue a where
    defaultValue :: a
    default defaultValue :: Num a => a
    defaultValue = 3
instance DefaultValue Int
instance DefaultValue Float
instance DefaultValue Char where
    defaultValue = 'x'
See 7.6.1.4. デフォルトメソッドシグネチャ for more details.
          The new DeriveGeneric extension allows
          instances of the new GHC.Generics.Generic
          class to be derived. Together with the
          DefaultSignatures extension this allows
          generic programming.
          See 7.20. 総称プログラミング for more details.
        
          The Generics extension has now been
          removed. Use the new DefaultSignatures and
          DeriveGeneric extensions instead.
          The {| curly-pipe bracket |} syntax is thus
          no longer recognised.
        
          The -XGenerics flag will give a warning,
          but the -fgenerics flag is no longer
          accepted.
        
          When the new InterruptibleFFI extension is
          enabled, it is now possible to annotate FFI imports as
          interruptible, e.g.
        
foreign import ccall interruptible
    "sleep" :: CUint -> IO CUint
          in which case for most foreign calls it is possible to
          interrupt the foreign call by using throwTo
          to throw an exception to the thread making the call.
          See 8.1.4. 割り込み可能な他言語呼び出し for more details.
        
          The threadsafe FFI annotation is no longer
          supported. Use safe instead.
        
          The OverlappingInstances extension used to
          allow overlapping instances only when all but the
          most specific instance were compiled with
          OverlappingInstances.
          Now overlap is allowed if either all but
          the most specific instance were compiled with
          OverlappingInstances,
          or if the most specific instance was
          compiled with OverlappingInstances.
        
          There is a new extension GADTSyntax,
          off by default, which permits generalised algebraic data type
          syntax for declaring traditional Haskell datatypes. It is
          enabled by the GADTs extension.
          See 7.4.6. 構築子のシグネチャを明示してデータ型を宣言する for more details.
        
          The NewQualifiedOperators extension, which was
          deprecated, has now been removed.
        
          There are new pragmas VECTORISE,
          VECTORISE_SCALAR and
          NOVECTORISE for controlling the behaviour
          of the vectoriser.
        
          Characters in the unicode OtherNumber
          category are now treated as being 'digit's, rather than 'other
          graphical' characters.
        
          The new -fwarn-identities flag warns about
          uses of toInteger,
          toRational, fromIntegral
          and realToFrac which are the identity.
        
          The new -fwarn-incomplete-uni-patterns
          flag warns about pattern matches in a lambda expression or
          pattern binding which could fail, e.g.
        
h = \[] -> 2 Just k = f y
          The new -fwarn-missing-local-sigs flag
          warns about polymorphic local bindings without type
          signatures. The warning includes the inferred type.
        
          The new -fwarn-missing-import-lists flag
          warns if you use an unqualified import declaration that does
          not explicitly list the entities brought into scope. For
          example,
        
import X (f) import Y import qualified Z
          will warn about the import of Y, but not
          X or Z. The rationale is
          that if module Y is later changed to
          export something called f, then any
          references to f will become ambiguous.
        
          The previously-undocumented flag
          -ddump-to-file causes the output from the
          other -ddump-* flags to be put in
          appropriately-named files, rather than printed on stdout.
        
          This now also includes the -ddump-simpl
          flag, whose output is put in
          file_base_name.dump-simpl.
        
          The new -dppr-noprags flag omits the
          pragma info in dumps.
        
          The new -ddump-rule-rewrites flag
          dumps detailed information about all rules that fired
          in this module.
        
          The new -ddump-vect flag dumps the output
          of the vectoriser.
        
          The new -ddump-vt-trace flag makes the
          vectoriser be very chatty about what it is up to.
        
          The new -ddump-core-stats flag prints
          a one-line summary of the size of the Core program at the
          end of the optimisation pipeline.
        
          The new -dppr-case-as-let flag prints
          single-alternative case expressions as though they were
          strict let expressions. This is helpful when your code
          does a lot of unboxing.
        
          The new -dsuppress-all flag suppresses
          everything that can be suppressed, except for unique ids
          (as this often makes the printout ambiguous). If you just
          want to see the overall structure of the code, then start
          here.
        
          The new -dsuppress-idinfo flag 
          suppresses extended information about identifiers where
          they are bound. This includes strictness information and
          inliner templates. Using this flag can cut the size of
          the core dump in half, due to the lack of inliner templates.
        
          The new -dsuppress-type-signatures flag 
          suppresses the printing of type signatures.
        
          The new -dsuppress-type-applications flag 
          suppresses the printing of type applications.
        
          The new -dppr-colsNNN flag sets the width
          of debugging output. Use this if your code is wrapping too
          much. For example, -dppr-cols200.
        
          The -k RTS flag, which sets the initial
          thread stack size (default 1k), has been renamed
          -ki. The old name still works, but may
          be removed in a future version of GHC.
        
          There are also new flags -kc, which
          sets the stack chunk size (default 32k), and
          -kb, which sets the stack chunk buffer
          size (default 1k).
        
Profiling reports now use constant width columns, so large values don't cause the layout to go wrong.
          The -L RTS flag, which sets the width of
          the labels in heap profile graphs, can now also be used when
          retainer profiling.
        
          The -qw RTS flag is now deprecated. It does
          nothing, and will be removed in a future version of GHC.
        
          We now keep copies of the argument lists we are passed, so
          it is safe for callers of hs_init() to
          free the pointers they pass.
        
The archive loader now supports Darwin "fat archives".
          Linker scripts using INPUT are now supported.
        
          The RtsFlags.h header file has finally been
          removed; use Rts.h instead.
        
There are some new threadscope event types:
| EVENT_CAPSET_CREATE | Create capability set | 
| EVENT_CAPSET_DELETE | Delete capability set | 
| EVENT_CAPSET_ASSIGN_CAP | Add capability to capability set | 
| EVENT_CAPSET_REMOVE_CAP | Remove capability from capability set | 
| EVENT_RTS_IDENTIFIER | RTS name and version | 
| EVENT_PROGRAM_ARGS | Program arguments | 
| EVENT_PROGRAM_ENV | Program environment variables | 
| EVENT_OSPROCESS_PID | Process ID | 
| EVENT_OSPROCESS_PPID | Parent process ID | 
          The linker now supports kfreebsdgnu.
        
          When using Haskell code as a library, and calling it from
          another language, it is no longer necessary to call the
          hs_add_root function.
        
          The "evil mangler" has been removed, and
          registerised compilation via C is no longer supported.
          This means that the
          -fvia-c,
          -fvia-C,
          -keep-raw-s-file,
          -keep-raw-s-files,
          -pgmm,
          -optm,
          -monly-2-regs,
          -monly-3-regs and
          -monly-4-regs
          flags are now deprecated, and
          have no effect.
          The -fasm-mangling and
          -fno-asm-mangling flags have been removed.
        
Unregisterised compilation, for architectures for which there is no native code generator, is still possible, and still compiles via C.
          Compiling Objective-C (.m) files is now
          supported, assuming your gcc is capable
          of compiling them.
        
          The new "Safe Haskell" extensions introduce three
          new GHC flags: -trust P exposes package
          P if it was hidden and considers it a
          trusted package;
          -distrust P exposes package
          P if it was hidden and considers it an
          untrusted package;
          -distrust-all-packages considers all
          packages distrusted unless they are explicitly set to be
          trusted by subsequent command-line options.
        
          Significant progress has been made on the new code generator,
          but it is not yet ready for prime-time. If you want to try
          it out, use the -fnew-codegen flag.
        
The Alpha native code generator had bitrotted, so has now been removed.
          Running ghc -v ... will no longer pass
          -v to gcc. You now need
          to use ghc -v4 ... (or higher) instead.
        
          The -Odph flag is now equivalent to
          -O2 -fsimplifier-phases=3 -fsimplifier-iterations=20.
        
          There is a new -fdph-none flag can be used
          to specify that no DPH backend should be used. It is now the
          default, i.e. -fdph-par or
          -fdph-seq need to be explicitly specified
          if required.
        
          The -n flag has been removed.
        
          The -fmethod-sharing flag has been removed.
        
          GHCi now has a multiline-input mode, enabled with
          :set +m. For example,
        
Prelude> :set +m Prelude> let x = 3 Prelude| y = 4 Prelude| in x + y 7 Prelude>
          The new :script command takes a filename
          as an argument, and executes each line in that file. It
          supports multiline statements if the +m
          mode is set.
        
          The new :issafe command tells you whether
          a module is considered to be trusted or not.
        
          When resolving abbreviated GHCi commands, we now prefer
          built-in commands to user defined commands. This makes things
          more consistent, e.g. :i will always mean
          :info, unless :i itself
          is defined by the user.
        
          The :m +M and import M
          GHCi commands now do exactly the same thing.
        
          With a new flag -ghci-script you can specify
          additional files to be read on startup, in the same way that
          .ghci is.
        
          There are new ghc-pkg commands trust
          and distrust, used for setting the
          trustworthiness of packages for Safe Haskell.
          See 4.9.6. パッケージ管理(ghc-pkgコマンド) for more details.
        
          The new flags
          -expand-env-vars,
          -expand-pkgroot and
          -no-expand-pkgroot
          control whether the ${pkgroot},
          ${pkgrooturl} and
          ${topdir} variables are expanded
          when printing information.
        
          The --auto-ghci-libs flag is deprecated,
          and will be removed in a future version.
        
          Cross-compilation is now supported by hsc2hs, for most features.
          The new --cross-compile
          (or -x) flag enables cross-compilation,
          while --cross-safe checks that only
          features for which cross-compilation works are used.
          See 11.2.4. クロスコンパイル for more details.
        
          The new --keep-files
          (or -k) flag makes hsc2hs keep the
          intermediate files that it generates.
        
GHC now has support for "plugins". This feature allows you to write a Core-to-Core pass and have it dynamically linked into an otherwise-unmodified GHC, and run at a place you specify in the Core optimisation pipeline.
          The new
          -fplugin=
          flag specifies that modulemodule is
          to be used as a plugin, and
          -fplugin-opt=
          allows arguments to be passed to the plugin.
        module:args
See 9.3. コンパイラプラグイン for more details.
Coercions now have their own datatype rather than being represented as types. They are now value-level things, rather than type-level things, although the value is zero bits wide (like the State token).
          The StmtLR datatype has a new constructor
          LastStmt, which holds the final
          (expression) statement of all comprehensions and
          do-blocks.
        
          The printExceptionAndWarnings function
          has been deprecated, in favour of the new
          printException function.
        
          The SrcSpan and SrcLoc
          types have been refactored so that the new
          RealSrcSpan and
          RealSrcLoc types are used when we have a
          real location, rather than an "unhelpful" location.
        
          The type of defaultErrorHandler has
          changed. In particular, this means that you will normally
          want to pass it defaultLogAction instead
          of defaultDynFlags.
        
          Calling withFlattenedDynflags is no longer
          necessary, and the function has been removed.
        
          Several of the old native code generator modules gained an
          Old prefix, when their names clashed with
          modules in the new native code generator.
        
GHC development now uses git repositories, rather than darcs repositories. Instructions for getting source trees are on the GHC wiki.
          The sync-all script, rather than the
          darcs-all script, is now used for dealing
          with repositories.
        
GHC >= 6.12 is now required to build GHC.
Building with gcc 4.6 now works.
On Windows, we now bundle gcc 4.5.2-1 (was 4.5.0-1).
GHC now works with LLVM 3.0.
          The location of gcc, and various other settings, is now in a
          settings file. The
          extra-gcc-opts file is no longer used.
        
          It is no longer necessary to set
          GhcWithLlvmCodeGen = YES in order to get
          llvm support: llvm support is now always enabled.
        
The new code generator is not yet ready for prime-time, but if you want to experiment with it you can make it the default by setting
GhcStage1DefaultNewCodegen=YES GhcStage2DefaultNewCodegen=YES GhcStage3DefaultNewCodegen=YES
          in your mk/build.mk.
        
          Platforms with a vendor of softfloat, such
          as armv5tel-softfloat-linux-gnueabi, are
          now supported.
        
Unicode support has generally been improved across the core libraries. This has a few consequences:
                Code that has been using the *CString
                functions may need to be corrected to use the
                *CAString functions.
            
Users may now observe strings — particularly those from the commandline — containing private-use characters, i.e. those in the range 0xEF00 to 0xEFFF inclusive.
Programs may now get exceptions when writing strings in the wrong encoding to (for example) stdout.
Version number 0.3.0.3 (was 0.3.0.2)
Version number 4.4.0.0 (was 4.3.1.0)
                    The Typeable module has been
                    overhauled. The mkTyCon
                    function has been deprecated; the preferable fix
                    is to derive Typeable instead
                    (see 7.5.3. より広範なクラスについてのderiving節(Typeable、Dataなど)),
                    although there is also a replacement
                    for mkTyCon in the form of a
                    new function
                    mkTyCon3, which takes separate
                    strings for the package, module and name of the
                    type constructor.
                    Also, typeRepKey is deprecated,
                    and both TypeRep
                    and TyCon now
                    have Ord instances which means
                    they can be used as Map keys.
                
                    The result of gcd 0 0 is now
                    0, rather than throwing an exception.
                
                    The result of minBound `rem` -1
                    and minBound `div` -1 is now 0,
                    rather than throwing an overflow exception.
                
                    Control.Concurrent now exports
                    new functions
                    forkIOWithUnmask,
                    forkOn,
                    forkOnWithUnmask,
                    getNumCapabilities and
                    threadCapability.
                    The forkIOUnmasked function has
                    been deprecated in favour of
                    forkIOWithUnmask.
                
                    The same changes have been made to
                    GHC.Conc and
                    GHC.Conc.Sync.
                
                    Control.Exception exports a new
                    function allowInterrupt which, when
                    invoked inside mask, allows a
                    blocked asynchronous exception to be raised, if one
                    exists.
                
                    System.IO.Unsafe now exports
                    the new function
                    unsafeDupablePerformIO.
                    This is a more efficient version of
                    unsafePerformIO, but may run the
                    IO action multiple times (currently, in GHC, only
                    when multiple threads try to evaluate it
                    simultaneously).
                
                    System.IO.Error now exports
                    new functions catchIOError and
                    tryIOError.
                    The try and catch
                    functions are now deprecated.
                
                    GHC.IO.Encoding now exports three
                    new TextEncodings:
                
                    The fileSystemEncoding encoding
                    is the Unicode encoding of the current locale, but
                    allows arbitrary undecodable bytes to be
                    round-tripped through it. It is used to decode and
                    encode command line arguments and environment
                    variables on non-Windows platforms.
                
                    The foreignEncoding encoding
                    is the Unicode encoding of the current locale, but
                    undecodable bytes are replaced with their closest
                    visual match. It's used for the
                    CString marshalling functions in
                    Foreign.C.String.
                
                    In the char8 encoding Unicode
                    code points are translated to bytes by taking the
                    code point modulo 256. When decoding, bytes are
                    translated directly into the equivalent code point.
                    This encoding is also exported by
                    System.IO.
                
                    The functions to make
                    TextEncodings now have
                    mk* variants which take a
                    CodingFailureMode argument.
                    The new functions, together with what they
                    generalise, are:
                
| GHC.IO.Encoding.Latin1 | latin1 | mkLatin1 | 
| GHC.IO.Encoding.Latin1 | latin1_checked | mkLatin1_checked | 
| GHC.IO.Encoding.UTF8 | utf8 | mkUTF8 | 
| GHC.IO.Encoding.UTF8 | utf8_bom | mkUTF8_bom | 
| GHC.IO.Encoding.UTF16 | utf16 | mkUTF16 | 
| GHC.IO.Encoding.UTF16 | utf16be | mkUTF16be | 
| GHC.IO.Encoding.UTF16 | utf16le | mkUTF16le | 
| GHC.IO.Encoding.UTF32 | utf32 | mkUTF32 | 
| GHC.IO.Encoding.UTF32 | utf32be | mkUTF32be | 
| GHC.IO.Encoding.UTF32 | utf32le | mkUTF32le | 
                    Similarly, there are new
                    mkCodePageEncoding and
                    mkLocaleEncoding
                    generalisations of
                    codePageEncoding and
                    localeEncoding in
                    GHC.IO.Encoding.CodePage.
                
                    GHC.IO.Encoding.Iconv has
                    been similarly altered, and now only exports
                    iconvEncoding,
                    mkIconvEncoding,
                    localeEncoding and
                    mkLocaleEncoding.
                
                    GHC.IO.Encoding.Types and
                    GHC.IO.Encoding now export a new
                    type CodingProgress which
                    describes the state of a text encoder. The
                    BufferCodec,
                    DecodeBuffer and
                    EncodeBuffer types have also
                    changed.
                
                    GHC.IO now exports bracket.
                
                    GHC.IO.blocked is now deprecated
                    in favour of
                    Control.Exception.getMaskingState.
                
                    GHC.Show now exports two new
                    helpers, showLitString (analogous
                    to showLitChar) and
                    showMultiLineString (which breaks
                    a string containing newlines characters up into
                    multiple strings).
                
                    The type of GHC.IO.FD.openFile
                    has changed to include a flag for whether to
                    open the file in non-blocking mode.
                
                    GHC.IO.Handle.FD now exports a
                    variant openFileBlocking of
                    openFile, which opens the file
                    in blocking mode.
                
                    The type of
                    Foreign.Marshal.Utils.maybeNew
                    has been generalised to
                    (a -> IO (Ptr b)) -> (Maybe a -> IO (Ptr b))
                
                    Foreign.C.Types now exports new
                    types CUSeconds and
                    CSUSeconds, corresponding to the
                    C types useconds_t and
                    suseconds_t respectively.
                
                    System.Posix.Internals new exports
                    new functions peekFilePath
                    and, on non-Windows platforms,
                    peekFilePathLen and
                    c_safe_open.
                
                    Data.List.inits,
                    Data.List.tails,
                    Data.List.intersperse and
                    Data.List.intersectBy
                    are now lazier.
                
                    Data.Char no longer exports
                    String.
                
                    Data.String now re-exports
                    String,
                    lines,
                    unlines,
                    words and
                    unwords.
                
                    There is now a Read instance for
                    Data.Fixed.Fixed a.
                
                    There are now Eq instances for
                    Control.Concurrent.Chan.Chan,
                    Control.Concurrent.QSem.QSem and
                    Control.Concurrent.QSemN.QSemN.
                
                    There are now Applicative
                    instances for
                    Control.Monad.ST.ST and
                    Control.Monad.ST.Lazy.ST.
                
                    There is now a
                    Typeable instance for
                    Control.Concurrent.SampleVar.SampleVar.
                
                    Most of GHC.PArr has been moved
                    into the dph package. Only the
                    [::] datatype remains.
                
                    There is a new module
                    Control.Monad.Group
                    for monadic grouping (used for monad comprehensions).
                
                    There is a new module
                    Control.Monad.Zip
                    for monadic zipping (used for monad comprehensions).
                
                    There is a new internal module
                    GHC.Foreign which provides
                    versions of some C string functions generalised
                    to be usable with any encoding.
                
                    There is a new internal module
                    GHC.IO.Encoding.Failure which
                    provides functionality for specifying how text
                    encoding and decoding fails.
                
                    On Windows, there is a new internal module
                    GHC.Windows which duplicates
                    part of System.Win32.Types.
                
                    Some functions have been moved from
                    GHC.Base down into
                    GHC.Classes.
                
                    There are now new internal modules
                    GHC.Float.ConversionUtils and
                    GHC.Float.RealFracMethods.
                
                    The safe parts of the Foreign
                    module are now in a new module
                    Foreign.Safe.
                    Foreign now reexports
                    all the safe code it used to, as well as
                    deprecated copies of the unsafe functions.
                
                    The Foreign.ForeignPtr module
                    has been split into
                    Foreign.ForeignPtr.Safe and
                    Foreign.ForeignPtr.Unsafe.
                    Foreign.ForeignPtr now
                    reexports
                    Foreign.ForeignPtr.Safe and
                    a deprecated copy of the unsafe function
                    (unsafeForeignPtrToPtr).
                
                    The Foreign.Marshal module
                    has been split into
                    Foreign.Marshal.Safe and
                    Foreign.Marshal.Unsafe.
                    Foreign.Marshal now
                    reexports
                    Foreign.Marshal.Safe and
                    a deprecated copy of the unsafe function
                    (unsafeLocalState).
                
                    The Control.Monad.ST module
                    has been split into
                    Control.Monad.ST.Safe and
                    Control.Monad.ST.Unsafe.
                    Control.Monad.ST now
                    reexports
                    Control.Monad.ST.Safe and
                    deprecated copies of the unsafe functions
                    (unsafeInterleaveST,
                    unsafeIOToST and
                    unsafeSTToIO).
                
                    The Control.Monad.ST.Lazy module
                    has been split into
                    Control.Monad.ST.Lazy.Safe and
                    Control.Monad.ST.Lazy.Unsafe.
                    Control.Monad.ST.Lazy now
                    reexports
                    Control.Monad.ST.Lazy.Safe and
                    deprecated copies of the unsafe functions
                    (unsafeInterleaveST
                    and unsafeIOToST).
                
                    The System.Event module has been
                    renamed GHC.Event.
                
                    Following the removal of
                    DatatypeContexts from the
                    language, the definitions of
                    Control.Arrow.ArrowMonad,
                    Array and
                    Complex and
                    Ratio have had their
                    datatype contexts removed.
                
                    Many modules have been marked
                    Trustworthy.
                
                    System.Posix.Internals now
                    exports a function puts, for
                    debugging within the base package.
                
The Unicode data is now based on version 6.0.0 (was 5.1.0) of the Unicode spec.
This is an internal package, and should not be used.
New package, version 0.5.1.0. TODO: Bump version It is not exposed by default.
Version number 0.9.2.0 (was 0.9.1.10)
                    There is now an
                    hPutNonBlocking
                    function in
                    Data.ByteString,
                    Data.ByteString.Char8,
                    Data.ByteString.Lazy and
                    Data.ByteString.Lazy.Char8.
                
                    There are now hPutStrLn
                    and putStrLn functions in
                    Data.ByteString.Char8 and
                    Data.ByteString.Lazy.Char8.
                
                    The functions in
                    Data.ByteString and
                    Data.ByteString.Lazy
                    are now deprecated.
                
Version number 1.12.0.0 (was 1.10.2.0) TODO: Currently we have 1.11.0. The branch needs to be created.
For details of changes to Cabal, please see the Cabal changelog.
Version number 0.4.1.0 (was 0.4.0.0) TODO: Bump version
                    Data.Map now exports new
                    functions foldrWithKey' and
                    foldlWithKey', which are strict
                    variants of foldrWithKey and
                    foldlWithKey respectively.
                
                    Data.IntMap now exports new
                    functions insertWith' and
                    insertWithKey', which are strict
                    variants of insertWith and
                    insertWithKey respectively.
                
Version number 1.1.0.1 (was 1.1.0.0)
Version number 0.1.1.3 (was 0.1.1.2)
Version number 1.2.0.1 (was 1.2.0.0)
                    The handling of "." as a component in a
                    FilePath is now more consistent.
                    See #3975 for more information.
                
GHC no longer includes this internal package.
This is an internal package, and should not be used.
Version number 2.0.0.0 (was 1.1.0.1)
                    It is no longer possible to use the haskell98
                    package with the base package, as it now includes the
                    Prelude and
                    Numeric modules. The haskell98
                    package is therefore now hidden by default.
                
Version number 1.1.0.0 (was 1.0.0.0)
                    The splitAt function now
                    has the correct strictness, as defined by the
                    report.
                
This is a new package, version 3.8.7.2. TODO: Bump version number. 3.8.7.1 is on hackage.
Version number 0.5.1.0 (was 0.5.0.6)
                    A new function catchIO is now
                    exported by Trace.Hpc.Util.
                
Version number 0.3.0.0 (was 0.2.0.2)
                    Now exposes two new modules,
                    GHC.Integer.Logarithms and
                    GHC.Integer.Logarithms.Internals.
                
                    The toInt# function has been
                    renamed to integerToInt.
                
Version number 1.0.0.3 (was 1.0.0.2)
Version number 1.0.0.7 (was 1.0.0.6)
Version number 1.1.0.0 (was 1.0.1.2)
                    There is a new function
                    sizedText,
                    which allows you to specify the width that a string
                    should be considered to have.
                
                    The Doc type is now an instance
                    of IsString and
                    Monoid.
                
Version number 1.1.0.0 (was 1.0.1.4)
                    There is a new function
                    showCommandForUser in
                    System.Process which,
                    given a program and its arguments,
                    returns a string suitable for pasting
                    into sh (on POSIX OSs) or cmd.exe (on Windows).
                
                    There is a new function
                    interruptProcessGroupOf in
                    System.Process which
                    sends an interrupt signal to the process group of
                    the given process. On Unix systems, it sends the
                    group the SIGINT signal.
                    On Windows systems, it generates a
                    CTRL_BREAK_EVENT and will only
                    work for processes created using
                    createProcess with the
                    create_group flag set.
                
                    The CreateProcess
                    constructor, exported by
                    System.Process.Internals and
                    System.Process, has a new
                    Bool field
                    create_group
                    which specifies whether a process group should be created.
                
                    The type of withCEnvironment
                    on Windows is now more consistent with other
                    platforms, as the action now takes a
                    Ptr CWString rather than
                    Ptr ().
                
GHC no longer includes the random library
Version number 2.6.0.0 (was 2.5.0.0)
                    In Language.Haskell.TH.Syntax
                    the Exp, Pat
                    and Type datatypes have new
                    constructors UnboxedTupE,
                    UnboxedTupP and
                    UnboxedTupleT respectively.
                    There are also new helper functions
                    unboxedTupleTypeName and
                    unboxedTupleDataName.
                
                    There are corresponding helper functions
                    unboxedTupE,
                    unboxedTupP and
                    unboxedTupleT in
                    Language.Haskell.TH.Lib.
                
                    In Language.Haskell.TH.Syntax
                    the Safety type has a new
                    constructor Interruptible.
                
                    There is a corresponding new value
                    interruptible :: Safety
                    in Language.Haskell.TH.Lib.
                
                    However, the Threadsafe
                    constructor and threadsafe
                    helper have been removed, following the removal
                    of the feature from GHC.
                
                    In Language.Haskell.TH.Syntax,
                    the classInstances function now
                    has type
                    Name -> [Type] -> Q [ClassInstance],
                    and the qClassInstances instance
                    of the Quasi class now has type
                    Name -> [Type] -> m [ClassInstance].
                
                    There are now helper functions
                    pprString and
                    hashParens exported from
                    Language.Haskell.TH.Ppr.
                
                    The helper functions
                    combine,
                    rename,
                    genpat,
                    alpha and
                    simpleMatch
                    have been removed from
                    Language.Haskell.TH.Lib.
                
Version number 1.2.0.5 (was 1.2.0.3)
                    The %-, %_
                    and %0 specifiers can now be
                    used. For example,
                
> parseTime defaultTimeLocale "%-m/%e/%Y" "3/9/2011" :: Maybe Day Just 2011-03-09
The default year is now correctly in the range 1969-2068, rather than 1900-1999.
                    Some cases in which an exception was thrown now
                    correctly return Nothing.
                
Version number 2.5.0.0 (was 2.4.2.0)
                    In System.Posix.Process
                    the createProcessGroup
                    and setProcessGroupID
                    functions have been deprecated.
                
                    There are new functions, which subsume their
                    functionality, called
                    createProcessGroupFor,
                    getProcessGroupIDOf and
                    setProcessGroupIDOf.
                
                    In System.Posix.Error, there is a
                    new variant of
                    throwErrnoPathIfMinus1Retry
                    called
                    throwErrnoPathIfMinus1Retry_,
                    which returns IO ().
                
Version number 2.2.1.0 (was 2.2.0.2)
                    There are new functions
                    getProcessId and
                    c_GetProcessId in
                    System.Win32.Process.