Elixir framework for composing functions