//lexer functions
identT = alpha >>= \a -> many (char '_' <|> alphaNum) >>= \as -> return $ IdentToken [a:as]
numberT = optional (char '-') >>= \sign -> (some digit) >>= \n -> case sign of
Nothing -> return $ NumberToken $ 5 //fromString n
_ -> return $ NumberToken $ -5 //(fromString n) * -1
//lexer functions
identT = alpha >>= \a -> many (char '_' <|> alphaNum) >>= \as -> return $ IdentToken [a:as]
numberT = optional (char '-') >>= \sign -> (some digit) >>= \n -> case sign of
Nothing -> return $ NumberToken $ 5 //fromString n
_ -> return $ NumberToken $ -5 //(fromString n) * -1