Re-define and use the 'receive' macro

Unfortunately, receive isn’t a function. It isn’t even a macro - it’s a special form. From the Kernel.SpecialForms module doc:
https://github.com/elixir-lang/elixir/blob/caed7d1d3fe368564f7204680c89ae58c8d7303b/lib/elixir/lib/kernel/special_forms.ex#L3-L4