https://5dok.org/document/nq77g1vq-deriving-filtering-algorithms-from-constraint-checkers.html