# Documentation

class Monad solver => Solver solver whereSource

add :: Constraint solver -> solver BoolSource

add a constraint to the current state, and return whethe the resulting state is consistent

run a computation

mark :: solver (Label solver)Source

mark the current state, and return its label

goto :: Label solver -> solver ()Source

go to the state with given label