[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