I tried doing this but it ends up adding more complexity than I'd want. For instance, supporting `add(int index, E value)`, `remove(int index)`, etc. aren't ever needed and would throw otherwise.