Hi all - <br><br>I encountered a strange error in 4.2.3 - it seems that provide/contract and inherited structs might have some conflicts. Below I have a 3 layer struct inheritance, done in different files. If I change the last file's (provide/contract ...) to (provide (struct-out ...)) then it works, but otherwise it throws a strange error "provide/contract: expected field name to be nner, but found inner in: inner". <br>
<br>Any thoughts are appreciated. Thanks,<br>yc<br><br>;; --- base.ss <br>#lang scheme/base<br>(require scheme/contract<br> )<br>(define-struct kvs (inner) #:mutable) <br><br>(provide/contract <br> (struct kvs ((inner any/c)))<br>
)<br><br>;; -- mime.ss <br>#lang scheme/base<br>(require "base.ss"<br> scheme/contract<br> )<br><br>(define-struct (mime kvs) (body)) <br><br>(provide/contract <br> (struct mime ((inner any/c)<br>
(body any/c)))<br> )<br><br>;; -- content.ss ;; throw error "provide/contract: expected field name to be nner, but found inner in: inner"<br>#lang scheme/base<br>(require scheme/contract<br> "mime.ss"<br>
"base.ss"<br> )<br><br>(define-struct (content mime) (test))<br><br>(provide/contract <br> (struct content ((inner any/c) ;; error occurs here - "provide/contract: expected field name to be nner, but found inner in: inner"<br>
(body any/c)<br> (test any/c)))<br> )<br><br>