compose :: TransitionFunc -> TransitionFunc -> Tape -> (Integer, [Alphabet])
compose f g t = (count, result)
	where
		count = m + n
		(n, result) = run f (fromList intermediate)
		(m, intermediate) = run g t

{- Definitions of TMs follow -}
compose :: TransitionFunc -> TransitionFunc -> Tape -> (Integer, [Alphabet])
compose f g t = (count, result)
	where
		count = m + n
		(n, result) = run f (fromList intermediate)
		(m, intermediate) = run g t

{- Definitions of TMs follow -}
compose f g t = (count, result)
	where
		count = m + n
		(n, result) = run f (fromList intermediate)
		(m, intermediate) = run g t

{- Definitions of TMs follow -}