anchor.diff:                 (totalSizeOnMapLookup / float numLookups))
              System.Console.WriteLine("#largestMapSize = {0}, largestMapStackTrace = {1}", largestMapSize, largestMapStackTrace)
   
  -    let MapTree n = 
  +    let MapTree (k,v) = 
           report()
           numOnes <- numOnes + 1
           totalSizeOnNodeCreation <- totalSizeOnNodeCreation + 1.0
  -        MapTree n
  +        MapTree (k,v)
   
       let MapTreeNode (x, l, v, r, h) = 
           report()
  
positive.code:     let rec foldBackOpt (f: OptimizedClosures.FSharpFunc<_, _, _, _>) (m: MapTree<'Key, 'Value>) x = 
          if isEmpty m then x
          else
              match m with 
              | :? MapTreeNode<'Key, 'Value> as mn ->
                  let x = foldBackOpt f mn.Right x
                  let x = f.Invoke (mn.Key, mn.Value, x)
                  foldBackOpt f mn.Left x
              | _ -> f.Invoke (m.Key, m.Value, x)
  
      let foldBack f m x =
          foldBackOpt (OptimizedClosures.FSharpFunc<_, _, _, _>.Adapt f) m x
  
negative.code:     let rec map (f:'Value -> 'Result) (m: MapTree<'Key, 'Value>) : MapTree<'Key, 'Result> = 
          if isEmpty m then empty
          else
              if m.Height = 1 then 
                  MapTree (m.Key, f m.Value)
              else
                  let mn = asNode m
                  let l2 = map f mn.Left 
                  let v2 = f mn.Value
                  let r2 = map f mn.Right
                  MapTreeNode (mn.Key, v2, l2, r2, mn.Height) :> MapTree<'Key, 'Result>
  
      let rec mapiOpt (f: OptimizedClosures.FSharpFunc<'Key, 'Value, 'Result>) (m: MapTree<'Key, 'Value>) = 
          if isEmpty m then empty
          else
              if m.Height = 1 then
                  MapTree (m.Key, f.Invoke (m.Key, m.Value))
              else
                  let mn = asNode m
                  let l2 = mapiOpt f mn.Left
                  let v2 = f.Invoke (mn.Key, mn.Value) 
                  let r2 = mapiOpt f mn.Right
                  MapTreeNode (mn.Key, v2, l2, r2, mn.Height) :> MapTree<'Key, 'Result>
              
  
      let mapi f m =
          mapiOpt (OptimizedClosures.FSharpFunc<_, _, _>.Adapt f) m
  