punctuation :: Lexer (Pos Token)
punctuation = withPos $ choice [ const Ellipsis <$> string ".."
                               , const Dot <$> char '.'
                               , const Comma <$> char ','
                               , const At <$> char '@'
                               ]
punctuation :: Lexer (Pos Token)
punctuation = withPos $ choice [ const Ellipsis <$> string ".."
                               , const Dot <$> char '.'
                               , const Comma <$> char ','
                               , const At <$> char '@'
                               ]
punctuation = withPos $ choice [ const Ellipsis <$> string ".."
                               , const Dot <$> char '.'
                               , const Comma <$> char ','
                               , const At <$> char '@'
                               ]