<div>Excuse me for the repost.</div>
<div>I&#39;m sending it again because I have not find a reply from <a href="mailto:beginners-bounces@haskell.org">beginners-bounces@haskell.org</a> and I want to exclude (possible) problems related to the mailing list.</div>

<div>I would be very much appritiated for any help or advice.</div>
<div> </div>
<div>Alexander.<br><br></div>
<div class="gmail_quote">2010/9/16 Alexander.Vladislav.Popov <span dir="ltr">&lt;<a href="mailto:alexander.vladislav.popov@gmail.com">alexander.vladislav.popov@gmail.com</a>&gt;</span><br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">Hi.<br><br>Help me to solve the problem I faced with.<br>I&#39;m trying to delete items from the AVL tree &#39;itree&#39; that are between 0 and 2.<br>
But as you can see the result tree contains value of 1.<br><br><br>&gt; import Data.Tree.AVL<br>&gt; import Data.COrdering<br><br>&gt; mydelete&#39; :: (Ord a) =&gt; a -&gt; a -&gt; AVL a -&gt; AVL a<br>&gt; mydelete&#39; p1 p2 tree = let res = delete cmp tree in<br>
&gt;                        case contains res cmp of<br>&gt;                          True      -&gt; mydelete&#39; p1 p2 res<br>&gt;                          otherwise -&gt; res<br>&gt;                        where<br>&gt;                          cmp  = between p1 p2<br>
<br>&gt; between a b x = if x &lt; a<br>&gt;                 then LT<br>&gt;                 else if x &gt; b<br>&gt;                      then GT<br>&gt;                      else EQ<br><br><br>&gt; itree = push ((sndByCC compare) 3) 3 (pair 1 2)<br>
&gt; idel  = mydelete&#39; 0 2<br><br>*Main&gt; idel itree<br>P (Z E 1 E) 3 E<br>*Main&gt; idel $ idel itree<br>P (Z E 1 E) 3 E<br>*Main&gt;<br><br>Explain me why I got following results and where I made error.<br><br>*Main&gt; (mydelete&#39; 0 3) itree<br>
E<br>*Main&gt; (mydelete&#39; 0 2) itree<br>P (Z E 1 E) 3 E<br>*Main&gt; (mydelete&#39; 1 2) itree<br>P (Z E 1 E) 3 E<br>*Main&gt; (mydelete&#39; 1 1) itree<br>Z (Z E 1 E) 2 (Z E 3 E)<br>*Main&gt; (mydelete&#39; 2 1) itree<br>
Z (Z E 1 E) 2 (Z E 3 E)<br>*Main&gt; (mydelete&#39; 0 1) itree<br>Z (Z E 1 E) 2 (Z E 3 E)<br>*Main&gt; (mydelete&#39; 0 2) itree<br>P (Z E 1 E) 3 E<br>*Main&gt; (mydelete&#39; (-1) 2) itree<br>P (Z E 1 E) 3 E<br><font color="#888888"><br>
Alexander<br></font></blockquote></div><br>