Pergunta de entrevista da empresa Informatica

What is a "monad" in functional programming, and how does it help in managing side effects?