public function attach(ReaderInterface $reader, $last = true)
    {
        if ($last) {
            // Add to the end (i.e. read this last, highest merge priority)
            $this->readers[] = $reader;
        } else {
            // Add to the beginning (i.e. read this first, lowest merge priority)
            array_unshift($this->readers, $reader);
        }

        // Clear any cached groups
        $this->groups = [];
    }