Not elegant, but:
module A
export foo
whoami() = @__MODULE__
foo = :(eval(:($whoami)))
end
module B
# Note that B knows nothing about A
whoami() = @__MODULE__
end
A.eval(A.foo)() # Main.A
B.eval(A.foo)() # Main.B
Not elegant, but:
module A
export foo
whoami() = @__MODULE__
foo = :(eval(:($whoami)))
end
module B
# Note that B knows nothing about A
whoami() = @__MODULE__
end
A.eval(A.foo)() # Main.A
B.eval(A.foo)() # Main.B