Time to add the Traversable laws to the Documentation
Michael Sloan
mgsloan at gmail.com
Mon Oct 29 07:37:23 CET 2012
On Sat, Aug 25, 2012 at 9:15 AM, <roconnor at theorem.ca> wrote:
> On Sat, 25 Aug 2012, Ross Paterson wrote:
>
>> On Fri, Aug 24, 2012 at 02:53:30AM +0100, roconnor at theorem.ca wrote:
>>>
>>> On Fri, 24 Aug 2012, Ross Paterson wrote:
>>>
>>>> On Fri, Aug 24, 2012 at 12:08:04AM +0100, roconnor at theorem.ca wrote:
>>>>>
>>>>> With such wide spread agreement going back at least 6 years, I think it
>>>>> is
>>>>> time to add the following 2 laws to the documentation for
>>>>> Data.Traversable.Traversable.
>>>>>
>>>>> (1) traverse Identity == Identity
>>>>> (2) traverse (Compose . fmap g . f) == Compose . fmap (traverse g) .
>>>>> traverse f
>>>>
>>>>
>>>> Sounds good (except that Identity and Compose aren't defined in base).
>>>
>>>
>>> Er right. I'm not entirely sure how to address this issue.
>>
>>
>> There doesn't seem to be any alternative to re-iterating the newtype
>> definitions and the Functor and Applicative instances in the doc comment.
>
>
> The only alternative I can think of would be to move the Idenity and Compose
> functors from transformers into base. The consequences of this would be
> massive. I don't really suggest doing this at this time.
Would it really be so massive? Transformers could still re-export
Identity / Compose.
This'd definitely be a good change, either way!
More information about the Libraries
mailing list