labeled field update kind-error in ghc 6.4.20050215
Remi Turk
rturk at science.uva.nl
Sat Feb 26 10:47:48 EST 2005
Hello again,
while trying to get HashTable to work both in IO and in ST I
hit the following probable bug in 6.4.20050215.
6.2.1 does accept it, and the #ifdeffed-out version works in
both. When the typesignature is removed 6.4 does accept it.
Cheers,
Remi
{-# OPTIONS -cpp -fglasgow-exts #-}
module Foo where
data HT (ref :: * -> *)
= HT { kcount :: Int }
#if 1
set_kcount :: Int -> HT ref -> HT ref
#endif
#if 1
set_kcount kc ht = ht{kcount=kc}
#else
set_kcount kcount (HT _) = (HT kcount)
#endif
foo.hs:12:19:
Couldn't match kind `*' against `* -> *'
When matching the kinds of `t :: *' and `ref :: * -> *'
Expected type: HT t
Inferred type: HT ref
In the record update: ht {kcount = kc}
Failed, modules loaded: none.
--
Nobody can be exactly like me. Even I have trouble doing it.
More information about the Glasgow-haskell-bugs
mailing list