anchor.diff:          }
           |> Seq.take 10
           |> Seq.toArray
  -        // [| BsonTop.Create(BsonDocument(), "") |]
   
   /// [omit]
   type BsonValueOptionAndPath =
  
positive.code: 
      /// Convert BSON array to array of target types
      static member ConvertArray<'T>(top:IBsonTop, mapping:Func<IBsonTop,'T>) =
          let inline bArray (x:'T[]) = BsonArray(x)
          match top.BsonValue.BsonType with
          | BsonType.Array ->
              top.BsonValue.AsBsonArray.Values
  
negative.code:             |> Seq.mapi (fun i value -> top.Create(value, sprintf "[%d]" i))
              |> Seq.map mapping.Invoke
              |> Seq.toArray
  
          | BsonType.Null -> [| |]
          | _ -> failwithf "Expecting a list at '%s', got %A" (top.Path()) top
  
      /// Optionally get bson property
  