The try_type_improvement function assumes that the determinant is always the right most type argument to an open type
class F a b | a -> b
instance F Int Int
with
[W] F Int b -- works
T a b | b -> a
instance T Int int
with [W] T a Int -- Fails
Expected
both T and F should work.
The
try_type_improvementfunction assumes that the determinant is always the right most type argument to an open typewith
[W] F Int b-- workswith
[W] T a Int-- FailsExpected
both T and F should work.