Naming Oak's std.uniq

I was thinking about adding a couple of functions for de-duplicating lists of values to Oak's standard library. Here, I ran into a naming problem. Names in the language standard library are really important! They have to be short and memorable, but accurately represent what they do with minimal room for confusion.

This was my plan: One function would take [a, b, b, a] and return [a, b, a]; and the other function will return [a, b]. In other words, one returns a list that de-duplicates consecutive occurrences of a thing into just one, and the other sorts before de-duplicating so that elements occur at most once in the whole list.

It seems like different languages and environments use the name uniq to mean either of these operations. Some languages also use dedup for the other. What should Oak do?

For now, I think I'll just implement the first of the two functions, and call it uniq to be memorable. The other is a simple list |> sort() |> uniq() if it's needed, and having one name and one function reduces room for confusion. It also mirrors the UNIX command line idiom sort | uniq nicely, which feels right. This approach also means std.uniq won't need to depend on sort.sort, which depends on std; so this avoids a circular dependency.