diff options
author | 2013-11-22 12:35:33 +0100 | |
---|---|---|
committer | 2014-05-06 09:58:56 +0200 | |
commit | 1dd78acac418c0f69abb8d9f5d8db13351f01ccc (patch) | |
tree | 4833fb9c014ebedd94a4f46c1bc8d8c6d5396d56 /toplevel | |
parent | 25460d19599fd64aaeccbf4667737feb786ae7f6 (diff) |
Various fixes of universe polymorphism and projections when they're set.
- Fix substitution of universes!
- Properly refresh universes in typeclasses exact hints.
Conflicts:
kernel/term_typing.ml
toplevel/obligations.ml
Diffstat (limited to 'toplevel')
-rw-r--r-- | toplevel/classes.ml | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/toplevel/classes.ml b/toplevel/classes.ml index 45dd6f1ec..2b00a6d86 100644 --- a/toplevel/classes.ml +++ b/toplevel/classes.ml @@ -172,9 +172,10 @@ let new_instance ?(abstract=false) ?(global=false) poly ctx (instid, bk, cl) pro [] subst (snd k.cl_context) in let (_, ty_constr) = instance_constructor (k,u) subst in + let nf, subst = Evarutil.e_nf_evars_and_universes evars in let termtype = let t = it_mkProd_or_LetIn ty_constr (ctx' @ ctx) in - fst (Evarutil.e_nf_evars_and_universes evars) t + nf t in Evarutil.check_evars env Evd.empty !evars termtype; let ctx = Evd.universe_context !evars in |