parseLine :: Parser Integer
parseLine = do
    spaces
    _ <- pWhatIs
    n0 <- pNum
    opNs <- many pOpN
    return $ compose opNs n0
  where
    compose = foldr (flip (.)) id

-- An operation followed by a number (an expression may have 0 or more occurences)
-- returns a function for the represented operation which can be composed in parseLine
parseLine :: Parser Integer
parseLine = do
    spaces
    _ <- pWhatIs
    n0 <- pNum
    opNs <- many pOpN
    return $ compose opNs n0
  where
    compose = foldr (flip (.)) id

-- An operation followed by a number (an expression may have 0 or more occurences)
-- returns a function for the represented operation which can be composed in parseLine
parseLine = do
    spaces
    _ <- pWhatIs
    n0 <- pNum
    opNs <- many pOpN
    return $ compose opNs n0
  where
    compose = foldr (flip (.)) id

-- An operation followed by a number (an expression may have 0 or more occurences)
-- returns a function for the represented operation which can be composed in parseLine