-- deleteFirst y xs returns the list xs with the
-- first occurrence of item y removed.

deleteFirst :: Eq a => a -> [a] -> [a]
deleteFirst y [] = []
deleteFirst y (x:xs)
    | x == y     = xs
    | otherwise  = deleteFirst y xs

