labeled field update kind-error in ghc 6.4.20050215

Simon Peyton-Jones simonpj at microsoft.com
Sun Feb 27 22:01:52 EST 2005


Excellent bug, thank you.  This one has been lurkng for a long time
(it's wrong in 6.2 too) but some recent changes made it surface.  Easily
fixed.  

Simon

| -----Original Message-----
| From: glasgow-haskell-bugs-bounces at haskell.org
[mailto:glasgow-haskell-bugs-
| bounces at haskell.org] On Behalf Of Remi Turk
| Sent: 26 February 2005 15:48
| To: glasgow-haskell-bugs at haskell.org
| 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.
| _______________________________________________
| Glasgow-haskell-bugs mailing list
| Glasgow-haskell-bugs at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



More information about the Glasgow-haskell-bugs mailing list