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 <ben@smart-cactus.org>:
Takenobu Tani <takenobu.hs@gmail.com> 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