anchor.diff:                  let writer = 
                       bufferWriters.GetOrCreate(view, fun view ->
                           isNew <- true
  +                        let data = BufferView.download 0 (int count) view
  +                        let real : IMod<'a[]> = data |> PrimitiveValueConverter.convertArray view.ElementType
                           let remove w =
                               x.Dirty.Remove w |> ignore
                               bufferWriters.Remove view |> ignore
  -                            let mutable foo = 0
  -                            view.Buffer.Outputs.Consume(&foo) |> ignore
  -
  -                        let data = BufferView.download 0 (int count) view
  -                        let real : IMod<'a[]> = data |> PrimitiveValueConverter.convertArray view.ElementType
  +                            view.Buffer.Outputs.Remove(real) |> ignore // remove converter from Output of data Mod (in case there is no converter remove will do nothing, but Release of ManagedBufferSingleWriter will)
  +
                           let w = new ManagedBufferWriter<'a>(remove, real, store)
                           x.Dirty.Add w |> ignore
                           w
  
positive.code:         inherit ManagedBufferWriter(remove)
          static let asize = sizeof<'a> |> nativeint
  
          override x.Release() = ()
              // should not be necessary as this is typically the PrimitiveValueConverter
              //let mutable foo = 0
              //data.Outputs.Consume(&foo) |> ignore
  
          override x.Write(token, target) =
              let v = data.GetValue(token)
  
negative.code:         inherit ManagedBufferWriter(remove)
          static let asize = sizeof<'a> |> nativeint
              
          override x.Release() = 
              // in case the data Mod is a PrimitiveValueConverter, it would be garbage collected and removal of the output is not essential
              // in case the data Mod is directly from the application (no converter), removing the Writer from its Output is essential
              data.Outputs.Remove(x) |> ignore
  
          override x.Write(token, target) =
              let v = data.GetValue(token)
  