 
 // `bind` works exactly like Array's `flatMap`, but instead of concatenating the generated arrays it
 // produces a new generator that picks values from among the newly created generators produced by 
-// the function.  While That definition may *technically* be what occurs, it is better to think of 
-// `bind` as a way of making a generator depend on another.  For example, you can use a generator of
-// sizes to limit the length of generators of arrays:
-
+// the function.  
+//
+// While that definition may *technically* be what occurs, it is better to think of `bind` as a way 
+// of making a generator depend on another.  For example, you can use a generator of sizes to limit
+// the length of generators of arrays:
 let generatorBoundedSizeArrays = fromOnetoFive.bind { len in
 	return characterArray.suchThat { xs in xs.count <= len }
 }

let localEmail = allowedLocalCharacters.proliferateNonEmpty().fmap(String.init)

//: The RFC says that the host name can only consist of lowercase letters, numbers, and dashes.  We'll skip some
//: steps here and combine both steps above into one big generator.

let hostname = Gen<Character>.oneOf([
	lowerCaseLetters,

}

// Fo' Real This Time.
property("All Prime") <- forAll { (n : Positive<Int>) in
	let primes = sieveProperly(n.getPositive)
	return primes.count > 1 ==> {
		let primeNumberGen = Gen<Int>.fromElementsOf(primes)
