logo       

labeled field update kind-error in ghc 6.4.20050215: msg#00079

lang.haskell.glasgow.bugs

Subject: labeled field update kind-error in ghc 6.4.20050215

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.


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise