anchor.diff:        (*        M.bind_repr (reify e1) (fun x -> reify e2)                          *)
         (*                                                                            *)
         (* ****************************************************************************)
  -      let ed = Env.get_effect_decl cfg.tcenv (Env.norm_eff_name cfg.tcenv m) in
  +      let eff_name = Env.norm_eff_name cfg.tcenv m in
  +      let ed = Env.get_effect_decl cfg.tcenv eff_name in
  +      let _, repr = ed |> U.get_eff_repr |> must in
         let _, bind_repr = ed |> U.get_bind_repr |> must in
         begin match lb.lbname with
           | Inr _ -> failwith "Cannot reify a top-level let binding"
  
positive.code:               let rng = top.pos in
  
                let head = U.mk_reify <| lb.lbdef in
                let body = U.mk_reify <| body in
                (* TODO : Check that there is no sensible cflags to pass in the residual_comp *)
                let body_rc = {
  
negative.code:                       (* wp_head, head--the term shouldn't depend on wp_head *)
                        as_arg S.tun; as_arg head;
                        (* wp_body, body--the term shouldn't depend on wp_body *)
                        as_arg S.tun; as_arg body]
                  in
                  S.mk (Tm_let ((false, [lb_head]),
                     SS.close [S.mk_binder head_bv] <|
                     S.mk (Tm_app(bind_inst, args)) None rng)) None rng in
                log cfg (fun () -> BU.print2 "Reified (1) <%s> to %s\n" (Print.term_to_string top0) (Print.term_to_string reified));
                norm cfg env (List.tl stack) reified
              )
  