Hi all - I am running into an interesting issue where an alist of procedures in REPL, the ones without a contract works with assoc, but the ones with contract do not work with assoc.
What I have is an alist where the keys are procedures. Some of these procedures have contracts attached to them, and some do not. Then I tried to use assoc to match the procedures. If the code are run within the module itself - both types match, but within REPL only the ones without contract matches. Here's an simplified example, where foo.ss defines the procedures, and the test.ss uses foo.ss to construct the alist. ;; foo.ss #lang scheme (define (test? v) #t) ;; provided with contract (define (test2? v) #t) ;; provided without contract (provide/contract (test? (-> any/c boolean?)) ) (provide test2?) ;; test.ss #lang scheme (require "foo.ss") (define table `((,test2? . 1) (,test? . 2))) (assoc test? table) ;; works in module setting but not in REPL (assoc test2? table) ;; works in module setting AND in REPL Both the assoc test above returns the correct result. But if I try to copy and run (assoc test? table) in REPL again, it will not match, whereas (assoc test2? table) continues to match. Is there any particular reason for the divergence of the behaviors? I verified the behavior in both v4.2.5 and v5.0. Thanks. yc
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users