[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