T Generator F.virtual.abstract next() -> Float T PowersGenerator(Generator) i = 0.0 Float e F (e) .e = e F.virtual.assign next() -> Float V r = .i ^ .e .i++ R r T Filter Generator gen, filter Float lastG, lastF F (Generator gen, filter) .gen = gen .filter = filter .lastG = .gen.next() .lastF = .filter.next() F ()() L .lastG >= .lastF I .lastG == .lastF .lastG = .gen.next() .lastF = .filter.next() V out = .lastG .lastG = .gen.next() R out V gen = Filter(PowersGenerator(2), PowersGenerator(3)) L 20 gen() L 10 print(gen(), end' ‘ ’)