haddock, instances and defining modules

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Thu Oct 18 11:10:22 CEST 2012

On 18 October 2012 19:52, Daniel Gorín <dgorin at dc.uba.ar> wrote:
> Hi
> The haddock page for Data.Either lists an instance Functor (Either a). However, this instance doesn't get in scope when importing Data.Either. E.g., the following program fails to compile:
>> import Data.Either
>> main = print $ fmap not $ Right "hello"

Are you sure of this code?

GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> fmap not $ Right "hello"

    Couldn't match expected type `Bool' with actual type `[Char]'
    In the first argument of `Right', namely `"hello"'
    In the second argument of `($)', namely `Right "hello"'
    In the expression: fmap not $ Right "hello"

> AFAIK, one needs to import Control.Monad.Instances instead to get such an instance; but there is nothing in the haddock page of Data.Either that suggests it. This can be quite frustrating for beginners!

I just started up ghci without importing anything (except the Prelude)
and didn't have a problem; this is GHC 7.4.2.

> It would be good if the docs could be improved here, but I'm not sure what to suggest (maybe haddock should be generating something else in these cases?)… Any thoughts?
> Thanks,
> Daniel
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries

Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com

More information about the Libraries mailing list