Add `/Since: 4.7.0.0/` to `MkFixed` constructor
[packages/base.git] / changelog.md
1 # Changelog for [`base` package](http://hackage.haskell.org/package/base)
2
3 ## 4.7.0.0  *Feb 2014*
4
5   * Bundled with GHC 7.8.1
6
7   * The `Control.Category` module now has the `PolyKinds` extension
8     enabled, meaning that instances of `Category` no longer need be of
9     kind `* -> * -> *`.
10
11   * There are now `Foldable` and `Traversable` instances for `Either a`,
12    `Const r`, and `(,) a`.
13
14   * There is now a `Monoid` instance for `Const`.
15
16   * There is now a `Data` instance for `Data.Version`.
17
18   * There are now `Eq`, `Ord`, `Show` and `Read` instances for `ZipList`.
19
20   * There are now `Eq`, `Ord`, `Show` and `Read` instances for `Down`.
21
22   * There are now `Eq`, `Ord`, `Show`, `Read` and `Generic` instances
23     for types in GHC.Generics (`U1`, `Par1`, `Rec1`, `K1`, `M1`,
24     `(:+:)`, `(:*:)`, `(:.:)`).
25
26   * A zero-width unboxed poly-kinded `Proxy#` was added to
27     `GHC.Prim`. It can be used to make it so that there is no the
28     operational overhead for passing around proxy arguments to model
29     type application.
30
31   * `Control.Concurrent.MVar` has a new implementation of `readMVar`,
32     which fixes a long-standing bug where `readMVar` is only atomic if
33     there are no other threads running `putMVar`.  `readMVar` now is
34     atomic, and is guaranteed to return the value from the first
35     `putMVar`.  There is also a new `tryReadMVar` which is a
36     non-blocking version.
37
38   * There are now byte endian-swapping primitives available in
39     `Data.Word`, which use optimized machine instructions when
40     available.
41
42   * `Data.Bool` now exports `bool :: a -> a -> Bool -> a`, analogously
43     to `maybe` and `either` in their respective modules.
44
45   * Rewrote portions of `Text.Printf`, and made changes to `Numeric`
46     (added `Numeric.showFFloatAlt` and `Numeric.showGFloatAlt`) and
47     `GHC.Float` (added `formatRealFloatAlt`) to support it.  The
48     rewritten version is extensible to user types, adds a "generic"
49     format specifier "`%v`", extends the `printf` spec to support much
50     of C's `printf(3)` functionality, and fixes the spurious warnings
51     about using `Text.Printf.printf` at `(IO a)` while ignoring the
52     return value.  These changes were contributed by Bart Massey.
53
54   * The minimal complete definitions for all type-classes with cyclic
55     default implementations have been explicitly annotated with the
56     new `{-# MINIMAL #-}` pragma.
57
58   * `Control.Applicative.WrappedMonad`, which can be used to convert a
59     `Monad` to an `Applicative`, has now a
60     `Monad m => Monad (WrappedMonad m)` instance.