В упражнении из Haskell Programming from First Principles говорится, что нужно объявить экземпляр TooMany
для типа (Num a, TooMany a) => (a, a)
, сначала создав для него newtype
. Моя проблема заключается в добавлении ограничения типа к Baz
. Это вообще возможно? Я не могу найти другие примеры в Интернете.
class TooMany a where
tooMany :: a -> Bool
newtype Baz = Baz (a, a) deriving (Eq, Show)
instance TooMany Baz where
tooMany (Baz (n, _)) = n > 42
Ord a
, но мне это нравится. Я думаю, что автор имел в виду включить это в упражнение, иначе первый элемент не может быть использован много раз. - person Brady Dean   schedule 12.03.2019tooMany (n+1) || tooMany m
. - person Will Ness   schedule 13.03.2019