@Override
    CauseItem[] findCauses(TrackingRunner runner, PsiExpression expression, MemoryStateChange history) {
      CauseItem cause = findRangeCause(history, history.myTopOfStack, myRangeSet, myTemplate);
      return cause == null ? new CauseItem[0] : new CauseItem[]{cause};
    }
@Override
    CauseItem[] findCauses(TrackingRunner runner, PsiExpression expression, MemoryStateChange history)