If you're worried about the overhead of contracts (Typed Racket-generated or otherwise), you should try the contract profiler (`raco contract-profile` or `(require contract-profile)`). It should report whether contracts are indeed a significant source of overhead in your programs, and if so, which ones.
Vincent On Mon, 29 Feb 2016 13:01:17 -0600, Nota Poin wrote: > > I'm not sure what the qualitative distinction is between contracts and Typed > Racket. They seem like two syntaxes for what mostly amount to the same thing. > Is it just a matter of implementation, or perhaps what their developers focus > on? You could in theory read through a list of contracts, and of the > contracts that guarantee the operation you want on the data you have, pick > the most efficient one. And that's what Typed Racket does for the most part, > I thought. > > Is it just that the algorithm for doing that with contracts hasn't been > written, so Typed Racket can't take advantage of it? Is it that contracts are > more general, not always necessarily contracts of functions that operate on > types? /Does/ Typed Racket actually have significant overhead, when compiling > perhaps? If not, would that overhead they mentioned about contracts be > eliminated if those contracts were only utilized to decide what function to > use, and not checked every time that function is called? > > Just something that was puzzling me in the documentation. > > -- > 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 [email protected]. > For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.

