higher-cat 0.1.1

Functors, Applicatives, Monads and other bad ideas
Documentation
1
2
3
4
5
6
7
8
9
10
11
use std::ops::Add;

/// A `Monoid` consists of a semigroup (the [`Add`][Add] trait in Rust) and an
/// empty value (the [`Default`][Default] trait) plus the following laws:
///
/// - Associativity: `(x + y) + z == x + (y + z)`
/// - Identity: `0 + a == a + 0 == a`
///
/// [Add]: https://doc.rust-lang.org/std/ops/trait.Add.html
/// [Default]: https://doc.rust-lang.org/std/default/trait.Default.html
pub trait Monoid: Add + Default {}