aboutsummaryrefslogtreecommitdiff
path: root/plugins/extraction/miniml.mli
diff options
context:
space:
mode:
authorletouzey2010-04-16 14:12:57 +0000
committerletouzey2010-04-16 14:12:57 +0000
commitf57a38bb53dc06cef1cee78c60946aa5e6d3cf0b (patch)
treeb8e8006cb5ecd58174fcc76ccb2e90d437906996 /plugins/extraction/miniml.mli
parenta36fe20505fee708d8d88700aa7fedd4d4157364 (diff)
Extraction: ad-hoc identifier type with annotations for reductions
* An inductive constructor Dummy instead of a constant dummy_name * The Tmp constructor indicates that the corresponding MLlam or MLletin is extraction-specific and can be reduced if possible * When inlining a glob (for instance a recursor), we tag some lambdas as reducible. In (nat_rect Fo Fs n), the head lams of Fo and Fs are treated this way, in order for the recursive call inside nat_rect to be correctly pushed as deeper as possible. * This way, we can stop allowing by default linear beta/let reduction even under binders (can be activated back via Set Extraction Flag). * Btw, fix the strange definition of non_stricts for (x y). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12938 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'plugins/extraction/miniml.mli')
-rw-r--r--plugins/extraction/miniml.mli11
1 files changed, 8 insertions, 3 deletions
diff --git a/plugins/extraction/miniml.mli b/plugins/extraction/miniml.mli
index 91c60d2055..00df1a98d3 100644
--- a/plugins/extraction/miniml.mli
+++ b/plugins/extraction/miniml.mli
@@ -92,15 +92,20 @@ type ml_ind = {
(*s ML terms. *)
+type ml_ident =
+ | Dummy
+ | Id of identifier
+ | Tmp of identifier
+
type ml_ast =
| MLrel of int
| MLapp of ml_ast * ml_ast list
- | MLlam of identifier * ml_ast
- | MLletin of identifier * ml_ast * ml_ast
+ | MLlam of ml_ident * ml_ast
+ | MLletin of ml_ident * ml_ast * ml_ast
| MLglob of global_reference
| MLcons of inductive_info * global_reference * ml_ast list
| MLcase of (inductive_info*case_info) * ml_ast *
- (global_reference * identifier list * ml_ast) array
+ (global_reference * ml_ident list * ml_ast) array
| MLfix of int * identifier array * ml_ast array
| MLexn of string
| MLdummy