Returns a sequence of the solvers that self and others share.

def _shared_solvers(self, others):
        """
        Returns a sequence of the solvers that self and others share.
        """

        solvers_by_id = { id(s): s for s in self._solver_list }
        common_solvers = set(solvers_by_id.keys())
        other_sets = [ { id(s) for s in cs._solver_list } for cs in others ]
        for o in other_sets: common_solvers &= o

        return [ solvers_by_id[s] for s in common_solvers ]