 //:
 //:     *** Failed! Proposition: All Prime
 //:     Falsifiable (after 11 tests and 2 shrinks):
-//:     Positive( 4 ) // or Positive( 10 )
+//:     Positive( 4 ) // or Positive( 9 )
 //:     0
 //:
 //: What's wrong here?

	// Sieving Properly then filtering for primes is the same as just Sieving, right?
	return sieveProperly(n.getPositive).filter(isPrime) == sieveProperly(n.getPositive)
}

//: # Conclusion


	// Here we use `emailGen` to generate our cases out of convenience, but there are much 
	// more efficient ways we could have done this.  See `Modifiers.swift` for examples.
	static func shrink(tt : ArbitraryEmail) -> [ArbitraryEmail] {
		// If we're down to 1 character addresses, we probably should stop shrinking.
		if (tt.getEmail.unicodeScalars.indexOf("\u{0040}") == tt.getEmail.unicodeScalars.startIndex.successor()) {
			return []
		}
		print(tt.getEmail)
		return emailGen.resize(tt.getEmail.unicodeScalars.count / 2) // Halve the size of the previous addresses
					.proliferateSized(2) // Proliferate a small array of alternatives
					.generate // Generate
					.map(ArbitraryEmail.init) // Then wrap in our Modifier Type
	}
}

