-- Compute the last element of a list:
last :: Eq a => [a] -> a
last zs | _ ++ [e] == zs = e where e free
-- Is an element member of a list?
member :: Eq a => a -> [a] -> Bool
member e xs | xs == _ ++ [e] ++ _ = True
-- Is a list part of another list?
sublist :: Eq a => [a] -> [a] -> Bool
sublist xs ys | ys == _ ++ xs ++ _ = True
-- Returns some element of a list:
someElem :: Eq a => [a] -> a
someElem xs | member x xs = x where x free