seperate apply and sexpr
gaurd against functions without a prototype

I think functions returned from `.bind` can lack prototypes
Release 3.3.1