Re: define-module, #:export and export

2023-01-12 Thread yarl baudig
For completeness, this works as well: lib.scm: (define-module (lib) #:use-module ((main) #:select (thing)) #:export (test)) (define-syntax test (lambda (sintax) (syntax-case sintax () ((test id) (free-identifier=? #'id #'thing) main.scm: (define-module (main)

Re: define-module, #:export and export

2023-01-08 Thread Jean Abou Samra
Le 08/01/2023 à 16:18, yarl baudig a écrit : Obviously... Ok, I tried more. Apparently, (define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...) (define-syntax name->int (syntax-rules (name ...) ((_ name) id) ...) works the same as

Re: define-module, #:export and export

2023-01-08 Thread yarl baudig
> > Not going to work. > , it matches anything. > > Obviously... Ok, I tried more. Apparently, (define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...) (define-syntax name->int (syntax-rules (name ...) ((_ name) id) ...) works the

Re: define-module, #:export and export

2023-01-08 Thread Jean Abou Samra
Le 08/01/2023 à 10:46, yarl baudig a écrit : What if I replace (define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...) (define-syntax name->int (syntax-rules (name ...) ((_ name) id) ...) with (define-syntax define-enumerate-type

Re: define-module, #:export and export

2023-01-08 Thread yarl baudig
What if I replace (define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...) (define-syntax name->int (syntax-rules (name ...) ((_ name) id) ...) with (define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...)

Re: define-module, #:export and export

2023-01-07 Thread Jean Abou Samra
Le 06/01/2023 à 14:55, Maxime Devos a écrit : Guile's implementation of macros is a little lax with typing, in the sense that objects like #false and #true (but not symbols, because hygiene) can be returned too, but IIUC this is undocumented and not standard Scheme (*). Well, that is what

Re: define-module, #:export and export

2023-01-06 Thread Maxime Devos
On 06-01-2023 14:31, yarl baudig wrote: That is also my understanding, confirmed by $ cat lib.scm (define-module (lib)   #:export (test)) (define-syntax test   (lambda (sintax)     (syntax-case sintax ()   ((test id)    (datum->syntax sintax (free-identifier=? #'id #'th

Re: define-module, #:export and export

2023-01-06 Thread yarl baudig
> > That is also my understanding, confirmed by > > $ cat lib.scm > (define-module (lib) >   #:export (test)) > > (define-syntax test >   (lambda (sintax) >     (syntax-case sintax () >   ((test id) >    (datum->syntax sintax (free-ide

Re: define-module, #:export and export

2023-01-04 Thread Jean Abou Samra
oks for a free identifier. That is also my understanding, confirmed by $ cat lib.scm (define-module (lib)   #:export (test)) (define-syntax test   (lambda (sintax)     (syntax-case sintax ()   ((test id)    (datum->syntax sintax (free-identifier=? #'id #'thing)) $ cat test.scm

Re: define-module, #:export and export

2023-01-04 Thread Maxime Devos
On 04-01-2023 16:11, yarl baudig wrote: Hello guile. I don't know if that's a bug. Anyway, I am confused about this so I ask. I came across this problem playing with guix source code. I will share different "tests" each test is a directory with nothing but the files I share. each time the

define-module, #:export and export

2023-01-04 Thread yarl baudig
nside it's directory) is `guile --no-auto-compile -L . main.scm` base/ main.scm: ----- (define-module (main) #:export (valid-path?)) (define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...) (define-syntax name->int (syntax-rules (name ...)