When we use underscore like this: us=require "underscore" f=us.compose(print,function(a) return a+1 end) f(1) will trigger this bug. Maybe in line 359 "return funcs[1](call_funcs%28_.rest%28funcs%29, ...%29)" should change as "return funcs[1](call_funcs%28Underscore.rest%28funcs%29,...%29)"