Types used to represent constant arrays with varying lengths that allow easy access to the head and tail.