anchor.diff:                  loop list LanguagePrimitives.GenericZero< 'T > 0
   
           [<CompiledName("AverageBy")>]
  -        let inline averageBy f (list:list<_>) = Seq.averageBy f list
  +        let inline averageBy (f : 'T -> 'U) (list:list<'T>) =
  +            match list with 
  +            | [] -> invalidArg "source" LanguagePrimitives.ErrorStrings.InputSequenceEmptyString;
  +            | _ ->
  +                let rec loop xs sum count = 
  +                    match xs with 
  +                    | [] -> LanguagePrimitives.DivideByInt sum count
  +                    | h::t -> loop t (Checked.(+) sum (f h)) (count + 1)
  +                loop list LanguagePrimitives.GenericZero< 'U > 0
   
           [<CompiledName("Collect")>]
           let collect f list = Microsoft.FSharp.Primitives.Basics.List.collect f list
  
positive.code: 
          [<CompiledName("Average")>]
          let inline average      (list:list<'T>) =
              checkNonNull "list" list
              match list with 
              | [] -> invalidArg "source" LanguagePrimitives.ErrorStrings.InputSequenceEmptyString;
              | _ ->
  
negative.code:     module List = 
  
          let inline indexNotFound() = raise (new System.Collections.Generic.KeyNotFoundException(SR.GetString(SR.keyNotFoundAlt)))
  
          [<CompiledName("Length")>]
          let length (list: 'T list) = list.Length
  