er a -> Lexer (Pos a)
withPos lexer = (,) <$> getPosition <*> try lexer

push :: Int 
withPos :: Lexer a -> Lexer (Pos a)
withPos lexer = (,) <$> getPosition <*> try lexer
withPos lexer = (,) <$> getPosition <*> try lexer