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.

Reply via email to