I am trying to understand the relationship between monads and monoids in more practical ways. I apologize in advance if this question makes no sense, I'm still struggling.
Suppose for example, I have:
trait Monoid[T] {
def zero: T
def combine: (T,T) => T
}
and (from here):
trait Monad[+M[_]] {
def unit[A](a: A): M[A]
def bind[A, B](m: M[A])(f: A => M[B]): M[B]
}
Is there a relationship that can be established between Monad and Monoid traits, such as that I can treat a Monad as a Monoid (assuming I understand correctly that a Monad is a special case of a Monoid)?