diff options
author | Jason Gross <jgross@mit.edu> | 2018-04-04 15:33:50 -0400 |
---|---|---|
committer | Jason Gross <jasongross9@gmail.com> | 2018-04-04 15:39:34 -0400 |
commit | 59e1cd39e3adc7212e9acb4995d092400b94f7ab (patch) | |
tree | 98536dbe4da4c864e32731b772cb168f22f5e0ca /coqprime | |
parent | 8e17c3d75ce9cb9d2c0c3921514e9318776a28de (diff) |
Use a simpler form of Uncurrying
After in-person discussion with Andres, we decided that, because the
previous form of uncurrying was only half-uncurried (not including
identifiers nor lambdas passed to other lambdas), and the strongest
driver of a full uncurrying pass would be having an easier-to-visualize
intermediate representation / knowing more clearly what the pipeline is
doing, and the changes required for making this a full uncurrying pass
would be global to the pipeline (require changing the type of
identifiers), we would instead go back the version of uncurrying that I
initially proposed, where we only uncurry the top-level function.
Note that we create a slightly more complicated term (with more
application nodes) than we have to; if we instead took in `@expr (@expr
var) t` rather than `@expr var t`, we wouldn't introduce needless
abstractions. However, the current form admits an extremely simple
proof of correctness, which doesn't even require well-formedness of the
expression tree.
Diffstat (limited to 'coqprime')
0 files changed, 0 insertions, 0 deletions