 		}
 	}
 
-	/// Returns the first n elements of a list.
+	/// Returns the first n elements of the reciever.
 	public func take(n : UInt) -> List<A> {
 		if n == 0 {
 			return []

		return l
	}

	/// Returns the first element in the list, or None, if the list is empty.
	public func head() -> Optional<A> {
		switch self.match() {
		case .Nil:

		}
	}

	/// Applies a binary operator to reduce the elements of the reciever to a single value.
	public func reduce<B>(f : B -> A -> B, initial : B) -> B {
		switch self.match() {
		case .Nil:
