[plt-scheme] Interaction of contract library and WebIt

From: Noel Welsh (noelwelsh at yahoo.com)
Date: Sat Dec 17 12:27:19 EST 2005

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.


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 

Posted on the users mailing list.