Я пытаюсь реализовать экземпляр Data.Textual .Textual для алгебраического (сумма) типа данных.
У меня есть два типа данных: This
и That
. У каждого индивидуально есть свой экземпляр Textual
из Data.Textual. Я хотел бы создать новый алгебраический тип данных ThisOrThat, представляющий собой
data ThisOrThat = DThis This | DThat That
и связанный экземпляр Data.Textual.Textual, который различает первый символ;то есть что-то вроде
instance Textual ThisOrThat where
textual = if head t == '/'
then DThis <$> textual
else DThat <$> textual
Но я тут явно неправильно использовал textual
, потому что не вижу, с чего начать.
Я пытался что-то скомбинировать, используя fromString
чтобы попытаться разобрать значение, но это не сработало, и я чувствую себя довольно круто.
Спасибо,