showProgram :: Program -> String
showProgram (GProg p) = ";; pendulum pal file\n" ++ intercalate "\n" (map showLine p)
    where showLine (Nothing, i) = spaces 25 ++ show i
          showLine (Just l, i) = l ++ ":" ++ spaces (24 - length l) ++ show i
          spaces :: (Int -> String)
          spaces n = [1..n] >> " "
showProgram :: Program -> String
showProgram (GProg p) = ";; pendulum pal file\n" ++ intercalate "\n" (map showLine p)
    where showLine (Nothing, i) = spaces 25 ++ show i
          showLine (Just l, i) = l ++ ":" ++ spaces (24 - length l) ++ show i
          spaces :: (Int -> String)
          spaces n = [1..n] >> " "
showProgram (GProg p) = ";; pendulum pal file\n" ++ intercalate "\n" (map showLine p)
    where showLine (Nothing, i) = spaces 25 ++ show i
          showLine (Just l, i) = l ++ ":" ++ spaces (24 - length l) ++ show i
          spaces :: (Int -> String)
          spaces n = [1..n] >> " "