list abstractions