[racket-dev] Motivation for handle-evt/wrap-evt contracts
On 2013-07-25 12:36:32 -0600, Matthew Flatt wrote:
> My thought was that you should only use `handle-evt' if you need tail
> behavior for something like a loop. If you use `handle-evt' and you're
> not getting tail behavior (but `sync' continues on, anyway), then
> something has gone wrong --- and maybe it's better to get an error than
> have a slow leak that will be tricky to detect.
I could see how that might be a better choice for debugging. Especially
since it seems that people don't check `handle-evt?` on events (which
you would need to do to ensure tail-behavior in semantics 2).
In particular, there are zero uses of `handle-evt?` in the codebase
outside of tests.
Since it's primarily a performance debugging feature, it seems OK to
ignore the distinction in Typed Racket and keep the current semantics.
Thanks,
Asumu