square x = x*x squares(x,y,z) = (square x, square y, square z) member [] x = False; member (y:ys) x | x==y = True | otherwise = member ys x memsq xs x = member xs (square x) inc x = x + 1 data Tree a = Leaf a | Branch (Tree a) (Tree a) deriving (Eq, Ord) example x [] = False; example x (y:ys) | y > x = True | otherwise = (y == x && ys == [x])