Catch
catch/3: resolves as its first argument, G; the second (E, the catcher pattern) and third (C, the recovery goal) arguments are never actually resolved as part of this rule's body -- it is it.unibo.tuprolog.solve.concurrent.fsm.StateException that inspects catch(G, E, C) goals found while walking ConcurrentExecutionContext.pathToRoot, unifying E against a raised error and, on a match, resolving C instead.