Unable to coerce with flipped Coercible context
coerce' :: Coercible a b => b -> a coerce' = coerce
doesn't compile, forcing workarounds like:
coerce' :: forall a b. Coercible a b => b -> a coerce' = coerce (id :: a -> a)
This arises in practice in several places in the
profunctors package and
Ideally we'd be able to retire
coerce' entirely and just use
coerce in those contexts.
The tricky part is of course avoiding infinite loops once you add symmetry.
|Component||Compiler (Type checker)|