Вообще, делается так:
* из debug info модуля вытаскиваешь ast, по идее эликсирное должно где-то лежать, эрланговое точно есть
* добавляешь в ast нужный тебе клоз функции
* пихаешь его в компилятор, выхлоп компилятора грузишь как модуль
Проблемы и неудобства :
* на втором шаге ты заебешься искать точку вставки, и она может меняться в зависимости от версии компилятора/stdlib.
* в неудачном для тебя случае, тебе придётся работать с эрланговым ast.
* все, кто об этом узнают, будут стремиться обоссать тебе лицо