The constraints are conceptually a set (passed in as a list of two-tuples). The solution to the constraints is a dictionary of type sets.