
On 18 October 2012 19:52, Daniel Gorín
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 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" <interactive>:2:18: 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@haskell.org http://www.haskell.org/mailman/listinfo/libraries
-- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com http://IvanMiljenovic.wordpress.com