Puzzle.add_constraint() now takes a generic (unboxed) constraint, making it more pleasant to use when adding custom constraints.
Puzzle.add_constraint() now takes a generic (unboxed) constraint, making it more pleasant to use when adding custom constraints.