anchor.diff:  
       /// 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
  
positive.code:             |> Seq.mapi (fun i value -> top.Create(value, sprintf "[%d]" i))
              |> Seq.map mapping.Invoke
              |> Seq.toArray
              |> bArray
  
          | BsonType.Null -> BsonArray()
          | _ -> failwithf "Expecting a list at '%s', got %A" (top.Path()) top
  
      /// Optionally get bson property
  
negative.code:         }
          |> Seq.take 10
          |> Seq.toArray
  
  /// [omit]
  type BsonValueOptionAndPath =
  