Compile-time AST scanner that warns when a ctest body uses operations
that aren't routed through Lockstep's controller. Bare send, bare
receive, Process.send_after, GenServer.call, Task.async, and
similar will silently break the controlled schedule -- better to warn
at compile time than have the user wonder why nothing reproduces.
False positives (your project genuinely defines MyMod.send/2 and
the linter flags send/2 calls) can be silenced by qualifying the
call (Kernel.send(...)) or by importing nothing.
Summary
Functions
Walk ast and emit IO.warn/2 for each unwrapped operation found.
Always returns the AST unchanged.