Macros for more flexible composition with the Elixir Pipe operator