@Razetime In C, you never check that A has two or more elements, but then you try to get its second element using (h (t A)). When A only has one element, that returns nil, which you then pass to B, which tries to compare it with a bunch of integers. Given the length of the debug output, I'm guessing that unexpected value leads to infinite recursion in C.
I've found a solution to Shortest code to produce infinite output in 15 bytes. Can anyone tie or beat it? (Must be a full program; can output to either stdout or stderr.)