 import Foundation
 import Basis
 
-private func vary<S : IntegerType>(k : S)(r: StdGen) -> StdGen {
-	let s = r.split()
-	var gen = ((k % 2) == 0) ? s.0 : s.1
-	return (k == (k / 2)) ? gen : vary(k / 2)(r: r)
-}
-
+/// Shakes up the internal Random Number generator for a given Generator with a seed.
 public func variant<A, S : IntegerType>(seed: S)(m: Gen<A>) -> Gen<A> {
 	return Gen(unGen: { r in
 		return { n in

	})
}

public func resize<A>(n : Int)(m: Gen<A>) -> Gen<A> {
	return Gen(unGen: { r in
		return { (_) in

	})
}

/// Constructs a Generator that only returns values that satisfy a predicate.
public func suchThat<A>(gen: Gen<A>)(p: (A -> Bool)) -> Gen<A> {
	return suchThatOptional(gen)(p) >>- ({ mx in
		switch mx {
