Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-17 23:16:31 -0800 (Thu, 17 Mar 2005)
Revision: 6970
Log message:
Note to self: remember, ML-style values are *never* polymorphic unless
they are toplevel, except for existentials around closures.
Like, duh.
This solves the problem with non-toplevel Lam terms in the backend.
I added a fix to CPS to place the quantifiers appropriately in
non-tailcall applications. The tailcall version needs to be fixed.
Note also that we will need a top-level let for polymorphic constructors.
These values should be hoisted, and will prevent merging the toplevel
let-rec (no big deal).
let f x = x
let u = ([], f)
let v = (snd u) 1
let w = (snd u) "foo"