#[derive(Semigroup)]
Derive macro for Semigroup.
Semigroup
Implements Semigroup for a struct by combining each field componentwise.
#[derive(Semigroup)] struct Foo { a: i32, // i32: Semigroup (addition) b: String, // String: Semigroup (concatenation) }