An easy way is to just define your functions in a table, and at the end of the file to be required, return the table. This was the pattern used in Lua before 5.1. The source for Luacov provides a clear example:
https://github.com/keplerproject/luacov/blob/master/src/luac...