anchor.diff:              mk_Valid tt, decls in
   
       let encode_q_body env (bs:Syntax.binders) (ps:list<args>) body =
  -        let vars, _, guards, env, decls, _ = encode_binders None bs env in
  +        let vars, guards, env, decls, _ = encode_binders None bs env in
           let pats, decls' = encode_smt_patterns ps env in
           let body, decls'' = encode_formula body env in
           let guards = match pats with
  
positive.code:                 * AR: any decls computed here are ignored
                  *     we encode terms in this let-scope just to compute a hash
                  *)
                 let vars, _, guards_l, env_bs, _, _ = encode_binders None binders env in
                 let c = Env.unfold_effect_abbrev env.tcenv res |> S.mk_Comp in
                 let ct, _ = encode_term (c |> U.comp_result) env_bs in
                 let effect_args, _ = encode_args (c |> U.comp_effect_args) env_bs in
  
negative.code:                       let t_head_hyp, decls' =
                          match smt_head.tm with
                          | FreeV _ ->
                            encode_term_pred None head_type env smt_head
                          | _ ->
                            mkTrue, []
                        in
                        let hyp = Term.mk_and_l (t_head_hyp::t_hyps) Range.dummyRange in
                        let has_type_conclusion, decls'' =
                            encode_term_pred None ty env app_tm
                        in
                        let has_type = mkImp (hyp, has_type_conclusion) in
  