[Haskell-cafe] ($) and ApplicativeDo

amindfv at gmail.com amindfv at gmail.com
Thu Jun 16 16:49:03 UTC 2016


Wow, that's pretty unexpected. Another repro case:

p = pure

bar :: Applicative f => f a
bar = do
   x <- pure "ok"
   p x

... gives the same error. So ApplicativeDo statements *must* end with exactly the statement "pure"?


> El 16 jun 2016, a las 12:39, Joe Quinn <headprogrammingczar at gmail.com> escribió:
> 
> 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> 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> 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
>>>> 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
> 
> _______________________________________________
> 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/599faec1/attachment.html>


More information about the Haskell-Cafe mailing list