"Monad" is a word that describes a set of behaviors
In scala, we use the Monad[Foo] typeclass from cats to define instances of this behavior.
The essence of its behavior is the ability to describe a series of computations, where one computation depends on the result of the computation that came before it.
For example, Monad[Option] shows that the Option[A] data type can be used to describe computations of A which may result in no value.