Peek forward in an iterator as far as you'd like, memory allowing!
val peekable = Seq(1, 2, 3).iterator.fullyPeekable
peekable.liftMany(0, 3) // Seq(Some(1), Some(2), Some(3), None)
peekable.toSeq // Seq(1, 2, 3)
ivyDeps ++ Agg(ivy"io.cvbio.collection::fullypeekable::1.0.0")
libraryDependencies += "io.cvbio.collection" %% "fullypeekable" % "1.0.0"