Better Comment [Kind-changing of (~) and Coercible]
authorJoachim Breitner <mail@joachim-breitner.de>
Fri, 14 Mar 2014 11:26:14 +0000 (12:26 +0100)
committerJoachim Breitner <mail@joachim-breitner.de>
Fri, 14 Mar 2014 11:27:50 +0000 (12:27 +0100)
libraries/ghc-prim/GHC/Types.hs

index 25f4176..3023045 100644 (file)
@@ -95,11 +95,21 @@ Furthermore the type of MkCoercible cannot be written in Haskell (no syntax for
 
 So we define them as regular data types in GHC.Types, but do /not/ export them.
 This ensures we have a home module. We then define them with the types and
-kinds that we actually want, in TysWiredIn, and export them in GHC.Prim.
+kinds that we actually want, in TysWiredIn.
+
+We also export coercibleTyCon in PrelInfo's ghcPrimExports.
+(This is not needed for (~), as that is not importable and handled specially by
+the parser).
+Why not export it in GHC.Types? Because then ghci and haddock would, for some
+reason, display it as a data type, and not as a constraint.
 
 Haddock still takes the documentation from GHC.Types (and not from the fake
 module created from primops.txt.pp), so we have the user-facing documentation
 here.
+
+(This this note merely documents what is implemented because it happens to
+work, and should not be taken as an indication of good design. Cleanup is
+appreciated).
 -}