anchor.diff:       reason=reason::p_reason orig;
        loc=p_loc orig;
        rank=None;
  -}
  +    } in
  +    def_check_prob reason (TProb p);
  +    p
  +
   let guard_on_element wl problem x phi =
       match problem.element with
           | None ->
  
positive.code:     | None -> lg
      | Some x -> S.mk_Tm_app lg [S.as_arg x] None loc
    in
     {
      pid=next_pid();
      lhs=lhs;
  
negative.code:     (prob, wl)
  
  let mk_t_problem wl scope orig lhs rel rhs elt reason =
    def_check_prob (reason ^ ".mk_t.arg") orig;
    let p, wl = mk_problem wl scope orig lhs rel rhs elt reason in
    def_check_prob (reason ^ ".mk_t") (TProb p);
    TProb p, wl
  
  let mk_c_problem wl scope orig lhs rel rhs elt reason =
    def_check_prob (reason ^ ".mk_c.arg") orig;
    let p, wl = mk_problem wl scope orig lhs rel rhs elt reason in
    def_check_prob (reason ^ ".mk_c") (CProb p);
    CProb p, wl
  