Passage de constraint_propagation au régime fonctionnel (partiellement, si on veut le faire totalement il faut abuser des exceptions, c'est marrant mais pas urgent)
set_val ne renvoie plus de booléen mais lève une exception, c'est plus clean et plus rapide au coeur d'une itération