Saw this in another thread here, but the proposed solution didnt work, well at least the way I understood it. So ..
In file db-lib.rkt I have a definition: (provide db-exec) (define (db-exec a) ...) Then in racket > (enter! "db-user.rkt") Where db-citation.rkt has (require "db-lib.rkt") Now at the read-eval-print prompt I try (enter! "db-citation.rkt") And when I do (trace db-exec) I get the cannot mutate error. (Surely this must be a racket 101 type problem.) So I try to include the module at the current scope.. rac...@db-citation.rkt> (require "db-lib.rkt") rac...@db-citation.rkt> (require racket/trace) rac...@db-citation.rkt> (trace db-exec) rac...@db-citation.rkt> stdin::1130: set!: cannot mutate module-required identifier in: db-exec ok, so that doesn't work, so I start over again. This time after reading the thread on this list From: Vincent St-Amour (stamourv at ccs.neu.edu) Date: Mon Oct 10 13:49:46 EDT 2011 which concludes by saying 'put the trace in your program that should work', so I add this to "db-citation.rkt" (require racket/trace) (trace db-exec) And then at the prompt I get the following: Welcome to Racket v5.2.1. racket@> (enter! "db-citation.rkt") db-citation.rkt:26:11: set!: cannot mutate module-required identifier in: db-exec Alright, so what is the magic incantation here that allows one to debug/trace calls in included modules? Thanks! Thomas
____________________ Racket Users list: http://lists.racket-lang.org/users