bardoor / then Elixir 3 0 Simple way to set after-function callback aspect-oriented-programming elixir functional-programming callback