s
Size: a a a
s
OA
OA
T1
T1
OA
p
OA
T1
SP
T1
p
OA
SP
C
s
trait Monoid {
fn mul(self, other: Self) -> Self;
fn unit() -> Self;
}
Со следующими условиями (x, y, z: T, где T: Monoid):
mul(mul(x, y), z) == mul(x, mul(y, z))
mul(x, unit()) = x
mul(unit(), y) = yOA
OA
trait Monoid {
fn mul(self, other: Self) -> Self;
fn unit() -> Self;
}
Со следующими условиями (x, y, z: T, где T: Monoid):
mul(mul(x, y), z) == mul(x, mul(y, z))
mul(x, unit()) = x
mul(unit(), y) = ySP
trait Monoid {
fn mul(self, other: Self) -> Self;
fn unit() -> Self;
}
Со следующими условиями (x, y, z: T, где T: Monoid):
mul(mul(x, y), z) == mul(x, mul(y, z))
mul(x, unit()) = x
mul(unit(), y) = ys