pub trait Semiring {
const ZERO: Self;
const ONE: Self;
fn add(self, other: Self) -> Self;
fn mul(self, other: Self) -> Self;
}
pub trait Semiring {
const ZERO: Self;
const ONE: Self;
fn add(self, other: Self) -> Self;
fn mul(self, other: Self) -> Self;
}