代数 - モノイド

積に関するモノイド \((X, \times, 1)\) を定義する.

  • 演算 std::ops::Mul,
  • 単位元 Monoid::one()

Rust の i64, f64 はそのまま乗算に関してモノイドになっている.

また, ユーザーが定義した型をモノイドにするためのマクロ monoid! を提供する.

monoid!product(), mul_assign() を自動で定義する.