minimize free assigns finds a set element
x from
free that is contained in the least number of sets in
assigns. Then it returns the assigns where
x is
contained in the associated set. This formulation allows us not to
name
x and thus we do not need a second type variable for
set elements and no type family from
set to its
element type.
Unchecked preconditions:
free must be a superset of all sets
in the assign list.
free must be non-empty. The
assigns list may be empty. The output of assigns must be a
subsequence of the input assigns, that is, it must be a subset of the
input and it must be in the same order. This requirement was
originally needed by
minimize for
Map, but currently it
is not utilized anywhere.