WIP: more efficient type family coercions
This is an experiment with representing type family coercions more efficiently, following the approach described at #8095 (comment 335476). Opening primarily for CI; this still needs:
-
further performance tuning -
implementation of -dcore-lint
for the new coercion form -
cleanup and comments.