Higher order strategy arguments are handled a somewhat ad-hoc way in the renaming phase of strc. In the following module, the ho argument is not renamed, which leads to a link error (or worse: a C compilation error if we use the name h-o instead of ho).


module foo
imports list-cons
strategies

main =
foo(ho)
; foo(ho(![]))

strategies

foo(ho: (t -> t) * t -> t) =
ho(![])

strategies

ho(s) =
s
————————–

This illustrates again that we badly need a more solid handling of higher order strategy arguments.

Submitted on 1 January 2006 at 13:10

On 19 December 2006 at 20:59 Jira commented:

STR-497, martin:
This issue is critical for 0.17, since errors in the order of arguments are no longer reported by the C compiler due to the changes in the compilation scheme.


On 19 December 2006 at 21:06 Jira commented:

STR-497, martin:
See also the example of STR-655


On 9 January 2013 at 16:58 Eelco Visser removed tag 0.18M5

On 9 January 2013 at 16:58 Eelco Visser tagged 0.19M1

On 9 January 2013 at 17:03 Eelco Visser removed tag 0.19M1

On 9 January 2013 at 17:03 Eelco Visser tagged interesting

Log in to post comments