diff options
Diffstat (limited to 'docs/users_guide/9.4.1-notes.rst')
-rw-r--r-- | docs/users_guide/9.4.1-notes.rst | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/docs/users_guide/9.4.1-notes.rst b/docs/users_guide/9.4.1-notes.rst index 8d92d57eec..73901ad8be 100644 --- a/docs/users_guide/9.4.1-notes.rst +++ b/docs/users_guide/9.4.1-notes.rst @@ -21,3 +21,22 @@ Version 9.4.1 Note that the explicit type applications are required, as the call to ``withDict`` would be ambiguous otherwise. + +``ghc-prim`` library +~~~~~~~~~~~~~~~~~~~~ + +- ``GHC.Exts.mkWeak#``, ``GHC.Exts.mkWeakNoFinalizer#``, ``GHC.Exts.touch#`` + and ``GHC.Exts.keepAlive#`` are now levity-polymorphic instead of + representation-polymorphic. For instance: :: + + mkWeakNoFinalizer# + :: forall {l :: Levity} (a :: TYPE (BoxedRep l)) (b :: Type) + . a -> b -> State# RealWorld -> (# State# RealWorld, Weak# b #) + + That is, the type signature now quantifies over a variable of type ``GHC.Exts.Levity`` + instead of ``GHC.Exts.RuntimeRep``. In addition, this variable is now inferred, + instead of specified, meaning that it is no longer eligible for visible type application. + +- The ``GHC.Exts.RuntimeRep`` parameter to ``GHC.Exts.raise#`` is now inferred: :: + + raise# :: forall (a :: Type) {r :: RuntimeRep} (b :: TYPE r). a -> b |