Forgot to commit the implementation of weak constraints.
Tests.