:: Lexer (Pos Token)
label = (<?> "label") $ withPos $ do
    char '`'
    Label <$> ((Left . fromIntegral <$> numLabel) <|> (Right <$> nameLabel))
    where
    nameLabel = bareName
    numLabel = stringToInteger 10 <$> many2 (oneOf "123456789") (oneOf "0123456789")

bare
label :: Lexer (Pos Token)
label = (<?> "label") $ withPos $ do
    char '`'
    Label <$> ((Left . fromIntegral <$> numLabel) <|> (Right <$> nameLabel))
    where
    nameLabel = bareName
    numLabel = stringToInteger 10 <$> many2 (oneOf "123456789") (oneOf "0123456789")
label = (<?> "label") $ withPos $ do
    char '`'
    Label <$> ((Left . fromIntegral <$> numLabel) <|> (Right <$> nameLabel))
    where
    nameLabel = bareName
    numLabel = stringToInteger 10 <$> many2 (oneOf "123456789") (oneOf "0123456789")