namespace M = function mf() = mg() function mg() = mf() namespace N = function nf() = ng() + M.mf() + M.mg() private function ng() = nf() + M.mf() + M.mg() contract C = entrypoint f() = N.ng() + N.nf() + g() function g() = N.ng() + N.nf() + f()