pOpN :: Parser (Integer -> Integer)
pOpN  = do
   spaces
   op <- try (string "multiplied by")
     <|> try (string "times")
     <|> try (string "divided by")
     <|> try (string "plus")
     <|> string "minus"
   spaces
   n <- pNum
   case op of
      "multiplied by" -> return (*n)
      "times"         -> return (*n)
      "divided by"    -> return (`div`n)
      "plus"          -> return (+n)
      "minus"         -> return (\x -> x-n)

-- Just a number -- there should always be at least 1 number
pOpN :: Parser (Integer -> Integer)
pOpN  = do
   spaces
   op <- try (string "multiplied by")
     <|> try (string "times")
     <|> try (string "divided by")
     <|> try (string "plus")
     <|> string "minus"
   spaces
   n <- pNum
   case op of
      "multiplied by" -> return (*n)
      "times"         -> return (*n)
      "divided by"    -> return (`div`n)
      "plus"          -> return (+n)
      "minus"         -> return (\x -> x-n)

-- Just a number -- there should always be at least 1 number
pOpN  = do
   spaces
   op <- try (string "multiplied by")
     <|> try (string "times")
     <|> try (string "divided by")
     <|> try (string "plus")
     <|> string "minus"
   spaces
   n <- pNum
   case op of
      "multiplied by" -> return (*n)
      "times"         -> return (*n)
      "divided by"    -> return (`div`n)
      "plus"          -> return (+n)
      "minus"         -> return (\x -> x-n)

-- Just a number -- there should always be at least 1 number