aboutsummaryrefslogtreecommitdiff
path: root/coqprime
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2018-04-04 15:33:50 -0400
committerGravatar Jason Gross <jasongross9@gmail.com>2018-04-04 15:39:34 -0400
commit59e1cd39e3adc7212e9acb4995d092400b94f7ab (patch)
tree98536dbe4da4c864e32731b772cb168f22f5e0ca /coqprime
parent8e17c3d75ce9cb9d2c0c3921514e9318776a28de (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