[Haskell-cafe] ($) and ApplicativeDo
Joe Quinn
headprogrammingczar at gmail.com
Thu Jun 16 16:39:17 UTC 2016
I expect it's that the root of the expression on the last line is ($)
and not pure. ApplicativeDo has restrictions on what you can do to avoid
allowing blocks that have to translate in terms of join/(>>=), and
likely one of them is that the last line can't be an arbitrary thing of
the right type.
On 6/16/2016 12:30 PM, amindfv at gmail.com wrote:
> They're the same:
>
> > :t \x -> pure x
> \x -> pure x :: Applicative f => a -> f a
> > :t \x -> pure $ x
> \x -> pure $ x :: Applicative f => a -> f a
>
> Tom
>
>
> El 16 jun 2016, a las 12:24, KC <kc1956 at gmail.com
> <mailto:kc1956 at gmail.com>> escribió:
>
>> Think of the types of
>>
>> pure x
>>
>> And
>>
>> pure $ x
>>
>> --
>> --
>>
>> Sent from an expensive device which will be obsolete in a few months! :D
>>
>> Casey
>>
>> On Jun 16, 2016 9:06 AM, <amindfv at gmail.com
>> <mailto:amindfv at gmail.com>> wrote:
>>
>> foo :: Applicative f => f String
>> foo = do
>> x <- pure "this works"
>> pure x
>>
>> ... but replace "pure x" with "pure $ x" and it doesn't
>> typecheck: a monad instance is required!
>>
>> Tom
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org <mailto:Haskell-Cafe at haskell.org>
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160616/96bb9e4e/attachment.html>
More information about the Haskell-Cafe
mailing list