 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.
+//: steps here and combine both steps into one big generator.
 
 let hostname = Gen<Character>.oneOf([
 	lowerCaseLetters,


//: Just for fun, let's try a simpler property that checks the same outcome:

reportProperty("All Prime") <- forAll { (n : Positive<Int>) in
	// Sieving Properly then filtering for primes is the same as just Sieving, right?
	return sieveProperly(n.getPositive).filter(isPrime) == sieveProperly(n.getPositive)
}

//         static func shrink(_ : Self) -> [Self]
//     }
//
//: Here's where we one-up Fuzz Testing and show the real power of Property Testing.  A "shrink" is
//: a strategy for reducing randomly generated values.  To shrink a value, all you need to do is 
//: return an array of "smaller values", whether in magnitude or value.  For example, the shrinker 
//: for `Array` returns Arrays that have a size less than or equal to that of the input array.
