WIP 1/2: add the plumbing to implement whenSat.
WIP 2/2: add whenSat, but not tested yet