Yes, racket 101 (305?) is that identifiers can only be set!'d in their defining module. This is to allow necessary optimizations such as inlining.
If you want to trace `f` from a different module. you can `(define (g . args) (apply f args)) (trace g)`, use `g` wherever you use `f`. You won't get any calls the library makes internally, but if you're just tracing for your own code, you'll be golden. -Ian ----- Original Message ----- From: "Thomas Lynch" <thomas.ly...@reasoningtechnology.com> To: "users" <users@racket-lang.org> Sent: Monday, January 19, 2015 8:59:55 AM Subject: [racket] trace: set!: cannot mutate module-required identifier - alright .. how do you do this? 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 ____________________ Racket Users list: http://lists.racket-lang.org/users