anchor.diff:  
           let reduce_both_and_try_again (d:delta_depth) (r:match_result) =
             match Common.decr_delta_depth d with
  -          | None -> fail r
  +          | None -> fail n_delta r t1 t2
             | Some d ->
               let t1 = normalize_refinement [N.UnfoldUntil d; N.Weak; N.HNF] env wl t1 in
               let t2 = normalize_refinement [N.UnfoldUntil d; N.Weak; N.HNF] env wl t2 in
  
positive.code:     let rec disjoin t1 t2 : option<(term * list<prob>)> =
          let mr, ts = head_matches_delta env () t1 t2 in
          match mr with
              | MisMatch _ ->
                None
  
  
negative.code:     | _, Tm_refine(x, _)  -> head_matches env t1 x.sort |> head_match
  
      | Tm_type _, Tm_type _
      | Tm_arrow _, Tm_arrow _ -> HeadMatch false
  
      | Tm_app(head, _), Tm_app(head', _) -> head_matches env head head' |> head_match
      | Tm_app(head, _), _ -> head_matches env head t2 |> head_match
      | _, Tm_app(head, _) -> head_matches env t1 head |> head_match
  
      | Tm_let _, Tm_let _
      | Tm_match _, Tm_match _ -> HeadMatch true
  
      | _ -> MisMatch(delta_depth_of_term env t1, delta_depth_of_term env t2)
  
  