fn get_with_index(&self, site: &Site) -> Option<(usize, &Site)> {
        self.sites
            .iter()
            .enumerate()
            .find(|(_, s)| s.contains(&site))
    }
Gets the ancestor of the site and its index, or the site itself if it exists.

Returns `None` if no ancestor exists in the list.
weld/src/optimizer/transforms/cse.rs