Pregunta de entrevista de Informatica

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