Implement firstOrElse() and lastOrElse()