To use a specific example, there is a MIME module in LuaSocket that needs
some C support, but also has Lua code. Thus, there is a mime.dll and a
mime.lua. The user calls
mime = require"mime"
and is happy. In mime.lua, however, I have to load mime.dll. It is good to
be able to do this without worrying about using different names for the C
and the Lua part of the library. I just do
local mime = requirelib("mime")
... define Lua functionality
return mime
The implementor *knows* which is which. Why eliminate this freedom?