anchor.diff:      sparse
   
   ///
  -and [<AllowNullLiteral>] ArrayObject2(env, length:uint32, capacity:uint32) = 
  +and [<AllowNullLiteral>] ArrayObject(env:Env, length:uint32) = 
     inherit CO(env, env.Maps.Array, env.Prototypes.Array)
   
  +  /// Internal dense array
     let mutable dense = 
  -    if capacity <= 1024u
  -      then Array.zeroCreate<Descriptor>(int capacity)
  +    if length <= 1024u
  +      then Array.zeroCreate<Descriptor>(int length)
         else null
   
  +  /// Internal sparse array
     let mutable sparse =
  -    if capacity > 1024u
  -      then new SparseArray2()
  +    if length > 1024u
  +      then new SparseArray()
         else null
         
     /// Internal length property
     let mutable length = length
   
     ///
  -  let resizeDense (newCapacity:uint32) =
  +  let resizeDense newCapacity =
       let newCapacity = if newCapacity = 0u then 2u else newCapacity
       let newDense = Array.zeroCreate<Descriptor> (int newCapacity)
       let copyLength = Math.Min(int newCapacity, dense.Length)
  
positive.code: 
        // Switch to sparse array
        else
          sparse <- SparseArray2.CreateFromDense(dense)
          dense <- null
          sparse.Put(index, value)
          length <- index + 1u
  
negative.code:   static member DateTimeToTicks(date:DateTime) : int64 =
      (date.ToUniversalTime().Ticks - offset) / tickScale
  
  and AO = ArrayObject
  
  ///
  and [<AllowNullLiteral>] SparseArray() =
    
    let storage = new MutableSorted<uint32, BV>()
  
  