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

Reply via email to