anchor.diff:              windowedToFreshConsTail cons2 windowSize (i - 1) list.Tail
   
       let windowed windowSize (list: 'T list) =
  -        if windowSize <= 0 then invalidArgFmt "windowSize" "{0}\nwindowSize = {1}" [|SR.GetString SR.inputMustBePositive; windowSize|]
  +        if windowSize <= 0 then invalidArgInputMustBePositive "windowSize" windowSize
           let len = list.Length
           if windowSize > len then
               []
  
positive.code:            
        
      let init count f = 
          if count < 0 then 
              invalidArgFmt "count" "{0}\ncount = {1}" [|LanguagePrimitives.ErrorStrings.InputMustBeNonNegativeString; count|]
          if count = 0 then [] 
          else 
              let res = freshConsNoTail (f 0)
  
negative.code: namespace Microsoft.FSharp.Core
  
  module DetailedExceptions =
      open System
  
      /// takes an argument, a formatting string, a param array to splice into the formatting string
      let inline internal invalidArgFmt (arg:string) (format:string) paramArray =    
          let msg = String.Format (format,paramArray)
          raise (new ArgumentException (msg,arg))
  
      /// takes a formatting string and a param array to splice into the formatting string
      let inline internal invalidOpFmt (format:string) paramArray =
          let msg = String.Format (format,paramArray)
          raise (new InvalidOperationException(msg))
  
      /// throws an invalid argument exception and returns the difference between the lists' lengths
      let invalidArgDifferentListLength (arg1:string) (arg2:string) (diff:int) =
          invalidArgFmt arg1
              "{0}\n{1} is {2} elements shorter than {3}" 
              [|SR.GetString SR.listsHadDifferentLengths; arg1; diff; arg2|]
  
      /// throws an invalid argument exception and returns the difference between the lists' lengths
      let invalidArg3ListsDifferent arg1 arg2 arg3 len1 len2 len3 =  
          invalidArgFmt (String.Concat [|arg1; ", "; arg2; ", "; arg3|])
              "{0}\n {1}.Length = {2}, {3}.Length = {4}, {5}.Length = {6}" 
              [|SR.GetString SR.listsHadDifferentLengths; arg1; len1; arg2; len2; arg3; len3|]
  
      /// throws an invalid operation exception and returns how many elements the 
      /// list is shorter than the index
      let invalidOpListNotEnoughElements index = 
          invalidOpFmt 
              "{0}\nThe list was {1} {2} shorter than the index" 
              [|SR.GetString SR.notEnoughElements; index; (if index=1 then "element" else "elements")|]
  
      /// throws an invalid argument exception and returns the arg's value
      let invalidArgInputMustBeNonNegative arg count =
          invalidArgFmt arg "{0}\n{1} = {2}" [|SR.GetString SR.inputMustBeNonNegative; arg; count|]
          
      /// throws an invalid argument exception and returns the arg's value
      let invalidArgInputMustBePositive arg count =
          invalidArgFmt arg "{0}\n{1} = {2}" [|SR.GetString SR.inputMustBePositive; arg; count|]
  
  
  namespace Microsoft.FSharp.Primitives.Basics 
  