diff options
author | David Feuer <david.feuer@gmail.com> | 2018-10-04 13:52:23 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-10-04 22:27:54 -0400 |
commit | 228725747c3e493c36d6b6ad1034ca56581cb758 (patch) | |
tree | e22ffb0f30a5955b4cf483c653ddaf5d1f8691b4 | |
parent | e5013a567b230018b5d39b562ce21faf54740d04 (diff) | |
download | haskell-228725747c3e493c36d6b6ad1034ca56581cb758.tar.gz |
Stable name type role
Make the `StableName#` parameter phantom:
There is actually never any reason to care about the type of
the underlying object of a `StableName#`. The underlying object
type shouldn't really even *be* a parameter. But at least we
can mark it as phantom.
Reviewers: hvr, bgamari, erikd, simonmar
Reviewed By: simonmar
Subscribers: ekmett, rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5117
-rw-r--r-- | compiler/prelude/TysPrim.hs | 2 | ||||
-rw-r--r-- | docs/users_guide/8.8.1-notes.rst | 8 | ||||
-rw-r--r-- | libraries/base/changelog.md | 4 |
3 files changed, 13 insertions, 1 deletions
diff --git a/compiler/prelude/TysPrim.hs b/compiler/prelude/TysPrim.hs index c5af4a5121..4a69df8e3e 100644 --- a/compiler/prelude/TysPrim.hs +++ b/compiler/prelude/TysPrim.hs @@ -943,7 +943,7 @@ mkStablePtrPrimTy ty = TyConApp stablePtrPrimTyCon [ty] -} stableNamePrimTyCon :: TyCon -stableNamePrimTyCon = pcPrimTyCon stableNamePrimTyConName [Representational] UnliftedRep +stableNamePrimTyCon = pcPrimTyCon stableNamePrimTyConName [Phantom] UnliftedRep mkStableNamePrimTy :: Type -> Type mkStableNamePrimTy ty = TyConApp stableNamePrimTyCon [ty] diff --git a/docs/users_guide/8.8.1-notes.rst b/docs/users_guide/8.8.1-notes.rst index 6bdde400bb..a27aee721e 100644 --- a/docs/users_guide/8.8.1-notes.rst +++ b/docs/users_guide/8.8.1-notes.rst @@ -104,6 +104,10 @@ Template Haskell eventlog events similar to ``traceBinaryEvent#`` but allows the user to pass the event payload as a binary blob instead of a ``String``. +- The ``StableName#`` type parameter now has a phantom role instead of + a representational one. There is really no reason to care about the + type of the underlying object. + ``ghc`` library ~~~~~~~~~~~~~~~ @@ -114,6 +118,10 @@ Template Haskell - Support the characters from recent versions of Unicode (up to v. 12) in literals (see :ghc-ticket:`5518`). +- The ``StableName`` type parameter now has a phantom role instead of + a representational one. There is really no reason to care about the + type of the underlying object. + Build system ~~~~~~~~~~~~ diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md index 8964edd7ff..3709a0a1a2 100644 --- a/libraries/base/changelog.md +++ b/libraries/base/changelog.md @@ -6,6 +6,10 @@ * Support the characters from recent versions of Unicode (up to v. 12) in literals (#5518). + * The `StableName` type parameter now has a phantom role instead of + a representational one. There is really no reason to care about the + type of the underlying object. + ## 4.12.0.0 *TBA* * Bundled with GHC *TBA* |