code: func (s *Set) IsSubset(superset *Set) bool {
  	// An empty set is subset of any other set (including empty sets).
  	if s.IsEmpty() {
  		return true
  	}
  
  	// An empty set is not a superset of any non-empty set.
  	if superset.IsEmpty() {
  		return false
  	}
  
  	// The universal set is subset of only itself.
  	if s.All {
  		return superset.All
  	}
  
  	// The universal set is superset of any other set.
  	if superset.All {
  		return true
  	}
  
  	// Is s.IDs a subset of superset.IDs?
  	if len(superset.IDs) < len(s.IDs) {
  		return false
  	}
  	for id := range s.IDs {
  		if _, ok := superset.IDs[id]; !ok {
  			return false
  		}
  	}
  
  	// Is s.Groups a subset of superset.Groups?
  	if len(superset.Groups) < len(s.Groups) {
  		return false
  	}
  	for group := range s.Groups {
  		if _, ok := superset.Groups[group]; !ok {
  			return false
  		}
  	}
  
  	return true
  }
docs: // IsSubset returns true if this set if a subset of another set.
  //
  // Two equal sets are considered subsets of each other.
  //
  // It doesn't attempt to expand groups. Compares IDs and Groups sets separately,
  // as independent kinds of entities.
  //
  // 'nil' receiver and argument values are valid and represent empty sets.