anchor.diff:          let reduce_both_and_try_again (d:delta_depth) (r:match_result) =
             match Common.decr_delta_depth d with
             | None -> fail n_delta r t1 t2
  -          | Some d' ->
  -            let t1' = normalize_refinement [Env.UnfoldUntil d'; Env.Weak; Env.HNF] env t1 in
  -            let t2' = normalize_refinement [Env.UnfoldUntil d'; Env.Weak; Env.HNF] env t2 in
  -            if made_progress d t1' &&
  -               made_progress d t2'
  +          | Some d ->
  +            let t1' = normalize_refinement [Env.UnfoldUntil d; Env.Weak; Env.HNF] env t1 in
  +            let t2' = normalize_refinement [Env.UnfoldUntil d; Env.Weak; Env.HNF] env t2 in
  +            if made_progress t1 t1' &&
  +               made_progress t2 t2'
               then aux retry (n_delta + 1) t1' t2'
               else fail n_delta r t1 t2
           in
  
positive.code:     in
      let success d r t1 t2 = (r, (if d>0 then Some(t1, t2) else None)) in
      let fail d r t1 t2 = (r, (if d>0 then Some(t1, t2) else None)) in
      let made_progress d t' = delta_depth_of_term env t' <> Some d in
      let rec aux retry n_delta t1 t2 =
          let r = head_matches env t1 t2 in
          if Env.debug env <| Options.Other "RelDelta" then
  
negative.code:           let t1, t2, made_progress =
              if d1_greater_than_d2
              then let t1' = normalize_refinement [Env.UnfoldUntil d2; Env.Weak; Env.HNF] env t1 in
                   t1', t2, made_progress t1 t1'
              else let t2' = normalize_refinement [Env.UnfoldUntil d1; Env.Weak; Env.HNF] env t2 in
                   t1, t2', made_progress t2 t2' in
            if made_progress
            then aux retry (n_delta + 1) t1 t2
            else fail n_delta r t1 t2
  