StateHalt
The terminal, unrecoverable EndState a branch reaches when exception could not be handled by any enclosing catch/3 (or was a timeout, see AbstractState): solution is a Solution.Halt. Reaching a StateHalt does not, by itself, stop sibling branches of the search tree -- it is up to the coroutine driving this branch (and, ultimately, whoever consumes the resolution's solution channel) to decide whether a halted branch should abort the whole resolution.
Properties
The execution context this state operates on.
The exception this state needs to propagate/handle.
Whether this state is a terminal one for the current branch, i.e. an EndState.
Functions
This state as an EndState, or null if isEndState is false.
This state as an EndState.
Computes every state this branch may transition into from here, one per alternative (matching clause, disjunct, primitive solution, ...) available at this point; empty only for EndStates. Each element is meant to be explored independently (and, in :solve-concurrent's solver, concurrently) of the others.