--Test.hsclass Num' a where
fromInt :: Int -> a
n0 :: Num' a => a
n0 = fromInt 0
--ghci:
*Test> :t 0
0 :: Num a => a
*Test> :t n0
n0 :: Num' a => a
*Test> const "wtf" 0
"wtf"
*Test> const "wtf" n0
<interactive>:17:13:
Ambiguous type variable `b0' in the constraint:
(Num' b0) arising from a use of `n0'
Probable fix: add a type signature that fixes these type variable(s)
In the second argument of `const', namely `n0'
In the expression: const "wtf" n0
In an equation for `it': it = const "wtf" n0
*Test>
Почему он на ноль не ругается, а на мой класс ругается, у него ведь для нуля тоже Ambiguity — типы выглядят одинаково?
Он что для класса Num имеет какой-то дефолтный инстанс?
Помогите, пожалуйста.
Большое спасибо
Re: [Haskell] Type classes "Ambiguous type variable"
Здравствуйте, Дмитрий, Вы писали:
Д>Почему он на ноль не ругается, а на мой класс ругается, у него ведь для нуля тоже Ambiguity — типы выглядят одинаково? Д>Он что для класса Num имеет какой-то дефолтный инстанс?
Здравствуйте, Дмитрий, Вы писали:
Д>Здравствуйте, Курилка, Вы писали:
К>>См. раздел 4.3.4 The Haskell 98 Report
Д>Простите, что-то не получается, а можно пример кода? Д>Помогите пожалуйста.
А можно пояснить, что именно хочется получить-то?
Почему приведённое не работает — см. пункты после "is defaultable if".
Re[4]: [Haskell] Type classes "Ambiguous type variable"
Здравствуйте, Курилка, Вы писали:
К>А можно пояснить, что именно хочется получить-то? К>Почему приведённое не работает — см. пункты после "is defaultable if".
Сутра проснулся и все понял: я хотел для своего типа указать дефолтный инстанс, но как я понял, default указывает только для Num (я еще и подумал кака запись default (Int) узнает какой я класс хочу).
Я ведь прав? дефолтный инстанс можно только для Num?
Re[5]: [Haskell] Type classes "Ambiguous type variable"
Здравствуйте, Дмитрий, Вы писали:
Д>Сутра проснулся и все понял: я хотел для своего типа указать дефолтный инстанс, но как я понял, default указывает только для Num (я еще и подумал кака запись default (Int) узнает какой я класс хочу).
Д>Я ведь прав? дефолтный инстанс можно только для Num?