Вы определили:
Direction = North | South | East | West
deriving (Eq, Show)
В приведенном выше нет instance Arbitrary Direction
.В конце концов, как это могло быть?Вы только что определили направление, и единственными экземплярами во всем мире являются Eq
и Show
.
Попробуйте:
import Test.QuickCheck
data Direction = North | South | East | West
deriving (Eq,Show)
instance Arbitrary Direction where
arbitrary = elements [North,South,East,West]
Функция elements
происходит от Test.QuickCheck
простокак Arbitrary
.
В качестве мета-примечания: Если ваш преподаватель не сразу увидел проблему здесь, то произошла ошибка или вы должны планировать дополнить свое обучение на Haskell, например, используя онлайн-ресурсы, такие как вики-книги,печатные материалы, такие как «Ремесло функционального программирования», или множество разговоров в таких местах, как freenode.