guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: r6rs standard libraries


From: Julian Graham
Subject: Re: r6rs standard libraries
Date: Mon, 15 Feb 2010 15:33:55 -0500

Hello again,


> Does this sound plausible?  I spent most of this past weekend trying
> to grok this and work around it (via various `eval'-based
> incantations) without much luck.  (The weird part is, I don't recall
> this happening with my old `(ice-9 r6rs-libraries)' module
> implementation, but I could be wrong.)

In case it's helpful, I've distilled the problem down to the following
self-contained example:

(define-module (foo))
(define-syntax foo
  (lambda (stx)
    (syntax-case ((_ x) (syntax (display x))))))
(foo 'bar)

...which has the side-effect of outputting the string "'bar" when
loaded from disk, whereas the following:

(begin
  (define-module (foo))
  (define-syntax foo
    (lambda (stx)
      (syntax-case ((_ x) (syntax (display x))))))
  (foo 'bar))

...produces the following error:

  ERROR: In procedure vm-debug-engine:
  ERROR: Wrong type to apply: #<syntax-transformer foo>

Note that the `define-module' form at the top is related to the error
-- without it, both examples work just fine.  (Wild speculation: Is it
possible that in the context of changes to the "current module" that
`define-syntax' puts bindings in a place different from where the
expander is looking for them?)


Regards,
Julian




reply via email to

[Prev in Thread] Current Thread [Next in Thread]