introduce ->iterate(), ctx->pos, dir_emit()