 	static func shrink(Self) -> [Self]
 }
 
+
 extension Bool : Arbitrary {
 	typealias A = Bool
 	public static func arbitrary() -> Gen<Bool> {

extension UInt32 : Arbitrary {
	typealias A = UInt32
	public static func arbitrary() -> Gen<UInt32> {
		return sized({ n in Gen<UInt32>.pure(arc4random() % UInt32(truncatingBitPattern: abs(n))) })
	}

	public static func shrink(x : UInt32) -> [UInt32] {

extension Int8 : Arbitrary {
	typealias A = Int8
	public static func arbitrary() -> Gen<Int8> {
		let sign = ((arc4random() % 2) == 1)
		return sized { n in Gen.pure((sign ? 1 : -1) * Int8(arc4random_uniform(UInt32(n)))) }
	}

	public static func shrink(x : Int8) -> [Int8] {
