public class GenIterable: Object, Iterator, Iterable { public weak Generator gen {set; get; } public Value value; public Type get_element_type() { return typeof(Value); } public Iterator iterator() { return this; } public bool next() { return gen.next(out value); } public Value* get() { return &value; } }