Skip to content

GHCi: No instance for (Show (IO ()))

From Wolfgang Thaller:

This behaviour (from today's stable branch) is slightly
confusing:

> Prelude> print id
>
> Top level:
>     No instance for (Show (IO ()))
>       arising from use of `print' at Top level
>     Probable fix: add an instance declaration for
(Show (IO ()))
>     In a 'do' expression: print it
>
> <interactive>:1:0:
>     No instance for (Show (a -> a))
>       arising from use of `print' at <interactive>:1:0-4
>     Probable fix: add an instance declaration for
(Show (a -> a))
>     In the definition of `it': it = print id

The second message makes sense, but the first one
doesn't. Also, what's 
the difference between "Top level" and "<interactive>:1:0"?

Trac metadata
Trac field Value
Version 6.4
Type Bug
TypeOfFailure OtherFailure
Priority low
Resolution ResolvedFixed
Component GHCi
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information