anchor.diff:               return List.ofSeq subSeq }
   
       /// Generates an array of a specified length.
  +    ///[category: Creating generators from generators]
  +    [<CompiledName("ArrayOfLength")>]
       let arrayOfLength n (g: Gen<'a>) : Gen<'a[]> = listOfLength n g |> map Array.ofList
   
       /// Generates an array using the specified generator. The maximum length is the size+1.
  +    ///[category: Creating generators from generators]
  +    [<CompiledName("ArrayOf")>]
       let arrayOf (g: Gen<'a>) : Gen<'a[]> = 
          sized <| fun n ->
                gen { let! size = choose(0, n+1) //deccrease chance of empty arrays somewhat
                      return! arrayOfLength size g }
   
       /// Generates a 2D array of the given dimensions.
  +    ///[category: Creating generators from generators]
  +    [<CompiledName("Array2DOfDim")>]
       let array2DOfDim (rows: int,cols: int) (g: Gen<'a>)  = 
           gen { let! arr1 = arrayOfLength (rows * cols) g
                 return Array2D.init rows cols (fun r c -> arr1.[cols*r + c]) }
   
       /// Generates a 2D array. The square root of the size is the maximum number of rows and columns.
  +    ///[category: Creating generators from generators]
  +    [<CompiledName("Array2DOf")>]
       let array2DOf (g: Gen<'a>) = 
           sized <| fun n ->
               gen { let chooseSqrtOfSize = choose(0, n |> float |> sqrt |> int)
  
positive.code: 
      /// Generates a list of random length. The maximum length depends on the
      /// size parameter.
      let listOf gn =
          sized <| fun n ->
              gen {   let! k = choose (0,n+1) //decrease chance of empty list
  
negative.code:                                         return f a' b' c' d' }
  
      ///Build a generator that generates a 4-tuple of the values generated by the given generator.
      ///[category: Creating generators from generators]
      [<CompiledName("Four")>]
      let four g = map4 (fun a b c d -> (a,b,c,d)) g g g g
  
      ///Map the given function over values to a function over generators of those values.
      ///[category: Creating generators from generators]
      [<CompiledName("Map5")>]
      let map5 f = fun a b c d e -> gen {  let! a' = a
                                           let! b' = b
                                           let! c' = c
  