<br><font size=2 face="sans-serif">Hello,</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; Does the following code work
for you?</font>
<br>
<br><font size=2 face="sans-serif">-Jeff</font>
<br>
<br><font size=2 face="sans-serif">---------------------------</font>
<br>
<br><font size=2 face="sans-serif">{-# OPTIONS_GHC -fglasgow-exts -fallow-undecidable-instances
-fallow-overlapping-instances #-}</font>
<br><font size=2 face="sans-serif">data Nil = Nil</font>
<br><font size=2 face="sans-serif">data x ::: xs = x ::: xs</font>
<br><font size=2 face="sans-serif">infixr 5 :::</font>
<br>
<br><font size=2 face="sans-serif">data HTrue = HTrue deriving Show</font>
<br><font size=2 face="sans-serif">data HFalse = HFalse deriving Show</font>
<br>
<br><font size=2 face="sans-serif">class Member x xs b | x xs -&gt; b where
member :: x -&gt; xs -&gt; b</font>
<br><font size=2 face="sans-serif">instance Member x Nil HFalse where member
_ _ = HFalse</font>
<br><font size=2 face="sans-serif">instance Member x xs b =&gt; Member
x (x ::: xs) HTrue where member _ _ = HTrue</font>
<br><font size=2 face="sans-serif">instance Member x xs b =&gt; Member
x (y ::: xs) b where member x (_ ::: xs) = member x xs</font>
<br>
<br><tt><font size=2>{-</font></tt>
<br><tt><font size=2>member 'a' (() ::: &quot;a&quot; ::: '1' ::: Nil)
&nbsp;==&gt; &nbsp;HTrue</font></tt>
<br><tt><font size=2>member 'a' (() ::: &quot;a&quot; ::: Nil) &nbsp;==&gt;
&nbsp;HFalse</font></tt>
<br><tt><font size=2>-}</font></tt>
<br>
<span style="font-family:'Arial',sans-serif; font-size:8pt; color:#000000">---<br>
<br>
This e-mail may contain confidential and/or privileged information. If you <br>
are not the intended recipient (or have received this e-mail in error) <br>
please notify the sender immediately and destroy this e-mail. Any <br>
unauthorized copying, disclosure or distribution of the material in this <br>
e-mail is strictly forbidden.</span>