     override func next() -> Element? {
         switch list {
         case .Nil: return nil
-        case .Cons(let h, let box):
-            list = box.value
+        case .Cons(let h, let t):
+            list = t
             return h
         }
     }

    }
}

class Box<T> {
    private(set) var value:T
    init(_ value:T) {
        self.value = value
    }
    class func B(value:T) -> Box<T> {
        return Box(value)
    }
}

enum List<T> {
    case Nil
    case Cons(h:T, t:Box<List<T>>)
}

class ListGenerator<T> : AnyGenerator<T> {

func manystack1<T>(t:Tokenizer<T>) -> Tokenizer<List<T>> {
    return t |>>= { v in
        many(t) |>>= { vs in
            return success(List<T>.Cons(h: v, t: vs))
        }
    }
}
