anchor.diff:          let onRelease (item : List<string>) = 
               item.Clear()
               true
  -        new DefaultObjectPool<List<string>>(new DefaultObjectPoolPolicy<List<string>>(factory, onRelease))
  +        new DefaultObjectPool<List<string>>(new ObjectPoolPolicy<List<string>>(factory, onRelease))
   
   [<AutoOpen>]
   module BytePool = 
  
positive.code:         let onRelease (dict : Dictionary<string, string>) = 
              dict.Clear()
              true
          new DefaultObjectPool<Dictionary<string, string>>(new DefaultObjectPoolPolicy<Dictionary<string, string>>(factory, 
                                                                                                                onRelease))
      
      /// Global memory pool to be shared across the engine
  
negative.code: open System.Collections.Concurrent
  open System.Threading
  
  type ObjectPoolPolicy<'T>(factory : unit -> 'T, onRelease : 'T -> bool) = 
      interface IPooledObjectPolicy<'T> with
          member __.Create() = factory()
          member __.Return(value : 'T) = onRelease (value)
  