private function filterVariablesFromSelection($selectedVariables, DefinedVariables $selection, Closure $filter, $reducer)
 {
     $variablesUsed = array();
     $compareLine = $reducer == 'max' ? $selection->endLine() : $selection->startLine();
     $knownVariables = $this->all();
     foreach ($selectedVariables as $variable) {
         if (!isset($knownVariables[$variable])) {
             continue;
         }
         $lastUsedLine = $reducer($knownVariables[$variable]);
         if ($filter($lastUsedLine, $compareLine)) {
             $variablesUsed[] = $variable;
         }
     }
     return $variablesUsed;
 }