p_number :: CharParser () Double
p_number = do s <- getInput
              case N.readSigned N.readFloat s of
                [(n, s')] -> n <$ setInput s'
                _         -> empty
p_number :: CharParser () Double
p_number = do s <- getInput
              case N.readSigned N.readFloat s of
                [(n, s')] -> n <$ setInput s'
                _         -> empty
p_number = do s <- getInput
              case N.readSigned N.readFloat s of
                [(n, s')] -> n <$ setInput s'
                _         -> empty