Working on a monadic constraint solver.