Re: INTERNAL ERROR: findBtyvsInt strikes again!

"Sigbjorn Finne" <[email protected]>
Newsgroups gmane.comp.lang.haskell.hugs.bugs
Message-ID <1c7501c3c649$95a72fa0$1e32a8c0@sofxp>
Hi there,

thanks for a fine report. This has been fixed in the CVS sources,
but not in time for the Nov2003 release.

Notice that your code snippet depends on a feature of the
scoped type variable extension that's not supported by
Hugs (tyvars in the head of a class/instance decl being in scope);
see 7.4.10.2 of the GHC documentation:

  http://haskell.org/ghc/docs/latest/html/users_guide/type-extensions.html

--sigbjorn

----- Original Message ----- 
From: "Alexandru D. Salcianu" <[email protected]>
To: <[email protected]>
Sent: Thursday, November 20, 2003 16:40
Subject: INTERNAL ERROR: findBtyvsInt strikes again!


> 
> Hello!
> 
> I'm using Hugs (the November 2002 version) and I've encountered the
> "INTERNAL ERROR: findBtyvsInt" error.  I've read online that this
> error was known in the November 1999 version, but was fixed in the
> 2000 version.  I'm using the 2002 version and still get it.
> 
> I've encountered the error while working on a collection library (of
> course, I'm using the multi-parameter typeclass extension).
> 
> $ hugs -98
> __   __ __  __  ____   ___      _________________________________________
> ||   || ||  || ||  || ||__      Hugs 98: Based on the Haskell 98 standard
> ||___|| ||__|| ||__||  __||     Copyright (c) 1994-2002
> ||---||         ___||           World Wide Web: http://haskell.org/hugs
> ||   ||                         Report bugs to: [email protected]
> ||   || Version: November 2002  _________________________________________
> 
> Hugs mode: Restart with command line option +98 for Haskell 98 mode
> 
> Reading file "/usr/lib/hugs/lib/Prelude.hs":
>                    
> Hugs session for:
> /usr/lib/hugs/lib/Prelude.hs
> Type :? for help
> Prelude> :load Map.hs
> Reading file "Map.hs":
> Type checking      
> INTERNAL ERROR: findBtyvsInt
> Prelude> :version
> -- Hugs Version November 2002
> 
> Here is the content of Map.hs:
> 
> module Map where
> 
> -- objects of type ce represent sets of e's
> class (Eq e) => Set e ce | ce -> e where
>     equalSet  :: ce -> ce -> Bool
> 
> -- objects of type map represent maps from key to value
> class (Eq key) => FiniteMap key value map | map -> key value where
>     -- returns all keys from map, as a set of type keyset
>     mapKeys     :: (Set key keyset) => map -> keyset
> 
>     equalMap    :: map -> map -> Bool
>     {-- ERROR in this incomplete default implem. of equalMap --}
>     equalMap m1 m2 = 
>         let 
>             (keys1 :: [key]) = (mapKeys m1)
>             (keys2 :: [key]) = (mapKeys m2)
>         in
>             equalSet keys1 keys2
> 
> instance (Eq a) => Set a [a] where
>     equalSet = (==)
> 
> 
> (I've trimmed the code down to obtain a small bug report; the above
> code should be enough to trigger the error).  This code compiles fine
> with the GHC 6 (with the command line "ghc -c -fglasgow-exts Map.hs").
> 
> Best,
> 
> Alex
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.