On 2 March 2015 at 14:11, Jonathan S. Shapiro <[email protected]> wrote:
>
> But Matt, there *are* no arity-abstract applications. The only *real*
> applications are the arity-concrete applications!
>

This :-)

- All applications are arity-concrete.

- All local definitions are arity-abstract.


I have a question. I import an arity-concrete function from 'C' that:

test :: fn 2 'a 'b -> 'c

I apply it like this:

((test 1) 2) instead of (test 1 2).

Do I care? As long as the intermediate (test 1) is a temporary value (in
the C++ sense), it does not cause any problems as it cannot escape, and
gets the (2) applied to it right away.

Obviously we cannot allow:

g = (test 1)

export g :: fn 1 'b -> c -- using export to indicate that we cannot allow
beta-reduction of any function 'g' is passed to remove this problem.

What are your thoughts on application of arty-concrete functions?


Keean.
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to