Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: <roconnor <at> theorem.ca>
Subject: Re: Clarify relationship between Functor and Applicative
Newsgroups: gmane.comp.lang.haskell.libraries
Date: Friday 25th February 2011 23:07:09 UTC (over 6 years ago)
On Fri, 25 Feb 2011, Ross Paterson wrote:

> On Fri, Feb 25, 2011 at 05:34:18PM -0500, [email protected] wrote:
>> In the applicative documentation, it says for an Applicative functor f:
>>
>> The Functor instance should satisfy
>>
>>       fmap f x = pure f <*> x
>>
>> I think the documentation should be clarified that this does not
>> need to be checked because it is a consequence of the other
>> applicative laws.
>>
>> See <http://hpaste.org/44315/applicative_implies_functor>.
>
> Do you have a proof that Functor instances are uniquely determined?

Suppose we have a functor f and another function

foo :: (a -> b) -> f a -> f b

Then as a consequence of the free theorem for foo,
for any f :: a -> b and any g :: b -> c.

foo (g . f) = fmap g . foo f

In particular, if foo id = id, then

foo g = foo (g . id) = fmap g . foo id = fmap g . id = fmap g

-- 
Russell O'Connor                                      <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''
 
CD: 2ms