HTTPoison Autoretry

AH I see. I would 100% expect a literal function definition instead of a macro based one. That’s how Task, spawn, and a host of other functions like it work. What you have isn’t hideous but quite possibly you just do

request = fn ->
  HTTPoison.get("example.com")
end

request
|> auto_retry
|> handle_response