Looks like the fmap definition for the Either functor matches what's given in Learn You A Haskell ...
instance Functor (Either a) where fmap f (Right x) = Right (f x) fmap f (Left x) = Left x but Hoogle couldn't find Control.Monad.Instances How else can I look at the code? Michael [mich...@localhost ~]$ ghci GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading package ffi-1.0 ... linking ... done. Prelude> :m + Control.Monad.Instances Prelude Control.Monad.Instances> :m + Data.Either Prelude Control.Monad.Instances Data.Either> let l = Left 5 Prelude Control.Monad.Instances Data.Either> fmap (*2) l Left 5 Prelude Control.Monad.Instances Data.Either> let r = Right "five" Prelude Control.Monad.Instances Data.Either> fmap length r Right 4 --- On Sat, 8/28/10, Brandon S Allbery KF8NH <allb...@ece.cmu.edu> wrote: From: Brandon S Allbery KF8NH <allb...@ece.cmu.edu> Subject: Re: [Haskell-cafe] On to applicative To: haskell-cafe@haskell.org Date: Saturday, August 28, 2010, 9:06 PM -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 8/28/10 20:43 , michael rice wrote: > I'm looking at a discussion of Either (as functor) here: > > http://learnyouahaskell.com/making-our-own-types-and-typeclasses#the-functor-typeclass > > instance Functor (Either a) where > fmap f (Right x) = Right (f x) > fmap f (Left x) = Left x > > And this line in Data.Either > > Functor (Either a) > > but no fmap defined here. > > How come? Historical accident, to wit: Haskell 98 minimally defined Either in the Prelude, so in practice we get the basic definitions (Either itself and its Functor and Monad instances) from the Prelude and other utility functions from Data.Either. - -- brandon s. allbery [linux,solaris,freebsd,perl] allb...@kf8nh.com system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkx5sq4ACgkQIn7hlCsL25WA+QCeKUOuNN4kUpci9fH6BcFZ5WqG bX8AoIBImpWLoxVz7kcwVIuHycYR/v5G =EaIs -----END PGP SIGNATURE----- _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe