skipSC :: ReadP () -- spaces and comments
skipSC = do
  do s <- look
     skip s
  where skip (c:s) | isSpace c         = do _ <- get; skip s
                   | c == commentStart = do _ <- get; skipComment s
        skip _                         = do return ()
        skipComment ('\n':s) = do _ <- get; skip s
        skipComment (_:s)    = do _ <- get; skipComment s
        skipComment []       = do return ()
skipSC :: ReadP ()
skipSC = do
  do s <- look
     skip s
  where skip (c:s) | isSpace c         = do _ <- get; skip s
                   | c == commentStart = do _ <- get; skipComment s
        skip _                         = do return ()
        skipComment ('\n':s) = do _ <- get; skip s
        skipComment (_:s)    = do _ <- get; skipComment s
        skipComment []       = do return ()
skipSC = do
  do s <- look
     skip s
  where skip (c:s) | isSpace c         = do _ <- get; skip s
                   | c == commentStart = do _ <- get; skipComment s
        skip _                         = do return ()
        skipComment ('\n':s) = do _ <- get; skip s
        skipComment (_:s)    = do _ <- get; skipComment s
        skipComment []       = do return ()