diff options
author | 2008-07-04 14:38:44 +0000 | |
---|---|---|
committer | 2008-07-04 14:38:44 +0000 | |
commit | ff03e8dd0de507be82e58ed5e8fd902dfd7caf4b (patch) | |
tree | ede6bccf7f4dbcca84e5aca8a374b444527c1686 /pretyping/typeclasses.ml | |
parent | e4b265c5f51fbaf87054d13c036878964a98cfcd (diff) |
Fixes in handling of implicit arguments:
- Now [ id : Class foo ] makes id an explicit argument,
and [ Class foo ] is equivalent to [ {someid} : Class foo ].
This makes declarations such as "Class Ord [ eq : Eq a ]" have
sensible implicit args.
- Better handling of {} in class and record declarations, refactorize
code for declaring structures and classes.
- Fix merging of implicit arguments information on section closing.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11204 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/typeclasses.ml')
-rw-r--r-- | pretyping/typeclasses.ml | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/pretyping/typeclasses.ml b/pretyping/typeclasses.ml index 530fec6d1..da30b2057 100644 --- a/pretyping/typeclasses.ml +++ b/pretyping/typeclasses.ml @@ -37,8 +37,6 @@ type typeclass = { (* Context in which the definitions are typed. Includes both typeclass parameters and superclasses. *) cl_context : ((global_reference * bool) option * rel_declaration) list; - cl_params: int; - (* Context of definitions and properties on defs, will not be shared *) cl_props : rel_context; @@ -154,7 +152,7 @@ let subst (_,subst,(cl,m,inst)) = let do_subst_projs projs = list_smartmap (fun (x, y) -> (x, do_subst_con y)) projs in let subst_class k cl classes = let k = do_subst_gr k in - let cl' = { cl with cl_impl = k; + let cl' = { cl_impl = k; cl_context = do_subst_ctx cl.cl_context; cl_props = do_subst_named cl.cl_props; cl_projs = do_subst_projs cl.cl_projs; } |