diff options
| author | herbelin | 2001-01-27 17:06:48 +0000 |
|---|---|---|
| committer | herbelin | 2001-01-27 17:06:48 +0000 |
| commit | 0dfbabcee3629056ebfb0a63dcee60cd601cfa21 (patch) | |
| tree | eab749510f99d235ccfd460f3ee0a3b7c03e10fc /library/impargs.ml | |
| parent | e5659553469032c61b076645b98f29f8d4e70d3d (diff) | |
Ré-introduction des implicites à la volée dans la définition des inductifs
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1279 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library/impargs.ml')
| -rw-r--r-- | library/impargs.ml | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/library/impargs.ml b/library/impargs.ml index 3232c48486..2644944ac3 100644 --- a/library/impargs.ml +++ b/library/impargs.ml @@ -32,7 +32,7 @@ let add_free_rels_until bound m acc = (* calcule la liste des arguments implicites *) -let poly_args env sigma t = +let compute_implicits env sigma t = let rec aux env n t = match kind_of_term (whd_betadeltaiota env sigma t) with | IsProd (x,a,b) -> @@ -45,9 +45,11 @@ let poly_args env sigma t = Intset.elements (aux (push_rel_assum (x,a) env) 1 b) | _ -> [] +type implicits_list = int list + type implicits = - | Impl_auto of int list - | Impl_manual of int list + | Impl_auto of implicits_list + | Impl_manual of implicits_list | No_impl let implicit_args = ref false @@ -73,7 +75,7 @@ let using_implicits = function | No_impl -> with_implicits false | _ -> with_implicits true -let auto_implicits env ty = Impl_auto (poly_args env Evd.empty ty) +let auto_implicits env ty = Impl_auto (compute_implicits env Evd.empty ty) let list_of_implicits = function | Impl_auto l -> l |
