introduces GADT Tag[T], used as both as erased and reified values in order to select specialised methods without casting.
a private inline method is used to specialise a template class for the number type Box[T]
match types are used to select specialised versions of traits based on the parameter
this introduces an issue with the unification of the type parameters for the specialised type classes. This is resolved with a final type member of a type class to mirror its type parameter and inline givens for that type member given evidence of a type class for the parameter.
fixes #22
Tag[T]
, used as both as erased and reified values in order to select specialised methods without casting.inline
method is used to specialise a template class for the number typeBox[T]