It seems that curried bounded function looses it's context.
The following test written in LiveScript for Node.js fails.
/*
* Curried bounded function works wrong.
*/
assert = require \assert
class A
(@list = \middle) ->
enclose: (head, tail) ~~>
[head, @list, tail].join!
a = new A
fn = a.enclose \head
curried = fn \tail
plain = a.enclose \head, \tail
# "Plain" and curried results should be equal:
assert.equal curried, plain