<div dir="ltr">I'm not sure if this should be considered a bug or a feature request (or something else, but hopefully one of those two!) so I thought I'd ask here before sending in a PR. This program:<div><br></div>
<div><div> #lang typed/racket</div><div> (require typed/rackunit)</div><div> (struct: s ([a : Integer]))</div><div> (check-equal? (s 1) (s 2))</div></div><div><br></div><div style>produces the output:</div><div style>
<div><br></div><div>check-equal?: broke its contract</div><div> Attempted to use a higher-order value passed as `Any` in untyped code: #<s></div><div> in: the 1st argument of</div><div> (recursive-contract</div>
<div> (->* (Any Any) (String) any/c)</div><div> #:impersonator)</div><div> contract from: (interface for check-equal?)</div><div> blaming: (interface for check-equal?)</div><div> at: <collects>/typed/rackunit/main.rkt:20.2</div>
<div><br></div><div style>which is a bit confusing. (As someone who's been around Racket long enough, I guessed that sticking #:transparent into the struct declaration would be a thing to try, but newcomers seem unlikely to find that workaround.)</div>
<div style><br></div><div style>Robby</div><div style><br></div></div></div>