anchor.diff:                           | Eager_unfolding_only -> true
                            | Unfold l -> Common.delta_depth_greater_than fv.fv_delta l)
                    in
  -                 let should_delta =
  -                     if not should_delta then false
  -                     else let attrs = Env.attrs_of_qninfo qninfo in
  +                 let should_delta = should_delta && (
  +                          let attrs = Env.attrs_of_qninfo qninfo in
                              // never unfold something marked tac_opaque when reducing tactics
                             (not cfg.steps.unfold_tac ||
                              not (cases (BU.for_some (attr_eq U.tac_opaque_attr)) false attrs)) &&
  
positive.code:                              match attrs, cfg.steps.unfold_attr with
                               | None, Some _ -> false
                               | Some ats, Some ats' -> BU.for_some (fun at -> BU.for_some (attr_eq at) ats') ats
                               | _, _ -> false))
                   in
                   log cfg (fun () -> BU.print3 ">>> For %s (%s), should_delta = %s\n"
                                   (Print.term_to_string t)
  
negative.code: 
      // GM: This is basically saying "if exclude iota, don't memoize".
      // what's up with that?
      // GM: I actually get a regression if I just keep the second branch.
      if not cfg.steps.iota
      then if cfg.steps.hnf
           then let arg = closure_as_term cfg env_arg tm in
  