anchor.diff:                 (totalSizeOnMapLookup / float numLookups))
              System.Console.WriteLine("#largestMapSize = {0}, largestMapStackTrace = {1}", largestMapSize, largestMapStackTrace)
   
  -    let MapOne n = 
  +    let MapTree n = 
           report()
           numOnes <- numOnes + 1
           totalSizeOnNodeCreation <- totalSizeOnNodeCreation + 1.0
           MapTree n
   
  -    let MapNode (x, l, v, r, h) = 
  +    let MapTreeNode (x, l, v, r, h) = 
           report()
           numNodes <- numNodes + 1
           let n = MapTreeNode (x, l, v, r, h)
  
positive.code:             | :? MapTreeNode<'Key, 'Value> as mn -> mn.Height
              | _ -> 1
      
      let mk l k v r : MapTree<'Key, 'Value> = 
          let hl = height l
          let hr = height r
          let m = max hl hr
          if m = 0 then // m=0 ~ isEmpty l && isEmpty r 
              MapTree(k,v)
          else
  
negative.code:     let current i =
          if i.started then
              match i.stack with
              | []     -> alreadyFinished()
              | m :: _ ->
                  match m with
                  | :? MapTreeNode<'Key, 'Value> -> failwith "Please report error: Map iterator, unexpected stack for current"
  