Реализация прочитанного TypeClass, где разборные строки включают в себя «$»

Я играл с Haskell в течение около месяца. Для моего первого «реального» Haskell Project я пишу частей речевой теггера. В рамках этого проекта у меня есть тип под названием TAG , который представляет собой тег деталей, реализованную следующим образом:

data Tag = CC | CD | DT | EX | FW | IN | JJ | JJR | JJS ...

Вышеупомянутый - длинный список стандартизированных деталей-речевых тегов, которые я намеренно усечена. Однако в этом стандартном наборе тегов есть два, которые заканчиваются в знак доллара ($): PRP $ и NNP $. Поскольку у меня не может быть типа конструкторов с $ в их имени, я решил переименовать их PRP и NNPS.

Это все хорошо и хорошо, но я хотел бы читать теги от струн в лексиконе и преобразовывать их в мою тему . Попытка этого не удается:

instance Read Tag where
    readsPrec _ input =
        (\inp -> [((NNPS), rest) | ("NNP$", rest) <- lex inp]) input

Haskell Lexer выступает на $. Любые идеи, как это потянуть?

Реализация шоу было довольно простым. Было бы здорово, если бы была какая-то подобная стратегия для чтения.

instance Show Tag where
    showsPrec _ NNPS = showString "NNP$"
    showsPrec _ PRPS = showString "PRP$"
    showsPrec _ tag  = shows tag
6
задан svoisen 15 September 2011 в 23:26
поделиться