Use defdelegate to define functions that delegate to functions of the same name defined in another module:
defmodule Math do
defdelegate pi, to: :math
endiex> Math.pi
3.141592653589793Another example - protocols with default implementation:
defmodule ReversableString do
# ...
def reverse(s) do
# Implementation omitted
end
# ...
enddefimpl Reversable, for: ReversableString do
defdelegate reverse(self), to: ReversableString
end