Thanks @ericmj and @tonini! I don't think the `:no_module` is a good approach though because :no_module is still a valid atom name. I think the best to do here is to stop using `UndefinedFunctionError` and simply return `RuntimeError[message: "undefined function #{function}/#{arity}"]` (note arity can be a list, so we need to convert it to an integer if so).