 /// A singly-linked lazy list.
 enum List<Element> {
 	case Nil
-	case Node(Element, List<Element>[]?)
+	case Node(Element, List<Element>[])
 	
 	/// Nil case.
 	init() {

	
	/// List of one element.
	init(_ element: Element) {
		self = .Node(element, nil)
	}
	
	/// Prepending.
	init(_ element: Element, rest: List<Element>) {
		self = .Node(element, [rest])
	}
	
	/// N-ary list from a generator.

		var list = self
		return GeneratorOf {
			switch list {
			case let .Node(x, next):
				list = next[0]
				return x
			case .Nil:
				return nil
			}
		}
	}
