Iterators for OCaml, both restartable and consumable. The implementation
keeps a good balance between simplicity and performance.