runTM :: TransitionFunc -> (InternalState, Tape) -> (InternalState, Tape)
runTM f (q,t) = (q', writeAndMove (s, m) t)
	where
		(q', s, m) = f (q, current t)

-- Writes the character to the tape, and then moves the tape
runTM :: TransitionFunc -> (InternalState, Tape) -> (InternalState, Tape)
runTM f (q,t) = (q', writeAndMove (s, m) t)
	where
		(q', s, m) = f (q, current t)

-- Writes the character to the tape, and then moves the tape
runTM f (q,t) = (q', writeAndMove (s, m) t)
	where
		(q', s, m) = f (q, current t)

-- Writes the character to the tape, and then moves the tape