Produce coercion rules for derived Functor instances
I don't think we do this yet, but I think we probably can. If we derive a
Functor instance, we should, whenever possible and valid, produce some sort of
fmap coerce = coerce rule for that type. This is done manually for lists in
GHC.Base, but I imagine it probably applies (much) more generally.