1
2
3
4
5
6
7
8
9
use empty::Empty;
use semigroup::Semigroup;

pub trait Monoid: Empty + Semigroup {}

impl Monoid for i32 {}
impl Monoid for i64 {}
impl<T: Clone> Monoid for Vec<T> {}
impl Monoid for String {}