
On Sat, 25 Aug 2012, Ross Paterson wrote:
On Fri, Aug 24, 2012 at 02:53:30AM +0100, roconnor@theorem.ca wrote:
On Fri, 24 Aug 2012, Ross Paterson wrote:
On Fri, Aug 24, 2012 at 12:08:04AM +0100, roconnor@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.
If you want to follow the terminology from "Essence of the Iterator Pattern" of using "idiomatic" for adjectives, you would call t an "Idiomatic transformation".
Noooo, please don't do that. The transformations should match the functors, and the adjective "applicative" at least has a grain of relevant meaning.
Okay. -- 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.''