Hello, In a similar comment to my previous thread, I am yet again surprised at this:
a.rkt: #lang racket (provide (struct-out foo)) (struct foo (a b) #:prefab) b.rkt: #lang racket (require "a.rkt") (place-message-allowed? (foo 1 2)) This works! However, try to provide in a.rkt foo like this: (provide (contract-out (struct foo ((a integer?) (b integer?))))) Suddenly you get: #f Here's the even more confusing part: (define-values (pch1 pch2) (place-channel)) (place-channel-put pch1 (foo 1 2)) This will result in: place-channel-put: value not allowed in a message value: '#s(foo 1 2) message: '#s(foo 1 2) This will drive you mad because if you copy the message textual representation: (place-channel-put pch1 '#s(foo 1 2)) then it works. What's the reason for this discrepancy? There's no mentioning of #:prefab in contract-out documentation. Regards, -- Paulo Matos -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.