 		return index(self)(n)
 	}
 	
-	/// Looks up the nth element of a Stream.
+	/// Looks up the nth element of a `Stream`.
 	public func index<T>(s : Stream<T>) -> UInt -> T {
 		return { n in
 			if n == 0 {

		return (p.cons(self.head), r)
	}
	
	/// Returns the longest prefix of values in a Stream for which a predicate holds.
	public func takeWhile(p : T -> Bool) -> [T] {
		if p(self.step().head) {
			return self.step().tail.takeWhile(p).cons(self.step().head)

		return self
	}
	
	/// Returns the first n elements of a `Stream`.
	public func take(n : UInt) -> [T] {
		if n == 0 {
			return []
