Subject: bug#21829: guix import hackage failures

From: Federico Beffa <[email-masked]>
Date: Thu, 26 Nov 2015 09:28:07 +0100

On Wed, Nov 25, 2015 at 10:45 PM, Ludovic Courtès <[email-masked]> wrote:
> Federico Beffa <[email-masked]> skribis:

[...]

>>>> +      ;; indentation based block recognition.
>>>> +      (begin (unread-char #\newline port) (read-char port) 0)
>>>
>>> Isn’t this equivalent to: 0 ?
>>
>> No. This is because at the start of a new line we check if and how
>> many indentation blocks have ended. If the last line doesn't terminate
>> this check is no done.
>
> More generally, it looks like:
>
>   (begin (do-effect!) (undo-effect!) val)
>
> which I thought reduces to:
>
>   val

Since we are doing IO, there are side effects. The key difference is
the result of '(port-column port)' and that triggers what I mentioned.

Thanks for the review.
Regards,
Fede