Subject: Re: bug#26805: [PATCH] gs-fonts: add missing podule imports

From: [email-masked] (Ludovic Courtès)
Date: Sun, 14 May 2017 22:02:21 +0200

Hi,

Sergei Trofimovich <[email-masked]> skribis:

> On Thu, 11 May 2017 22:49:05 +0200

[...]

>> >> (Alternately, we could rename SRFI-1’s ‘delete’ in (guix build utils),
>> >> so we’d still be matching a literal, but we’d have problems in places
>> >> that use both (guix build utils) and (srfi srfi-1).)  

[...]

> Can you explain what is the problem of renaming ‘delete’ from srfi-1 in
> (guix build utils) module? How would hypothetical breakage happen?
> Is it because 'delete' from srfi-1 and renamed binding srfi-1 are not
> treated as the same binding by syntax rule?

The only problem would be in packages that use both (guix build utils)
and (srfi srfi-1), *and* do (modify-phase … (delete …)).  Those packages
would have a syntax error due to ‘delete’ being shadowed by SRFI-1’s
‘delete’.

It’s easy to fix them, for example by using the #:prefix option when
importing (srfi srfi-1)… but it’s also easy to miss some of the
problems.

There’s yet another option, which is to:

  (define-modules (guix build utils)
    …
    #:use-module (srfi srfi-1)
    #:re-export (delete))

I think that one had none of the previously-discussed drawbacks.

Thoughts?  Would you like to give it a try?

Ludo’.