<div dir="auto">Glad it was a good experience for you!</div><div dir="auto"><br></div><div dir="auto">I think, especially for library proposals (though aspirationally For language/ compiler changes), any design /api /spec change greatly benefits from having a working matching patch we can engage with! </div><div dir="auto"><br></div><div dir="auto">This helps for both impact assessments when preexisting code might have a name collision or it’s a change in existing semantics. OR just for refining and improving corner cases. Such as ed pointing out how we can define clamp generically in a manner that has humane behavior for float and double. </div><div dir="auto"><br></div><div dir="auto">For stuff that’s too complicated to have a simple patch, I strongly encourage folks to email libraries with a request for feedback on an idea to get feedback or confidence  in the direction before investing time into making. Such patches.  </div><div dir="auto"><br></div><div dir="auto">This is not to say this should be ironclad. But I think it’s a workflow that helps everyone be on the same page and helps make sure we can move quickly when there’s clarity. As happened with sandys patch!</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 11, 2020 at 2:22 PM Sandy Maguire <<a href="mailto:sandy@sandymaguire.me">sandy@sandymaguire.me</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="ltr">My pleasure! Thanks for not letting the experience be a bureaucratic nightmare!<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 11, 2020 at 11:19 AM Carter Schonwald <<a href="mailto:carter.schonwald@gmail.com" target="_blank">carter.schonwald@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="auto">Thanks for helping make this happen!</div><div dir="auto"><br></div><div dir="auto">Should be merged In later today! </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Aug 15, 2020 at 2:19 PM Sandy Maguire <<a href="mailto:sandy@sandymaguire.me" target="_blank">sandy@sandymaguire.me</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="ltr">Sounds good. For whatever reason the tupled arguments make me feel better about the `high<low` having undefined behavior. I'll make the change on the MR.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Aug 15, 2020 at 8:22 AM Emily Pillmore <<a href="mailto:emilypi@cohomolo.gy" target="_blank">emilypi@cohomolo.gy</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div><div><div style="display:none;border:0px none;width:0px;height:0px;overflow:hidden"><img src="https://r.superhuman.com/ICSZK4GwycS-cap7OEd0vU8TJhUOdBWcLN1xUC8eo0wO16GQ-qj8HfPXDc6cyhQgL_CGIfAJG_icT1aWRFjaBj3qOA_jSXwsHhGeGN1d7RJzRZIXs7aDH_VAB1EObpXS7VJE2yYmg86x91XEk6Z_XSv5Fw-khS2C9lbJ-GnK8jOZ_A_eyPQBkhY.gif" alt="" style="display: none; border: 0px none; width: 0px; height: 0px; overflow: hidden;" width="1" height="0"></div><div><div><div>+1, though, David has good points about unnecessary laziness. I'm fine with the name and the signature <br><br>```<br>clamp :: Ord a ⇒ (a,a) → a → a<br>```<br></div><div><br>(or some variation on the theme). </div></div><br><div></div></div><br><div><div class="gmail_quote">On Fri, Aug 14, 2020 at 5:38 PM, Sandy Maguire <span dir="ltr"><<a href="mailto:sandy@sandymaguire.me" target="_blank">sandy@sandymaguire.me</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div class="gmail_extra"><div class="gmail_quote" id="m_770798437470516525gmail-m_8256414409829497534m_3880299454507314878gmail-m_-2328735101368166898null"><div dir="ltr"><div><div>Hi all,<br><br></div>It seems to me that base is missing the very standard function `clamp :: Ord a => a -> a -> a -> a`:<br><br></div><div>```haskell</div><div>clamp :: Ord a => a -> a -> a -> a</div><div>clamp low high = min high .max low<br></div><div>```<br><br></div><div>I propose it be added to Data.Ord. It's useful, generic, and non-trivial to get <br><br>right (the "big" number goes with "min" -- causes me cognitive <br><br>dissonance every time.)</div><div><br></div><div>Thanks,<br></div><div>Sandy</div></div><br><br><br><br><p>_______________________________________________<br><br><br><br><br>Libraries mailing list<br><br><br><br><br><a rel="noopener noreferrer" href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br><br><br><br><br><a rel="noopener noreferrer" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a></p></div></div></blockquote></div></div><br></div></div></div></blockquote></div><br><br>_______________________________________________<br><br>Libraries mailing list<br><br><a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br><br><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br><br></blockquote></div></div><br><br></blockquote></div><br><br></blockquote></div></div>