Another clue,
Put this into a file and load it
(define (f x) (c))
(define-syntax c (lambda (x) (pk 'c) #t))
,x f shows
0 (assert-nargs-ee/locals 1) ;; 1 arg, 0 locals
2 (toplevel-ref 1) ;; #<syntax-transformer c>
4 (tail-call 0) at examples/mutual.scm:9:14
and (f 1) yields
scheme@(guile-user) [4]> (f 1)
ERROR: In procedure #<syntax-transformer c>:
ERROR: Wrong type to apply: #<syntax-transformer c>
This is confusing!!
/Stefan
On Mon 14 May 2012 21:13, Stefan Israelsson Tampe <stefan.itampe@gmail.com> writes:Have you tried master? If I understand you correctly I think it should
> (begin
> (define parser-a code-a ...)
> (define-syntax a spec-a))
>
> (begin
> (define parser-b code-b ...)
> (define-syntax b spec-b))
>
> In racket they manage to evaluate the define-syntax forms before the define-forms cause in the expansion
> of code-a amd code-b they need the spec's spec-a and spec-b.
>
> Do you have any ideas how solve this. I do have a fix for problem but it is not easy to use.
work there.
Andy
--
http://wingolog.org/