2x + y - z = 2We have:
>>> test (k, 2+k', 2k+k') (1+k, k', 2k+k')That is, for arbitrary k and k', we have two different solutions. (An infinite family.) You can verify these solutuions by substituting the values for x, y and z in the above, for each choice. It's harder to see that they cover all possibilities, but a moments thought reveals that is indeed the case.
>>> test Q.E.D.
>>> test "brd" "bread" True
>>> let exV = test pass (fail "I'm a failure") (pure . (>3))
>>> validateP exV 3 Left (Valid 3)
>>> validateP exV 4 Right "I'm a failure"