anchor.diff:          let args_rhs, last_arg_rhs = BU.prefix args in
           let rhs' = S.mk_Tm_app rhs_hd args_rhs None rhs.pos in
           let t_lhs, u_lhs, _lhs_args = lhs in
  -        let lhs', lhs'_last_arg, _wl = //FIXME! dropping the wl here
  +        let lhs', lhs'_last_arg, wl = //FIXME! dropping the wl here
                 let _, t_last_arg, wl = copy_uvar u_lhs (fst <| U.type_u()) wl in
                 //FIXME: this may be an implicit arg ... fix qualifier
                 let _, lhs', wl = copy_uvar u_lhs (U.arrow [S.null_binder t_last_arg] (S.mk_Total t_res_lhs)) wl in
  
positive.code: //(******************************************************************************************************)
  //(* The case where t1 < u, ..., tn < u: we solve this by taking u=t1\/...\/tn                          *)
  //(******************************************************************************************************)
  //and solve_rigid_flex_meet (env:Env.env) (tp:tprob) (wl:worklist) : option<worklist> =
  //    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 tp.rhs in
  
negative.code: (* </variable ops>                                  *)
  (* ------------------------------------------------ *)
  
  type match_result =
    | MisMatch of option<delta_depth> * option<delta_depth>
    | HeadMatch
  