This is extremely cool. So many interesting problems can be recast in terms of constraint satisfaction (i.e. find a feasible solution within these constraints) or optimization (find a solution that maximizes this utility function). It can be really cumbersome to elegantly restate a problem that can be stated in these terms in a traditional functional/imperative idiom, and it often conceals how problems are related.