anchor.diff:          [<CompiledName("Map2")>]
           let map2 (mapping : 'T1 -> 'T2 -> Choice<'U, 'Error>) (array1 : 'T1[]) (array2 : 'T2[]) =
               // Preconditions
  -            if isNull array1 then nullArg "array1"
  -            elif isNull array2 then nullArg "array2"
  +            checkNonNull "array1" array1
  +            checkNonNull "array2" array2
   
               let len = array1.Length
               if array2.Length <> len then
  
positive.code:             // Preconditions
              checkNonNull "array" array
  
              raise <| System.NotImplementedException "ExtCore.Control.Collections.Async.Array.iter"
  
          //
          [<CompiledName("IterateIndexed")>]
  
negative.code:             // Preconditions
              checkNonNull "array" array
  
              let action = FSharpFunc<_,_,_>.Adapt action
  
              (async.Zero (), array)
              ||> Array.foldi (fun index iterPrevious el ->
                  async {
                  // Execute the workflow for the preceeding elements.
                  do! iterPrevious
  
                  // Asynchronously invoke the action for this element.
                  do! action.Invoke (index, el)
                  })
  
          //
          [<CompiledName("Reduce")>]
  