We should allow to change the delegator at runtime as for some test scenarios this may make sense.
Application.put_env(:my_app, Delx, delegator: MyCustomDelegator)
API Suggestion:
defmodule MyModule do
use Delx, otp_app: :my_app, runtime: true
end
Compile time delegation (runtime: false) should be the default though as runtime delegation is significantly slower.