Charon: Move into its own header.
Group: Move generic function into header

This makes explicit template instantiation obsolete.