anchor.diff:                  |> boolToResult UnableToUpdateMemory
               let txId = s.ShardWriters.[shardNo].GetNextIndex()
               // Create new binary document
  -            s.Settings.Fields
  -            let doc = s.Template.Value |> DocumentTemplate.updateTempate document txId
  +            let template = s.Template.Get()
  +            let doc = template |> DocumentTemplate.updateTempate document txId
               if addToTxLog then 
                   let opCode = 
                       if create then TxOperation.Create
  
positive.code:         let caches = shardWriters |> Array.map (fun x -> VersionCache.create (settings, x))
          
          let indexWriter = 
              { Template = template
                ShardWriters = shardWriters
                Caches = caches
                Settings = settings
  
negative.code: open FlexSearch.Api.Model
  open FlexLucene.Codecs.Bloom
  open System.Threading
  open Microsoft.Extensions.ObjectPool
  
  /// An IndexWriter creates and maintains an index. It contains a list of ShardWriters,
  /// each of which encapsulating the functionality of IndexWriter, TrackingIndexWriter and
  /// SearcherManger through an easy to manage abstraction.
  type IndexWriter = 
      { Template : DefaultObjectPool<DocumentTemplate>
        Caches : VersionCache array
        ShardWriters : ShardWriter array
        Settings : IndexSetting
  