Range query: three cases at every node

Example:

Input array (query range highlighted)

Contributions collected so far

never visited visiting now partial overlap → recurse inside → use cached sum outside → contributes 0