Estimated hours taken: 6
Branches: main
Fixed bug where the arguments of a closure were being compared normally,
instead of having their representations compared.
Also fixed some copy-paste errors in the comments for list.foldl3 and foldl4.
library/list.m
Fixed comments for foldl3 and foldl4.
runtime/mercury_ho_call.c
When comparing the arguments of a closure use
MR_generic_compare_representation, instead of MR_generic_compare, since
one of the arguments may itself be a closure. Renamed
MR_compare_closures to MR_compare_closures_representation to make it
clear that the representation is being compared.
runtime/mercury_unify_compare_body.h
Changed call to MR_compare_closure to
MR_compare_closure_representation.
tests/hard_coded/closure_arg_comparison.m
Test the bug fix. Before the fix this program would terminate with
"Mercury runtime: attempt to compare higher-order terms".
tests/hard_coded/closure_arg_comparison.exp
Expected output.