diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/indtypes.ml | 4 | ||||
-rw-r--r-- | kernel/modops.ml | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/kernel/indtypes.ml b/kernel/indtypes.ml index 06764834..941ab046 100644 --- a/kernel/indtypes.ml +++ b/kernel/indtypes.ml @@ -6,7 +6,7 @@ (* * GNU Lesser General Public License Version 2.1 *) (************************************************************************) -(* $Id: indtypes.ml 11784 2009-01-14 11:36:32Z herbelin $ *) +(* $Id: indtypes.ml 12616 2009-12-30 15:02:26Z herbelin $ *) open Util open Names @@ -494,7 +494,7 @@ let check_positivity_one (env, _,ntypes,_ as ienv) hyps i nargs lcnames indlc = raise (IllFormedInd LocalNotConstructor) else if not (List.for_all (noccur_between n ntypes) largs) - then raise (IllFormedInd (LocalNonPos n)); + then failwith_non_pos_list n ntypes largs; (nmr,List.rev lrec) in check_constr_rec ienv nmr [] c in diff --git a/kernel/modops.ml b/kernel/modops.ml index 949a7402..34d9e930 100644 --- a/kernel/modops.ml +++ b/kernel/modops.ml @@ -6,7 +6,7 @@ (* * GNU Lesser General Public License Version 2.1 *) (************************************************************************) -(*i $Id: modops.ml 11923 2009-02-13 12:20:27Z soubiran $ i*) +(*i $Id: modops.ml 12234 2009-07-09 09:14:09Z soubiran $ i*) (*i*) open Util @@ -143,11 +143,13 @@ let rec subst_with_body sub = function and subst_modtype sub mtb = let typ_expr' = subst_struct_expr sub mtb.typ_expr in - if typ_expr'==mtb.typ_expr then + let sub_mtb = join_alias mtb.typ_alias sub in + if typ_expr'==mtb.typ_expr && sub_mtb==mtb.typ_alias then mtb else { mtb with - typ_expr = typ_expr'} + typ_expr = typ_expr'; + typ_alias = sub_mtb} and subst_structure sub sign = let subst_body = function |