Монада это нечто F для чего определно: flatMap, pure, где flatMap[A,B](a: A => F[B]): F[A], pure: A => F[A] и выполняются monad laws :
1) forall a: A, forall f: A => F[A]: pure(a).flatMap(x => f(x)) = f(a),
2) forall a: F[A] a.flatMap(x => pure(x)) == a
3) forall a: F[A], forall f: A => F[B], forall g: B => F[C], a.flatMap(f).flatMap(g) = a.flatMap(x => f(x).flatMap(g))
а простыми словами?
я ж не с просто использовал язык из патента на солнечную батарею ("положительно заряженное вещество падает на пластину и изменяет заряд пластины" - емнип, именно такими словами и был описан первый патент на солнечную батарею)