Thanks all, Got it! type rather than data and <- rather than = (should have remembered this from monad stuff). Also, don't need the qualification.
Onward and upward. Thanks, Michael --- On Tue, 11/17/09, Daniel Fischer <daniel.is.fisc...@web.de> wrote: From: Daniel Fischer <daniel.is.fisc...@web.de> Subject: Re: [Haskell-cafe] Simple hash table creation To: haskell-cafe@haskell.org Date: Tuesday, November 17, 2009, 2:36 PM Am Dienstag 17 November 2009 20:16:50 schrieb michael rice: > I'm trying to create a hash table. Yeah, I know, don't use hash tables, but > I need to create something I'm familiar with, not something I've never > worked with before. What's wrong with this code? > > Michael > > ==================== > > import Prelude hiding (lookup) > import Data.HashTable > > data MyHashTable = HashTable String Int > > dummy:: String -> Int > dummy s = 7 > > ht = MyHashTable.new (==) dummy > > ==================== MyHashTable.new is parsed as a qualified function, 'new' from the module MyHashTable. But there's no module MyHashTable imported, hence there's no function 'new' from that module in scope. > > [mich...@localhost ~]$ ghci hash1 > GHCi, version 6.10.3: http://www.haskell.org/ghc/ :? for help > Loading package ghc-prim ... linking ... done. > Loading package integer ... linking ... done. > Loading package base ... linking ... done. > [1 of 1] Compiling Main ( hash1.hs, interpreted ) > > hash1.hs:9:5: Not in scope: `MyHashTable.new' > Failed, modules loaded: none. > Prelude> If we look at the type of Data.HashTable.new: new :: (key -> key -> Bool) -> (key -> GHC.Int.Int32) -> IO (HashTable key val) we see that new (==) dummy (or Data.HashTable.new (==) dummy, but we don't need to qualify new) has type IO (HashTable String val), so is an IO-action returning a hashtable. What you probably wanted was type MyHashTable = HashTable String Int -- not data MyHashTable ht <- new (==) dummy :: IO MyHashTable then ht is a hashtable of type MyHashTable. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe