 	}
 	
 	public static func arbitrary() -> Gen<NonZero<A>> {
-		return NonZero.create <^> A.arbitrary().suchThat(!=0)
+		return NonZero.create <^> A.arbitrary().suchThat { $0 != 0 }
 	}
 	
 	public static func shrink(bl : NonZero<A>) -> [NonZero<A>] {
-		return A.shrink(bl.getNonZero).filter(!=0).map({ NonZero($0) })
+		return A.shrink(bl.getNonZero).filter({ $0 != 0 }).map({ NonZero($0) })
 	}
 }
 

	}
	
	public static func arbitrary() -> Gen<Positive<A>> {
		return (Positive.create • abs) <^> A.arbitrary().suchThat(>=0)
	}
	
	public static func shrink(bl : Positive<A>) -> [Positive<A>] {

	return Blind<B>(f(ar.getBlind))
}

/// Guarantees test cases for its underlying type will not be shrunk.
public struct Static<A : Arbitrary> : Arbitrary, Printable {
	public let getStatic : A
	
