diff options
author | sheaf <sam.derbyshire@gmail.com> | 2021-06-03 14:17:52 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-06-04 12:44:19 -0400 |
commit | 733757adb54eccdb4428e5ca4b2d896804bf5965 (patch) | |
tree | 6542f3d992d0e5d1a95665597c2d13cba9e95fec /libraries/ghc-prim/changelog.md | |
parent | f1b748b491dc49cfbe698cd790610ca21ae21ee7 (diff) | |
download | haskell-733757adb54eccdb4428e5ca4b2d896804bf5965.tar.gz |
Make some simple primops levity-polymorphic
Fixes #17817
Diffstat (limited to 'libraries/ghc-prim/changelog.md')
-rw-r--r-- | libraries/ghc-prim/changelog.md | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libraries/ghc-prim/changelog.md b/libraries/ghc-prim/changelog.md index 1ce61e2e61..122856346f 100644 --- a/libraries/ghc-prim/changelog.md +++ b/libraries/ghc-prim/changelog.md @@ -20,6 +20,26 @@ Note that the explicit type applications are required, as the call to `withDict` would be ambiguous otherwise. +- `mkWeak#`, `mkWeakNoFinalizer#`, `touch#` and `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 `Levity` + instead of `RuntimeRep`. In addition, this variable is now inferred, + instead of specified, meaning that it is no longer eligible for visible type application. + +- The `RuntimeRep` parameter to `raise#` is now inferred: + + ``` + raise# :: forall (a :: Type) {r :: RuntimeRep} (b :: TYPE r). a -> b + ``` + + ## 0.8.0 (edit as necessary) - Change array access primops to use type with size maxing the element size: |