[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