 	return forAllNoShrink(genA, pf: { t in forAllNoShrink(genB, genC, pf: { b, c in pf(t, b, c) }) })
 }
 
-/// Given 4 explicit generators, converts a function to a universally quantified property using the
-/// default shrinkers for those 4 types.
+/// Given 4 explicit generators, converts a function to a universally quantified property 
+/// for those 4 types.
 ///
 /// This variant of `forAll` does not shrink its argument but allows generators of any type, not
 /// just those that conform to `Arbitrary`.

	return forAllNoShrink(genA, pf: { t in forAllNoShrink(genB, genC, genD, genE, genF, genG, pf: { b, c, d, e, f, g in pf(t, b, c, d, e, f, g) }) })
}

/// Given 8 explicit generators, converts a function to a universally quantified property using the
/// default shrinkers for those 8 types.
///
/// This variant of `forAll` does not shrink its argument but allows generators of any type, not
/// just those that conform to `Arbitrary`.

	return forAllNoShrink(genA, pf: { t in forAllNoShrink(genB, pf: { b in pf(t, b) }) })
}

/// Given 3 explicit generators, converts a function to a universally quantified property for those
/// 3 types.
///
/// This variant of `forAll` does not shrink its argument but allows generators of any type, not
/// just those that conform to `Arbitrary`.
