Returns the first element of this collection as a Some if non-empty. If this collction is empty, None is returned.
Option<A> get headOption { final it = iterator; return Option.when(() => it.hasNext, () => it.next()); }