? t ==?== ?->?
where the first ? has an empty local context
is always Uncertain... to be fully understood
why unification gives Failure. It may be correct if
t has type (Rel k). I wrap it in the refiner.
(NCicPp.ppterm ~metasenv ~subst ~context he)
(NCicPp.ppterm ~metasenv ~subst ~context t)
(NCicPp.ppterm ~metasenv ~subst ~context arg)
- (NCicPp.ppterm ~metasenv ~subst ~context ty_arg))) exc)
+ (NCicPp.ppterm ~metasenv ~subst ~context ty_arg)))
+ (match exc with
+ | NCicUnification.UnificationFailure m ->
+ NCicUnification.Uncertain m
+ | x -> x))
(* XXX coerce to funclass *)
in
let meta = NCicSubstitution.subst ~avoid_beta_redexes:true arg meta in
let pp s =
prerr_endline (Printf.sprintf "%-20s" !indent ^ " " ^ Lazy.force s)
;;
+let pp _ = ();;
+
let ppcontext = NCicPp.ppcontext;;
let ppmetasenv = NCicPp.ppmetasenv;;
let ppcontext ~metasenv:_metasenv ~subst:_subst _context = "...";;
let ppmetasenv ~subst:_subst _metasenv = "...";;
-let pp _ = ();;
-
let fix_sorts swap exc t =
let rec aux () = function
| NCic.Sort (NCic.Type u) as orig ->