 <ul> <li>Are the requirement dependencies in C.lua correct? Can this be done or is it circular? <ul> <li>What you have looks fine to me.</li> </ul></li> <li>Can I overload mycalc(a,b) so it is same function name in both A and B? <ul> <li>I don't think that would make sense without another change, which would be to scope the definitions in A and B and return a table from each. That would look like this:</li> </ul></li> </ul> <p>B.lua (and A.lua similarly):</p> <pre><code>require 'mycalculator' local a=1; local b=2; local X=50; local function mycalcB(a,b) return myadd(a,b)+50; end B = { mycalc = mycalcB } return B </code></pre> <p>C.lua:</p> <pre><code>require 'A' require 'B' print(B.mycalc(1,2)) print(A.mycalc(1,2)) </code></pre>