Hi
Has something changed with transparency of structs?
I find the following:
#lang racket/base
(module a racket/base
(define inspector (make-inspector))
(define-values (descr constr pred acc mut)
(make-struct-type 's #f 2 0 #f '() inspector #f '(0)))
(define an-s (constr 'monkey 'lion))
(provide an-s))
(module b racket/base
(define inspector (make-inspector))
(struct s (f g) #:inspector inspector)
(define another-s (s 'monkey 'lion))
(provide another-s))
(require 'a 'b)
(define (print-info s)
(printf "s = ~s~n" s)
(printf "struct? ~s~n" (struct? s))
(define-values (descr skipped?) (struct-info s))
(define-values (name n m ref set immut super skip) (struct-type-info descr))
(printf "ref : ~s~n" (ref s 0)))
(print-info an-s)
(print-info another-s)
Produces:
s = #(struct:s monkey lion)
struct? #t
ref : monkey
s = #(struct:s monkey lion)
struct? #t
ref : monkey
I expected for example (struct? an-s) to yield #f.
What am I confusing?
Thanks, Jos