anchor.diff:      let t1 = problem.lhs in
       let t2 = problem.rhs in
       let _ =
  -        if debug env (Options.Other "RelCheck")
  +        if debug env (Options.Other "Rel")
           then BU.print3 "Attempting %s (%s vs %s)\n" (string_of_int problem.pid)
                               (Print.tag_of_term t1 ^ "::" ^ Print.term_to_string t1)
                               (Print.tag_of_term t2 ^ "::" ^ Print.term_to_string t2)
  
positive.code:          match quasi_pattern env flex with
           | None -> giveup env "flex-arrow subtyping, not a quasi pattern" (TProb tp)
           | Some (flex_bs, flex_t) ->
             if Env.debug env <| Options.Other "RelCheck"
             then BU.print1 "Trying to solve by imitating arrow:%s\n" (string_of_int tp.pid);
             imitate_arrow (TProb tp) env wl flex flex_bs flex_t tp.relation this_rigid
           end
      else //imitating subtyping with WPs is hopeless
           solve env (attempt [TProb ({tp with relation=EQ})] wl)
    | _ ->
      if Env.debug env <| Options.Other "RelCheck"
      then BU.print1 "Trying to solve by meeting refinements:%s\n" (string_of_int tp.pid);
      let u, _args = U.head_and_args this_flex in
      begin
  
negative.code:                     (lhs:flex_t) (bs_lhs:binders) (t_res_lhs:term)
                      (rhs:term)
          : solution =
          //if Env.debug env <| Options.Other "Rel"
          //then printfn "imitate_app 1:\n\tlhs=%s\n\tbs_lhs=%s\n\tt_res_lhs=%s\n\trhs=%s\n"
          //    (flex_t_to_string lhs)
          //    (Print.binders_to_string ", " bs_lhs)
  