 		return l
 	}
 
-	/// Returns the first element in the list, or None, if the list is empty.
+	/// 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 a list to a single value.
	public func reduce<B>(f : (B, A) -> B, initial : B) -> B {
		switch self.match() {
		case .Nil:

	}

	/// Constructs the empty list.
	///
	/// Attempts to access the head or tail of this list in an unsafe manner will throw an exception.
	public init() {
		self.init((error("Attempted to access the head of the empty list."), error("Attempted to access the tail of the empty list.")), isEmpty: true)
	}
