functional generator, let the implementation return the iterator
fixes in fp (rename arg to par)