Parse list

Work in progress
Can you use `a` as a name for slice receivers? It's more consistent with the rest of the code and with the Go stdlib.