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

	
	/// List of one element.
	init(_ element: Element) {
		self = .Node(element, [ List.Nil ])
	}
	
	/// Prepending.
	init(_ element: Element, rest: List<Element>) {
		self = .Node(element, [ rest ])
	}
	
	/// N-ary list from a generator.
	init<G: GeneratorType where G.Element == Element>(var generator: G) {
		if let next: Element = generator.next() {
			self = .Node(next, [ List(generator: generator) ])
		} else {
			self = .Nil
		}


	// MARK: Cases

	case Cons(Element, [List<Element>])
	case Nil
}

