anchor.diff:              | :? MapTreeNode<'Key, 'Value> as mn -> mn.Height
               | _ -> 1
       
  +    [<Literal>]
  +    let tolerance = 2
  +    
       let mk l k v r : MapTree<'Key, 'Value> = 
           let hl = height l
           let hr = height r
  -        let m = max hl hr
  +        let m = if hl < hr then hr else hl
           if m = 0 then // m=0 ~ isEmpty l && isEmpty r 
               MapTree(k,v)
           else
  
positive.code:             else (* rotate left *)
                  mk (mk t1 k v t2'.Left) t2'.Key t2'.Value t2'.Right
          else
              if  t1h > t2h + 2 then (* left is heavier than right *)
                  let t1' = asNode(t1)
                  (* one of the nodes must have height > height t2 + 1 *)
                  if height t1'.Right > t2h + 1 then 
  
negative.code:     let rebalance t1 (k: 'Key) (v: 'Value) t2 : MapTree<'Key, 'Value> =
          let t1h = height t1
          let t2h = height t2 
          if  t2h > t1h + tolerance then (* right is heavier than left *)
              let t2' = asNode(t2)
              (* one of the nodes must have height > height t1 + 1 *)
              if height t2'.Left > t1h + 1 then  (* balance left: combination *)
  