https://123dok.net/document/oz10k03q-an-abstract-interpretation-based-combinator-for-modelling-while-loops-in-constraint-programming.html