blob: 8d92d57eec4ff8fd3dbdbf70d2a73199050eaf41 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
.. _release-9-4-1:
Version 9.4.1
==============
``base`` library
~~~~~~~~~~~~~~~~
- ``GHC.Exts.magicDict`` has been renamed to ``withDict`` and given a more
specific type: ::
withDict :: forall {rr :: RuntimeRep} st dt (r :: TYPE rr). st -> (dt => r) -> r
Unlike ``magicDict``, ``withDict`` can be used without defining an
intermediate data type. For example, the ``withTypeable`` function from the
``Data.Typeable`` module can now be defined as: ::
withTypeable :: forall k (a :: k) rep (r :: TYPE rep). ()
=> TypeRep a -> (Typeable a => r) -> r
withTypeable rep k = withDict @(TypeRep a) @(Typeable a) rep k
Note that the explicit type applications are required, as the call to
``withDict`` would be ambiguous otherwise.
|