Inconsistent import of instances in GHCi
Issuing import M
in GHCi does not bring the same instances into scope as issuing :m + M
and loading a file that contains import M
do.
For example, the module Control.Applicative
imports Control.Monad.Instances
which defines a Functor
instance for ((->) r)
. The following GHCi session demonstrates that this instance is not in scope after issuing an import
command in GHCi but it is in scope after issuing an :m +
command. It is also in scope after loading a file that imports Control.Applicative
.
Prelude> fmap id id ()
<interactive>:1:1:
No instance for (Functor ((->) ()))
arising from a use of `fmap'
Possible fix: add an instance declaration for (Functor ((->) ()))
In the expression: fmap id id ()
In an equation for `it': it = fmap id id ()
Prelude> import Control.Applicative
Prelude Control.Applicative> fmap id id ()
<interactive>:1:1:
No instance for (Functor ((->) ()))
arising from a use of `fmap'
Possible fix: add an instance declaration for (Functor ((->) ()))
In the expression: fmap id id ()
In an equation for `it': it = fmap id id ()
Prelude Control.Applicative> :m + Control.Applicative
Prelude Control.Applicative> fmap id id ()
()
I expected that issuing an import
command in GHCi has the same effect as issuing an :m +
command or loading a file with an import
statement.
Trac metadata
Trac field | Value |
---|---|
Version | 7.0.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | GHCi |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |