Oh. Dropping IO.inspect into the pipeline is embarrassingly obvious! I can't believe I didn't think to do that. I always used IO.inspect as a pretty printer during development but I guess I didn't think it would return/pass through its input. Thanks for pointing that out.
I clearly hadn't bothered to read the 'Getting Started - Debugging' page on the Elixir website at any point.