? propagation
expr? on a Result<T, E>-typed expression unwraps to T on Ok or returns the Err from the enclosing rule. Admitted in fn and mutate bodies, where the enclosing rule’s return type is Result<U, E> for some U. Not admitted in derive (which has no return type — predicates do not fail) or query (whose return type is the projection type, not a Result); check rules emit diagnostics rather than returning Results. Calling ? outside an admitted context is a parse-time error.