anchor.diff:  
       ///Generates a list of given length, containing values generated by the given generator.
       //[category: Creating generators from generators]
  -    [<System.Runtime.CompilerServices.Extension>]
  +    [<Extension>]
       static member ListOf (generator, nbOfElements) =
           listOfLength nbOfElements generator
           |> map (fun l -> new List<_>(l) :> IList<_>)
  
positive.code:     /// Generates a list of random length. The maximum length depends on the
      /// size parameter.
      //[category: Creating generators from generators]
      [<System.Runtime.CompilerServices.Extension>]
      static member ListOf (generator) =
          listOf generator
          |> map (fun l -> new List<_>(l) :> IList<_>)
  
negative.code: open Gen
  open System
  open System.Collections.Generic
  open System.Runtime.CompilerServices
  
  ///Extension methods to build generators - contains among other the Linq methods.
  [<AbstractClass; Sealed; Extension>]
  type GenExtensions = 
  
      ///Generates a value with maximum size n.
      //[category: Generating test values]
      [<Extension>]
      static member Eval(generator, size, random) =
          eval size random generator
  
      ///Generates n values of the given size.
      //[category: Generating test values]
      [<Extension>]
      static member Sample(generator, size, numberOfSamples) =
          sample size numberOfSamples generator
  
      /// Allows type annotations in LINQ expressions
      [<Extension>]
      static member Cast(g:Gen<_>) = g
  
      ///Map the given function to the value in the generator, yielding a new generator of the result type.
      [<Extension>]
      static member Select(g:Gen<_>, selector : Func<_,_>) = g.Map(fun a -> selector.Invoke(a))
  
      ///Generates a value that satisfies a predicate. This function keeps re-trying
      ///by increasing the size of the original generator ad infinitum.  Make sure there is a high chance that 
      ///the predicate is satisfied.
      [<Extension>]
      static member Where(g:Gen<_>, predicate : Func<_,_>) = where (fun a -> predicate.Invoke(a)) g
      
      [<Extension>]
      static member SelectMany(source:Gen<_>, f:Func<_, Gen<_>>) = 
          gen { let! a = source
                return! f.Invoke(a) }
      
      [<Extension>]
      static member SelectMany(source:Gen<_>, f:Func<_, Gen<_>>, select:Func<_,_,_>) =
          gen { let! a = source
                let! b = f.Invoke(a)
  