[racket] non-terminating type check for typed racket

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Mon Apr 18 13:07:11 EDT 2011

On Mon, Apr 18, 2011 at 12:26 PM, Eli Barzilay <eli at barzilay.org> wrote:
> And one more point -- I see this:
>  (define-struct Rep (seq free-vars free-idxs stx) #:transparent)
>  [...]
>  (p/c (struct Rep ([seq exact-nonnegative-integer?]
>                    [free-vars (hash/c symbol? variance?)]
>                    [free-idxs (hash/c symbol? variance?)]
>                    [stx (or/c #f syntax?)]))
>       [replace-syntax (Rep? syntax? . -> . Rep?)])
> Assuming that `p/c' is (a bad name for) `provide/contract', then why
> is this used by internal TR code??  Sounds lik a very bad idea for
> something as primitive as that.

These contracts are all disabled in the "production" version of the
code, so no need to worry about that.

Robby did some measurements a while back suggesting that most of the
contracts could be re-enabled without noticeable performance loss, but
I haven't done that yet.
sam th
samth at ccs.neu.edu

Posted on the users mailing list.