<html><head></head><body><div><div><div style="display: none; border: 0px; width: 0px; height: 0px; overflow: hidden; visibility: hidden;"><img src="https://r.superhuman.com/8jgJNCJl9cwCkBGyKlC_LwRYO9v7Et9nbjCFQOyTYirqrvdoq76ghp0bJoJVRxMaFldOlqvdr2a2I7dW1lTUc0WMnCXqqQGNEHAXzwD4B1HmSmGHwWDyBT9UBR6dnEvF2lfd7NjFmxb5T6g5PaL-WUlApOBRgE3iHmyJoRdh7BHnnMkfAWIoKBQ.gif" alt=" " width="1" height="0" style="display: none; border: 0px; width: 0px; height: 0px; overflow: hidden; visibility: hidden;"/><!-- --></div><div><div>Hi All,<br/></div><div><br/></div><div>
I have a proposal for the `base` library: I would like to move `mapM` and `sequence` out of the class definition for `Traversable`, redefining them as toplevel aliases: <br/><br/>```haskell</div><div>mapM :: Traversable t ⇒ Monad m ⇒ <span class="s1">(a -> m b) -> t a -> m (t b)</span><br/></div><div><span class="s1">mapM = traverse</span><br/></div><div><br/></div><div>sequence :: <span class="s1"><span class="Apple-converted-space"> </span>Traversable t ⇒ Monad m=> t (m a) -> m (t a)</span><br/></div><div><span class="s1">sequence = sequenceA</span><br/></div><div>```<br/></div><div><br/></div><div>This slims `Traversable` by 50%. This would be a very small breaking change, which is completely tractable, but a great improvement for the ecosystem imo. Thoughts? What timeline should we shoot for with a change like this? <br/></div><div><br/></div><div>Cheers,<br/></div><div>Emily</div><div><br/></div></div><br/><div class="gmail_signature"></div></div></div></body></html>