anchor.diff:      member x.Iterate(f) =  
           for kvp in firstEntries do
               f kvp.Key kvp.Value
  -            match x.GetRest(kvp.Key)  with
  +            match x.GetRest(kvp.Key) with
               | [] -> ()
               | rest -> 
                   for z in rest do
  
positive.code:         let mutable res = acc
          for kvp in firstEntries do
              res <- f kvp.Key kvp.Value res
              match x.GetRest(kvp.Key)  with
              | [] -> ()
              | rest -> 
                  for z in rest do
  
negative.code: // one entry. So use two hash tables: one for the main entries and one for the overflow.
  [<Sealed>]
  type internal HashMultiMap<'Key,'Value>(n: int, hasheq: IEqualityComparer<'Key>) = 
      let firstEntries = Dictionary<_,_>(n,hasheq)
      let rest = Dictionary<_,_>(3,hasheq)
   
      new (hasheq : IEqualityComparer<'Key>) = HashMultiMap<'Key,'Value>(11, hasheq)
      new (seq : seq<'Key * 'Value>, hasheq : IEqualityComparer<'Key>) as x = 
          new HashMultiMap<'Key,'Value>(11, hasheq)
          then seq |> Seq.iter (fun (k,v) -> x.Add(k,v))
  
      member x.GetRest(k) =
          let mutable res = []
          let ok = rest.TryGetValue(k,&res)
          if ok then res else []
  