'impossible' happened in reportNoInstance?
This program, though it shouldn't typecheck, shouldn't make the compiler panic like this either:
ghc-6.5: panic! (the 'impossible' happened)
(GHC version 6.5 for i386-unknown-linux):
reportNoInstance
$dPrintfType{v alY} :: {<pred>base:Text.Printf.PrintfType{tc r5j} (a{tv alO} [sk]
-> b{tv alP} [sk])}
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Presumably the problem is in the phex part...
{-# OPTIONS_GHC -fglasgow-exts #-}
#!haskell
-- Actually, this exercises prelude/PrelRules, but this is the closest
-- place I could find to put it...
import GHC.Exts
import Numeric
import Text.Printf
main = do phex (I# (uncheckedIShiftL# (negateInt# 5#) 2#))
phex (I# (uncheckedIShiftRA# (negateInt# 5#) 1#))
phex (I# (uncheckedIShiftRL# (negateInt# 5#) 1#))
phex (W# (uncheckedShiftL# (int2Word# (negateInt# 5#)) 2#))
phex (W# (uncheckedShiftRL# (int2Word# (negateInt# 5#)) 1#))
-- this doesn't work on negative numbers :-(
-- phex x = putStrLn ("0x" ++ showHex x "")
phex :: a -> b
phex x = printf "0x%x" x
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.7 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown |
| Architecture | Unknown |