 
 private func nub<A : Hashable>(xs : [A]) -> [A] {
 	return [A](Set(xs))
-}
-
-public func shrinkNone<A>(_ : A) -> [A] {
-	return []
 }
 
 private func unfoldr<A, B>(f : B -> Optional<(A, B)>, #initial : B) -> [A] {

public protocol Arbitrary {
	static func arbitrary() -> Gen<Self>
	static func shrink(Self) -> [Self]
}



	}
}

private func bits<N : IntegerType>(n : N) -> Int {
	if n / 2 == 0 {
		return 0
