anchor.diff:        ])
       ) ret_tot_wp_a
     in
  -  let env, wp_if_then_else = register env (mk_lid "wp_if_then_else") wp_if_then_else in
  -  let wp_if_then_else = mk (Tm_app (wp_if_then_else, args_of_binders binders)) in
  +  // Not registering this one at top-level... not strictly needed. We'll inline
  +  // the definition. (Also: registering it at top-level triggers a universes
  +  // issue.) Also, note that this term does _not_ abstract of [binders]. This is
  +  // ok, because [tc_eff_decl] will close [binders].
  +  check env "wp_if_then_else" (U.abs binders wp_if_then_else None);
   
     (* val st2_assert_p : heap:Type ->a:Type -> q:Type0 -> st2_wp heap a ->
                          Tot (st2_wp heap a)
  
positive.code:       d str;
        Util.print2 "Generated term for %s: %s\n" str (Print.term_to_string t);
        let t, { res_typ = res_typ }, _ = tc_term env t in
        let t = normalize env t in
        let res_typ = normalize env res_typ in
        Util.print2 "Inferred type for %s: %s\n" str (Print.term_to_string res_typ);
        Util.print2 "Elaborated term for %s: %s\n" str (Print.term_to_string t)
      end
    in
  
  
negative.code:     let wp1 = S.gen_bv "wp1" None wp_a in
      let wp2 = S.gen_bv "wp2" None wp_a in
      let body = mk_leq wp_a (S.bv_to_name wp1) (S.bv_to_name wp2) in
      U.abs (mk_all_implicit binders @ [ a, S.as_implicit true ] @ S.binders_of_list [ wp1; wp2 ]) body ret_tot_type0
    in
    let env, stronger = register env (mk_lid "stronger") stronger in
  
    let null_wp = snd ed.null_wp in
  
  