[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/ghc-devs/attachments/20160211/317f681c/attachment.html>
More information about the ghc-devs
mailing list