anchor.diff:  
               | MisMatch(Some d1, Some d2) when (d1=d2) -> //incompatible
                 reduce_both_and_try_again d1 r
  - 
  +
               | MisMatch(Some d1, Some d2) -> //these may be related after some delta steps
                 reduce_one_and_try_again d1 d2
   
  
positive.code:         | _, Tm_uvar _ when (tp.relation=EQ || Options.eager_inference()) ->
            Flex_rigid_eq, tp
  
          | Tm_uvar _, Tm_type _
          | Tm_type _, Tm_uvar _ ->
            //this case is so common, that even though we could delay, it is almost always ok to solve it immediately as an equality
  
negative.code:              then "None"
               else snd r
                   |> must
                   |> (fun (t1, t2) ->
                       Print.term_to_string t1
                       ^ "; "
                       ^ Print.term_to_string t2));
      r
  
  