nondeterministic computations and constraint satisfaction problem (CSP) solvers in Haskell