 	}
 	
 	/// Returns a list of the longest prefix of elements satisfying a predicate.
-	public func takeWhile(p : A -> Bool) -> List<A> {
+	public func takeWhile(p : Element -> Bool) -> List<Element> {
 		switch self.match {
 		case .Nil:
 			return []

//

/// An enum representing the possible values a list can match against.
public enum ListMatcher<A> {
	/// The empty list.
	case Nil
	/// A cons cell.
	case Cons(A, List<A>)
}

/// A lazy ordered sequence of homogenous values.

	}

	/// Returns the remaining list after dropping n elements from the receiver.
	public func drop(n : UInt) -> List<Element> {
		if n == 0 {
			return self
		}
