anchor.diff:      [|
         for i in 0..(inner - 1) -> random 0 (inner*multiplier) |> makeKey, string i
       |]
  -  let removals  =
  -    let a = Array.copy inserts
  -    for i in 0..(inner - 2) do
  -      let s =  random i inner
  -      let t =  a.[s]
  -      a.[s] <- a.[i]
  -      a.[i] <- t
  -    a
  +  let removals    = shuffle random inserts
  +  let lookups     = shuffle random inserts
   
     module PersistentHashMap =
       let length (phm : PersistentHashMap<_, _>) =
  
positive.code: 
      let insert () =
        let result    = doInsert empty
        Checker.check (result.Count = inserted.Count) "Expected to be same length as testSet"
  
      let remove () =
        let result    = doRemove inserted
        Checker.check (result.Count = 0) "Expected to be empty"
  
      let insertAndRemove () =
        let inserted  = doInsert empty
        let result    = doRemove inserted
        Checker.check (result.Count = 0) "Expected to be empty"
  
      let insertAndLookup () =
        let inserted  = doInsert empty
        let result    = doLookup removals inserted
        Checker.check result "Expected true for all"
  
      let lookupInserted () =
        let result    = doLookup removals inserted
        Checker.check result "Expected true for all"
  
    let testCases =
      [|
        "Lookup"  , "Mutable Dictionary"           , Dict.lookupInserted
        "Insert"  , "Mutable Dictionary"           , Dict.insert
        "Lookup"  , "Persistent Hash Map (C#)"     , PersistentHashMap.lookupInserted
        "Insert"  , "Persistent Hash Map (C#)"     , PersistentHashMap.insert
        "Remove"  , "Persistent Hash Map (C#)"     , PersistentHashMap.remove
  
negative.code: 
      let insert () =
        let result    = doInsert empty
        Checker.check (fun () -> result.Count = inserted.Count) "Expected to be same length as testSet"
  
      let remove () =
        let result    = doRemove inserted
        Checker.check (fun () -> result.Count = 0) "Expected to be empty"
  
      let insertAndRemove () =
        let inserted  = doInsert empty
        let result    = doRemove inserted
        Checker.check (fun () -> result.Count = 0) "Expected to be empty"
  
      let insertAndLookup () =
        let inserted  = doInsert empty
        let result    = doLookup lookups inserted
        Checker.check (fun () -> result) "Expected true for all"
  
      let lookupInserted () =
        let result    = doLookup lookups inserted
        Checker.check (fun () -> result) "Expected true for all"
  
    module Map2 =
  
  