Shouldn't `process_math` only take `blocks`?  It doesn't use `start`, `end`, or `last`.

This is what I meant earlier by only passing args that are used, rather than `ns`.