Следующий код на Haskell не компилируется:
getMaxBound :: (Bounded a) => a -> a
getMaxBound _ = maxBound :: a
Я получаю следующую ошибку:
Could not deduce (Bounded a1) arising from a use of ‘maxBound’
from the context: Bounded a
bound by the type signature for:
getMaxBound :: Bounded a => a -> a
at rot13.hs:3:1-36
Почему я не могу получить maxBound ограниченного типа вHaskell?
В идеале я бы использовал эту функцию следующим образом:
getMaxBound 3
> 9223372036854775807
getMaxBound 'c'
> '\1114111'
Я чувствую, что каждый раз, когда у меня есть любой тип a
, имеющий экземпляр Bounded, я должен иметь возможностьполучить maxBound этого типа.
Чего мне не хватает?