diff options
Diffstat (limited to 'pretyping/typeclasses.ml')
| -rw-r--r-- | pretyping/typeclasses.ml | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/pretyping/typeclasses.ml b/pretyping/typeclasses.ml index d76fdc85de..db03112c26 100644 --- a/pretyping/typeclasses.ml +++ b/pretyping/typeclasses.ml @@ -500,6 +500,15 @@ let has_typeclasses evd = let solve_instanciations_problem = ref (fun _ _ _ _ _ -> assert false) -let resolve_typeclasses ?(with_goals=false) ?(split=true) ?(fail=true) env evd = +open Evar_kinds +type evar_filter = Evar_kinds.t -> bool + +let all_evars _ = true +let no_goals = function GoalEvar -> false | _ -> true +let no_goals_or_obligations = function + | GoalEvar | QuestionMark _ -> false + | _ -> true + +let resolve_typeclasses ?(filter=no_goals) ?(split=true) ?(fail=true) env evd = if not (has_typeclasses evd) then evd - else !solve_instanciations_problem env evd with_goals split fail + else !solve_instanciations_problem env evd filter split fail |
