anchor.diff:  
           intersperseImpl [hd] tl
   
  +/// <summary>
   /// Creates a new list by combining two lists together in an alternating fashion.
   /// If either list is empty, the other list is returned without modification.
  +/// </summary>
  +/// <param name="list1"></param>
  +/// <param name="list2"></param>
  +/// <returns></returns>
   [<CompiledName("Weave")>]
   let weave (list1 : 'T list) (list2 : 'T list) : 'T list =
       // Preconditions
  
positive.code: 
      list |> List.mapi (fun i x -> i, x)
  
  /// Applies a function to each element of the array, returning a new array whose elements are
  /// tuples of the original element and the function result for that element.
  [<CompiledName("ProjectValues")>]
  let projectValues (projection : 'Key -> 'T) (list : 'Key list) =
      // Preconditions
  
negative.code:         List.rev resultList1,
          List.rev resultList2
  
  /// <summary>Returns the number of list elements matching a given predicate.</summary>
  /// <param name="predicate"></param>
  /// <param name="list"></param>
  /// <returns></returns>
  /// <remarks>
  /// This function is an optimized implementation of: <c>List.filter predicate list |> List.length</c>
  /// </remarks>
  [<CompiledName("CountWith")>]
  let countWith (predicate : 'T -> bool) (list : 'T list) : int64 =
      // Preconditions
  