-- Module "conditional" from the Escher report: data Alpha = A | B | C | D membercheck :: (Alpha , [Alpha]) -> Bool membercheck(_,[]) = False membercheck(x,y:z) = if x==y then True else membercheck(x,z) -- goals: goal1 = membercheck(B,[A,B]) --> True goal2 = membercheck(C,[A,B]) --> False goal3 = membercheck(x,[A,B]) where x free --> suspend