handles functions of arbitrarily many arguments
  -- no function arguments/return types yet