Скажем, у меня есть этот тип перечисления:
data TVShow = BobsBurgers | MrRobot | BatmanTAS
и я хочу определить экземпляры для Read
и Show
со следующим поведением:
show BobsBurgers = "Bob's Burgers"
show MrRobot = "Mr. Robot"
show BatmanTAS = "Batman: The Animated Series"
read "Bob's Burgers" = BobsBurgers
read "Mr. Robot" = MrRobot
read "Batman: The Animated Series" = BatmanTAS
В этих определениях много повторений, поэтому я хотел бы связать каждый конструктор типа со строкой, а затем автоматически сгенерировать Show
и Read
из этих ассоциаций. Возможно ли такое?
Show
иRead
таким образом. Имейте отдельные классы красивой печати/анализа, если вам нужен класс; но оставьтеShow
иRead
для генерации (и анализа) действительного кода Haskell, представляющего рассматриваемое значение. - person Daniel Wagner   schedule 13.06.2015