[Haskell-beginners] Fwd: Re: Multiple letters between -> ->
Marcus Manning
iconsize at gmail.com
Sat Nov 25 12:06:03 UTC 2017
-------- Forwarded Message --------
Subject: Re: [Haskell-beginners] Multiple letters between -> ->
Date: Sat, 25 Nov 2017 13:05:25 +0100
From: Marcus Manning <iconsize at gmail.com>
To: Francesco Ariis <fa-ml at ariis.it>
Sorry, for the long break.
Thanks for replying.
I do not believe that h is a higher kinded type. What I want to express
is that a function f could take a type constructor as argument and
simply returns it, but
f Maybe
throws an Error
<interactive>:13:3: error:
• Data constructor not in scope: Maybe :: h a
• Perhaps you meant variable ‘maybe’ (imported from Prelude)
So what instead does h a mean in a function declaration?
Cheers,
Marcus.
On 11/23/2017 06:27 PM, Francesco Ariis wrote:
> On Thu, Nov 23, 2017 at 06:19:51PM +0100, Marcus Manning wrote:
>> Hi,
>>
>> Original I thought a Signature like:
>>
>> f :: h a -> h a
>>
>> means that h is a higher kinded type just like in Type Classes ( for
>> instance f in Functor f).
>>
>> But I heard such a meaning is not allowed in normal Haskell functions. What
>> instead is the meaning of h a?
> Hello Marcus,
> you can write that but, since we know nothing about `h` and `a`,
> the only possible (non-undefined) function to implement that
> signature is:
>
> f :: h a -> h a
> f = id
>
> Any other implementation would require us to know something about h,
> hence a typeclass-constraint (e.g. Functor h =>) on h.
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20171125/e42f9f2c/attachment.html>
More information about the Beginners
mailing list