It would be nice to either use Box or Rc as the underlying smart pointer type. Alas, until we have associated generic types, we can't be polymorphic over this, but perhaps in the interim code generation could be used to create concrete implementations of:
ArcList
RcList
BoxList
- etc.
Then once associated generic types comes we could convert these to type aliases that refer to a common List type.