use crate::HostTypes;
pub trait StructuralOperad<H: HostTypes> {
type StructuralOperadTarget: StructuralOperad<H>;
fn operad_structure(&self) -> &Self::StructuralOperadTarget;
}
pub trait OperadComposition<H: HostTypes> {
type TypeDefinition: crate::user::type_::TypeDefinition<H>;
fn outer_type(&self) -> &Self::TypeDefinition;
fn inner_type(&self) -> &Self::TypeDefinition;
fn composed_type(&self) -> &Self::TypeDefinition;
fn composed_site_count(&self) -> u64;
type GroundingMap: crate::user::morphism::GroundingMap<H>;
fn composed_grounding(&self) -> &Self::GroundingMap;
}