[plt-scheme] Interaction of contract library and WebIt
Just fixed a fun bug where the contract library's ->
operator was conflicting with WebIt's use of the same in
pattern matching. Methinks this is some macro problem,
probably triggered by lack of hygiene. My usual technique
when faced with macro problems of this sort is to flail
around wildly and then post to plt-scheme. I thought I'd
skip the first step this time.
So, if the approximately 5 people who understand the macro
system in enough depth to fix this feel like taking a
crack, here's a little program that shows the problem.
Uncomment the require statement for the contract library to
cause the error.
(require (planet "xml.ss" ("jim" "webit.plt" 1 3)))
;;(require (lib "contract.ss"))
(define (test val)
(xml-match val
[(foo ,(test -> v)) v]
[(bar ,v) v]))
(test '(foo (bar 1)))
Note it isn't critical to me that this gets fixed. I can
work around it easily enough.
Cheers,
Noel
Email: noelwelsh <at> yahoo <dot> com noel <at> untyped <dot> com
AIM: noelhwelsh
Blogs: http://monospaced.blogspot.com/ http://www.untyped.com/untyping/
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com