[Haskell-cafe] Language complexity & beginners (Was: New type of ($) operator in GHC 8.0 is problematic)

Takenobu Tani takenobu.hs at gmail.com
Thu Feb 11 13:47:26 UTC 2016


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 at smart-cactus.org>:

> Takenobu Tani <takenobu.hs at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160211/317f681c/attachment.html>


More information about the Haskell-Cafe mailing list