anchor.diff:          printfn "%s timings..." name
           let rand = Random 1
           let entries = [|for _ in 0 .. 524280 do yield (let n = rand.Next () in (string n, (string n, string n)))|]
  -        for _ in 0 .. 2 do
  +        for _ in 0 .. 4 do
               GC.Collect ()
               let watch = Stopwatch.StartNew ()
               let made = make entries
  
positive.code:     runTimings
          (fun entries -> Array.fold (fun map (k, v) -> Map.add k v map) Map.empty entries)
          (fun entries map -> Array.iter (fun (k, _) -> ignore ^ Map.find k map) entries)
          "Map"
  
      // run vmap timings
      runTimings
  
negative.code:                     let! _ = Tmap.find k
                      return 0 } |>
                  ignore))
          "Tmap w/ Computation Expressions"
  
      // run tmap timings without computation expressions
      runTimings
          (fun entries -> Array.fold (fun map (k, v) -> Tmap.add k v map) (Tmap.makeEmpty None) entries)
          (fun entries map -> let refMap = ref map in Array.iter (fun (k, _) -> ignore ^ Tmap.find' k refMap) entries)
          "Tmap w/o Computation Expressions"
  
      // run dictionary timings
      let dic = Dictionary<string, string * string> ()
      runTimings
          (fun entries -> Array.iter (fun (k, v) -> if not ^ dic.ContainsKey k then dic.Add (k, v)) entries)
          (fun entries () -> Array.iter (fun (k, _) -> ignore ^ dic.[k]) entries)
          ".NET Dictionary"