Rpipe.eval does not handle parentheses as I'd expect. Sample usage... c(1:10, NA) %|% (sum %|% Curry(na.rm=TRUE) ) () I would expect here that the (sum %|% Curry(na.rm=TRUE)) would get evaluated first, creating a function, then the bound parentheses would create a function call, finally the c(1:10, NA) would get piped to it. According to the code, what happens is that the parentheses are ignored and everything is evaluated left to right.