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!