formal parameter names should not even be called here if the function is already compiled but let's make them cheaper by caching them