pub trait UserGroupExt: UserGroup {
// Provided methods
fn and<B>(self, b: B) -> And<Self, B>
where Self: Sized { ... }
fn or<B>(self, b: B) -> Or<Self, B>
where Self: Sized { ... }
fn not(self) -> Not<Self>
where Self: Sized { ... }
fn boxed(self) -> Box<dyn UserGroup>
where Self: Sized + 'static { ... }
}