The GHC extension DerivingVia allow derivation through a specific morphism:
coerce. This library helps generalizing DerivingVia to arbitrary morphisms.
This is particularly useful for prototypes and specifications of instances.
See this blog post for more details!