On Wed, Jan 6, 2016 at 12:32 PM, JCG <griffin...@gmail.com> wrote: > > One question that concerns me is whether the following statement is correct: > > A typed program that does not have conditions based upon type predicates, > e.g. port? or integer?, should act the same when stripped of its types.
A typed program should _always_ act the same as one stripped of its types, unless the generated contracts produce extra runtime errors in the typed code. That's the goal of Typed Racket. There are a few caveats here: - contracts can change the eq? behavior of programs, which may change other behavior (such as eq-based hash tables) - contracts for polymorphic functions force parametric behavior, which can change some badly-behaved programs to behave differently - contract errors are obviously different behavior, which could be caught or otherwise change the results of the program Anything other than these sorts of issues related to the extra contract wrapping would be a bug. Sam -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.