public function first() : Optional
    {
        try {
            return Optional::ofNullable($this->get(0));
        } catch (OutOfBoundsException $e) {
            return Optional::absent();
        }
    }