anchor.diff:  
       //
       [<CompiledName("MapIndexed")>]
  -    let mapi (mapping : int -> 'T -> 'U) (vector : vector<'T>) : vector<'U> =
  -        // Preconditions
  -        checkInitialized "vector" vector
  -        
  -        notImpl "Vector.mapi"
  +    let mapi (mapping : int -> 'T -> 'U) (vec : vector<'T>) : vector<'U> =
  +        // Preconditions
  +        checkInitialized "vec" vec
  +        
  +        // If the vector is empty, return immediately.
  +        if isEmpty vec then empty
  +        else
  +            Array.mapi mapping vec.Elements
  +            |> vector.UnsafeCreate
   
       //
       [<CompiledName("MapIndexed2")>]
  
positive.code: 
      //
      [<CompiledName("TryPick")>]
      let tryPick (chooser : 'T -> 'U option) (vector : vector<'T>) : 'U option =
          // Preconditions
          checkInitialized "vector" vector
          
          notImpl "Vector.tryPick"
  
      //
      [<CompiledName("Pick")>]
      let pick (chooser : 'T -> 'U option) (vector : vector<'T>) : 'U =
          // Preconditions
          checkInitialized "vector" vector
          
          notImpl "Vector.pick"
  
      //
      [<CompiledName("Choose")>]
      let choose (chooser : 'T -> 'U option) (vector : vector<'T>) : vector<'U> =
          // Preconditions
          checkInitialized "vector" vector
          
          notImpl "Vector.choose"
  
  
negative.code: 
      //
      [<CompiledName("IterateIndexed")>]
      let iteri (action : int -> 'T -> unit) (vec : vector<'T>) : unit =
          // Preconditions
          checkInitialized "vec" vec
          
          // If the vector is empty return immediately.
          if not <| isEmpty vec then
              Array.iteri action vec.Elements
  
      //
      [<CompiledName("IterateIndexed2")>]
  