Hi Luke,<br><br>Thanks for the feedback. I had some follow up comments.<br><br><div class="gmail_quote">On Thu, Dec 31, 2009 at 5:50 AM, Luke Palmer <span dir="ltr">&lt;<a href="mailto:lrpalmer@gmail.com">lrpalmer@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Code looks okay.  It suffers from the same persistence/amortization<br>
problem as the classical functional queue; if you happen to shift from<br>
one of the edge cases (eg. prev when the left is empty), you will get<br>
degenerate time complexity, reversing that right list over and over.<br>
See discussion at &quot;Simple and efficient purely functional queues and<br>
deques, by Chris Okasaki&quot;; probably can adapt that solution to yours.<br>
More of an academic interest, I doubt anyone will care about those<br>
cases.<br></blockquote><div> </div><div>Yes. I agree and did see it. I&#39;m reading the paper and may implement some of the stuff he talks about. <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br>
Ring is a comonad, so you can make it an instance of one if you want<br>
to have some fun :-P<br></blockquote><div> </div><div>I plan on adding as many instances as I know and make sense to me. :) <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br>
It seems weird that you would put the focus in the middle in fromList.<br>
 Overly strict.  Why not just put it at the first element?  (Also<br>
easier to reason about)<br></blockquote><div> </div><div>It actually uses the first element as the focus, not the middle. <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br>
I would consider considering a ring where *both* left and right were<br>
infinite to be valid, but not when only one of them is infinite (when<br>
they both are infinite, you will never get to reverse).<br></blockquote><div><br>This would be neat, perhaps someday. I don&#39;t think this works well with my current API. :( <br></div></div><br>Thanks again. :)<br><br>
/jve<br>