[Haskell] Multiple constructors
От: Dmitry777  
Дата: 12.09.08 17:16
Оценка:
Коллеги, в процессе освоения haskell написал вот такой образец кода:


data Object a =  StillObject a | AgainObject Int

getVal :: Object a -> a

getVal (StillObject a) = a
getVal (AgainObject v) = v


ghc ругается:
   Couldn't match expected type `a' against inferred type `Int'
      `a' is a rigid type variable bound by
          the type signature for `getVal' at ddd.hs:3:17
    In the expression: v
    In the definition of `getVal': getVal (AgainObject v) = v
Failed, modules loaded: none.


А вообще есть какой-нибудь легальный способ написать такую функцию getVal для обоих конструкторов?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.