anchor.diff:              // Preconditions
               checkNonNull "array" array
   
  -            raise <| System.NotImplementedException "ExtCore.Control.Collections.Async.Array.foldi"
  +            let folder = FSharpFunc<_,_,_,_>.Adapt folder
  +
  +            (async.Return state, array)
  +            ||> Array.foldi (fun index stateAsync el ->
  +                async {
  +                // Get the state.
  +                let! state = stateAsync
  +
  +                // Invoke the folder and return the result.
  +                return! folder.Invoke (index, state, el)
  +                })
   
           //
           [<CompiledName("Iterate")>]
  
positive.code:     /// The standard F# Array module, lifted into the Async monad.
      [<RequireQualifiedAccess; CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
      module Array =
          //
          [<CompiledName("Initialize")>]
          let init (count : int) (initializer : int -> Async<'T>) : Async<'T[]> =
  
negative.code:         /// this allows the use of mapping functions requiring a (possibly mutable) state variable.
          /// This function traverses the input array from right-to-left.
          /// The index values are tagged with a unit-of-measure type before applying them to the mapping function.
          [<CompiledName("MapIndexedBack")>]
          let mapiBack (mapping : int<'Tag> -> 'T -> 'State -> 'U * 'State)
                  (array : 'T[]) (state : 'State) : 'U[] * 'State =
              // Preconditions
              checkNonNull "array" array
  
  