Make size() abstract.
Prefer equality_comparable<T> mixin to hand-written code.
Add io::(un)archive overload for file serialization.