interpretDebug :: String -> String -> String
interpretDebug inp progcode = printf "Output: %s\n\nFinal Tape:\n%s\n\nUnconsumed Input: %s" out (drawTape 12 dt) inp
	where
		(out, (dt, inp, _, _)) = runState (runProg . parse . tokenize $ progcode) (initState inp)

interpretDebug :: String -> String -> String
interpretDebug inp progcode = printf "Output: %s\n\nFinal Tape:\n%s\n\nUnconsumed Input: %s" out (drawTape 12 dt) inp
	where
		(out, (dt, inp, _, _)) = runState (runProg . parse . tokenize $ progcode) (initState inp)
interpretDebug inp progcode = printf "Output: %s\n\nFinal Tape:\n%s\n\nUnconsumed Input: %s" out (drawTape 12 dt) inp
	where
		(out, (dt, inp, _, _)) = runState (runProg . parse . tokenize $ progcode) (initState inp)