module Family where -- We are given a child->parent relation as a non-deterministic function from -- children to parents. E.g., George's parents are Elizabeth and Henry. parent :: String -> String parent "George" = "Elizabeth" ? "Henry" parent "Fiona" = "Elizabeth" ? "Henry" parent "Mary" = "Theresa" ? "Henry" parent "Frederick" = "Theresa" ? "Francis" -- Find the siblings of the input person. -- Definition: y is a sibling of x iff x/=y and someone is a parent of both. -- Duplicate answers are OK, e.g., sibling "George" gives "Fiona" twice because -- of Elizabeth and Henry. sibling :: String -> String sibling = error "TODO"