rawTape :: Show a => Int -> Tape a -> String
drawTape n (Tape r v f) = printf "... %s  [%s]  %s ..." (drawList $ reverse $ take n r) (drawCell v) (drawList $ take n f)
	where
		drawList = intercalate "  " . map drawCell
		drawCell = show

drawTape :: Show a => Int -> Tape a -> String
drawTape n (Tape r v f) = printf "... %s  [%s]  %s ..." (drawList $ reverse $ take n r) (drawCell v) (drawList $ take n f)
	where
		drawList = intercalate "  " . map drawCell
		drawCell = show
drawTape n (Tape r v f) = printf "... %s  [%s]  %s ..." (drawList $ reverse $ take n r) (drawCell v) (drawList $ take n f)
	where
		drawList = intercalate "  " . map drawCell
		drawCell = show