I know that there are arrays, some strange container classes and so on. But how does one create and use a templated list in D that supports adding, removing and sorting items? One that can be used for structs and for classes?