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