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:
#lang typed/racket (require typed/rackunit) (struct: s ([a : Integer])) (check-equal? (s 1) (s 2)) produces the output: check-equal?: broke its contract Attempted to use a higher-order value passed as `Any` in untyped code: #<s> in: the 1st argument of (recursive-contract (->* (Any Any) (String) any/c) #:impersonator) contract from: (interface for check-equal?) blaming: (interface for check-equal?) at: <collects>/typed/rackunit/main.rkt:20.2 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.) Robby
_________________________ Racket Developers list: http://lists.racket-lang.org/dev