I think it would be much more fruitful to flip it around the other way.

Start with small pieces which halt, and see how far you can get by combining them into larger programs. Compiler-help is available: https://docs.idris-lang.org/en/latest/tutorial/theorems.html...

A down-side of a yes/no/maybe halting checker is that it wouldn't tell you why. You'd get your "doesn't halt" result and then have to debug the algorithm.

If statement S1 halts and we combine it with S2 like "S1; S2", then we know that halts. :)