Estimated hours taken: 5
Branches: main
compiler/typecheck.m:
In `eliminate_constraint_by_class_rules', if `type_unify_list'
fails for a subclass, remove that subclass from the list of
constraints being examined rather than aborting.
`type_unify_list' may fail if one of the arguments to the
superclass constraint is not a type variable and does not unify
with the corresponding argument of the subclass.
In such cases, this particular superclass-subclass relationship
is not relevant to the constraint we are trying to prove so it is safe
to remove it.
tests/valid/Mmakefile:
tests/valid/typeclass_constraint_nonvar_bug.m:
Test case.