Sorry, I was speaking in general — C libraries often both do an operation, and return something at the same time. You're absolutely right that the specifics here have no analog, though.
If you want to use a List as a queue, we already have List.pull for that:
x = ["a", "b", "c", "d"]
while x.len > 0
And of course List.pop if you want to use it as a stack.