Returns all the of elements except the first.
Option<Iterable<T>> get tail => isEmpty ? kNone : some(skip(1));