|
|
|
|
|
by yallop
3491 days ago
|
|
There are some difficulties with moving arbitrary values between phases: it's easy to move an int or a list, but what about a mutable reference or a closure? However, I don't think this will ultimately be a problem in practice, for two reasons. First, global values can be used in different phases via "module lifting". Second, there's a separate proposal for adding overloading to OCaml in the form of modular implicits: https://www.cl.cam.ac.uk/~jdy22/papers/modular-implicits.pdf Modular implicits will make it possible to use a single overload function ('lift', say) in place of a family of functions 'Expr.of_int', 'Expr.of_float', etc., which will make things much less awkward. And it's only a small step from there to having 'lift' called implicitly/automatically at appropriate points. Here's a message from an earlier discussion with a few more details: https://sympa.inria.fr/sympa/arc/caml-list/2015-05/msg00032.... |
|
Wasn't this already answered by "Closing the Stage" [1]?
[1] http://lambda-the-ultimate.org/node/2575