/**
* Reverses a `List`, returning a new `List`
*
* @tsplus getter List reverse
*/
export function reverse(self: List): List {
let result = List.empty()
let these = self
while (!these.isNil()) {
result = result.prepend(these.head)
these = these.tail
}
return result
}