
Hi Ben,
Thank you for explanation.
Sorry, I was misunderstood that ghc8 changes representation of '*'.
(In addition to the Bool, but also Int, Float,..)
There are also followings:
Alternative f => Monoid (Alt (TYPE Lifted) f a)
Functor (Proxy (TYPE Lifted))
Foldable (Const (TYPE Lifted) m)
Thank you very much,
Takenobu
2016-02-11 21:33 GMT+09:00 Ben Gamari
Takenobu Tani
writes: Hi,
I understood one more point. (I share here.) The Prelude library document for ghc 8.0 is already well described for beginners/newcomers.
* The ($)'s signature of 8.0.1 is already simple (not include forall ...). * The Bool's kind of 8.0.1 is already represented with "TYPE Lifted" (changed from '*').
ghc7.8.4 [1]:
data Bool :: * foldr :: (a -> b -> b) -> b -> [a] -> b ($) :: (a -> b) -> a -> b
ghc7.10.4 [2]:
data Bool :: * foldr :: (a -> b -> b) -> b -> t a -> b ($) :: (a -> b) -> a -> b
ghc8.0.1-rc2 [3]:
data Bool :: TYPE Lifted
To clarify, this isn't actually a change; `*` is merely a synonym for `TYPE 'Lifted`.
Moreover, I believe this is a bug. In general we should continue to show `*` for plain lifted types. If you look at other types in the -rc2 haddocks you will see that they are indeed rendered as they were in previous releases, with no kind annotation at all. Bool is likely only rendered differently as it is a wired-in type; we'll need to fix this. I've opened #11567 to track this issue.
Cheers,
- Ben