<div dir="ltr"><div><div>I have found from time to time, when using Data.Sequence, that a list-like function that I expect to be there is in fact not present and its absence is not mentioned; it always turns out to be implicit in one of Sequence's instances.  Examples: map, fold, (++).  This is in principle no different, except that MonadZip is apparently relatively obscure and, possibly, not the "right" class according to Tony Morris' link.<br><br></div>I can't tell if this is an argument for or against the proposal, but it does seem to reflect a choice to populate the Sequence API via instantiating standard classes rather than writing standalone functions (with possibly conflicting names, not that this is a new thing with these container libraries).  Both map and fold have Seq-specific indexed variants that are <i>not</i> part of those classes, and if neatness is what the module authors were going for, then this kind of variation is the only thing that should actually appear in Data.Sequence itself.  It does impact the usefulness of the documentation, though.  I think that's the real issue here.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 11, 2018 at 10:47 PM, Tikhon Jelvis <span dir="ltr"><<a href="mailto:tikhon@jelv.is" target="_blank">tikhon@jelv.is</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I did not know about MonadZip and wouldn't have thought to look for it.<div><br></div><div>On the other hand, unzip and unzipWith are immediately intuitive.</div><div><br></div><div>I think they'd be a solid addition.</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Thu, Jan 11, 2018 at 8:54 PM, David Feuer <span dir="ltr"><<a href="mailto:david.feuer@gmail.com" target="_blank">david.feuer@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div dir="auto">We don't strictly *need* to add either of these functions. Users can use munzip from the MonadZip instance, and we can add a rewrite rule to turn<div dir="auto"><br></div><div dir="auto">    munzip (fmap f xs)</div><div dir="auto"><br></div><div dir="auto">into</div><div dir="auto"><br></div><div dir="auto">    Data.Sequence.Internal.unzipWi<wbr>th f xs</div><div dir="auto"><br></div><div dir="auto">On the other hand, MonadZip isn't a terribly well-known class, and unzipWith has always struck me as an obvious analogue of zipWith.</div></div><span><div class="gmail_extra"><br><div class="gmail_quote">On Jan 11, 2018 10:32 PM, "Ivan Lazar Miljenovic" <<a href="mailto:ivan.miljenovic@gmail.com" target="_blank">ivan.miljenovic@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 12 January 2018 at 13:28, David Feuer <<a href="mailto:david.feuer@gmail.com" target="_blank">david.feuer@gmail.com</a>> wrote:<br>
> Paolo G. Giarrusso (Blaisorblade) would like to add an unzip function to<br>
> Data.Sequence. I agree. I propose adding<br>
><br>
>   unzip :: Seq (a,b) -> (Seq a, Seq b)<br>
><br>
>   unzipWith :: (x -> (a, b)) -> Seq x -> (Seq a, Seq b)<br>
><br>
> Does anyone object?<br>
<br>
I see no problem with this.  Though I think it's worth pointing out<br>
that Data.List doesn't have unzipWith (though unzipWith f = unzip .<br>
map f).<br>
<br>
--<br>
Ivan Lazar Miljenovic<br>
<a href="mailto:Ivan.Miljenovic@gmail.com" target="_blank">Ivan.Miljenovic@gmail.com</a><br>
<a href="http://IvanMiljenovic.wordpress.com" rel="noreferrer" target="_blank">http://IvanMiljenovic.wordpres<wbr>s.com</a><br>
</blockquote></div></div>
</span></div>
<br></div></div><span class="">______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/libraries</a><br>
<br></span></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br></div>