Здравствуйте, EvilChild, Вы писали:
V>>Ты бы сначала добавил.
EC>Так добавил, результат тот же, тип всё равно один:
EC>EC>*Main> :i MyNum
EC>data MyNum = One Int | Two String
EC>*Main> :t One 1
EC>One 1 :: MyNum
EC>*Main> :t Two "2"
EC>Two "2" :: MyNum
Извини, коллега, но у тебя полная каша в голове — ты же смотришь тип результата, а не тип контруктора. Вот в HUGS:
Main> :t Three
Three :: a -> MyNum a
Короче, добавь еще одну мелочь — это определи ф-ию без параметров mkOne:
data MyNum a = One | Two | Three a
mkOne = One
И найди потом отличия м/у mkOne и One. Как найдешь — скажешь.
EC>А то тип вроде один, а ты говоришь оприведении. К какому типу мы приводим, если он один?
Там я тебе ссылку дал в предыдущем сообщении. Не хочешь пройтись по ней?