addFull(
Monad,
"u",
"Uniquify",
List("uniquify"),
false,
"a: lst -> a with duplicates removed"
) { a =>
val iter = ListHelpers.makeIterable(a)
val uniq: LazyList[Option[VAny]] =
LazyList.unfold(Seq[VAny]() -> 0) { state =>
if !iter.hasIndex(state._2) then None
else if state._1.contains(iter.index(state._2)) then
Some(None, state._1 -> (state._2 + 1))
else
Some(
Some(iter.index(state._2)),