<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 05/01/2012 11:09, Brandon Allbery wrote:
    <blockquote
cite="mid:CAKFCL4UJABi9sA_Ygfz7TTJuG_aUDiQgDc9kOvTDQMibtgV_Og@mail.gmail.com"
      type="cite">
      <div dir="ltr">On Thu, Jan 5, 2012 at 05:57, Steve Horne <span
          dir="ltr">&lt;<a moz-do-not-send="true"
            href="mailto:sh006d3592@blueyonder.co.uk">sh006d3592@blueyonder.co.uk</a>&gt;</span>
        wrote:<br>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
             --  groupCut - Similar to groupBy, but where groupBy
            assumes an equivalence relation,<br>
             --  groupCut takes a function that indicates where to cut.
            The two parameters to this<br>
             --  function are always adjacent items from the list, and
            if the function returns True,<br>
             --  a cut is done between the two items.<br>
          </blockquote>
          <div><br>
          </div>
          <div>span/break?</div>
          <div><br>
          </div>
        </div>
        <br>
      </div>
    </blockquote>
    Using those, the test function won't always be passed two *adjacent*
    elements from the list. After all, they're based on takeWhile and
    dropWhile, which take unary functions, meaning an element has
    already been curried in (the starting element of the group).<br>
    <br>
    That's probably how the current groupBy is implemented - the
    approach that assumes an equivalence relation, giving unexpected
    results when the By function isn't an equivalence relation.<br>
    <br>
  </body>
</html>