Ack! Boilerplate. Instead, define and use a type-specialization of fromIntegralB that takes an integer. Then you won't need the type annotations. Then you'll still have the boilerplate of the instances, which you can eliminate with a macros. We may want to add other instances, and this repetition would just get worse.