The program appears to hang if run on its own source code. Is it merely very slow or is there a non-terminating loop somewhere?