
Hello, Does the following code work for you? -Jeff --------------------------- {-# OPTIONS_GHC -fglasgow-exts -fallow-undecidable-instances -fallow-overlapping-instances #-} data Nil = Nil data x ::: xs = x ::: xs infixr 5 ::: data HTrue = HTrue deriving Show data HFalse = HFalse deriving Show class Member x xs b | x xs -> b where member :: x -> xs -> b instance Member x Nil HFalse where member _ _ = HFalse instance Member x xs b => Member x (x ::: xs) HTrue where member _ _ = HTrue instance Member x xs b => Member x (y ::: xs) b where member x (_ ::: xs) = member x xs {- member 'a' (() ::: "a" ::: '1' ::: Nil) ==> HTrue member 'a' (() ::: "a" ::: Nil) ==> HFalse -} --- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.