On Apr 18, 2014, at 4:30 PM, Neil Toronto wrote: > On 04/18/2014 09:00 AM, Matthias Felleisen wrote: >> >> On Apr 18, 2014, at 10:48 AM, Neil Toronto <neil.toro...@gmail.com> wrote: >> >>> Another benefit is that Typed Racket will no longer have to consider >>> non-function letrec bindings as having the type (U Undefined A) where A is >>> the "real" type. (Technically, (U Undefined A) *was* the real type.) >> >> >> That was my primary motivation for launching this project, motivated by >> nearly two decades of coping with such unions or a lack of safety. I knew >> you'd appreciate it -- Matthias > > Aww! > > I checked the Northeastern publications page and didn't find anything on > this. Is there somewhere I can read about the sorcery that accomplishes it?
Cormac's MrSpidey suffered most from this problem. We had a special front-end for letrec that expanded it one way for static analysis (when certain conditions held) and the normal way for runtime. Wright's Soft Scheme had the problem to a lesser extent but when inference failed it also polluted the rest of the program. Fagan's prototype was based on the same system. (That's what I mean when I say public criticism of papers is better than private ones, because there is a chance that others learn from the mistakes we made in the past. This just came up in Grenoble, at ETAPS.) -- Matthias ____________________ Racket Users list: http://lists.racket-lang.org/users