compiler/modes.m:
Change the representation of extra_goals from just a pair
of lists of goals (goals to insert before & after the main
goal, respectively) so that it includes an instmap, which
is the instmap after the main goal. This change is required
because without it it was incorrectly computing the instmap
delta for the main goal, if the after-goals list was non-empty.
Also, delete the before-goals list, because it is not used
and because getting the instmap deltas right for before-goals
would be tricky.
compiler/modecheck_unify.m:
compiler/unique_modes.m:
compiler/modecheck_call.m:
Various changes to use the new representation of extra_goals.
tests/hard_coded/Mmake:
tests/hard_coded/impossible_unify.m:
tests/hard_coded/impossible_unify.exp:
Regression test for the above-mentioned bug.