implement traits for arithmetic but non-range types