AbstractState
Common base of every :solve-classic State: wraps computeNext with a shared timeout check, so no concrete state has to implement SolveOptions.timeout handling itself.
next first compares executionTime against ClassicExecutionContext.startTime/ClassicExecutionContext.maxDuration; if the budget is exceeded it short-circuits straight to an EndState (StateHalt) carrying a TimeOutException, bypassing any pending catch/3 (resource exhaustion is treated as unrecoverable); otherwise it delegates to computeNext, the actual per-state transition logic.
Inheritors
Properties
The execution context this state operates on.
Whether this state is a terminal one for the current resolution step, i.e. an EndState.
Functions
This state as an EndState, or null if isEndState is false.
This state as an EndState.