Added Option.traverse