Monads are a key concept in Haskell that allow for sequencing of computations, handling of side effects, and more. Here are some common examples of monads in Haskell:

1. Maybe Monad: This is perhaps the most well-known example of a monad in Haskell. The Maybe monad is used to handle computations that might fail, by representing a computation that can either return a value or nothing at all.
2. IO Monad: The IO monad is used for input and output operations in Haskell. It allows for side-effectful computations, such as reading and writing files, interacting with the network, and more.
3. List Monad: The List monad is used to represent computations that can return multiple results. It allows for chaining of computations that generate lists, such as filtering, mapping, and folding.
4. State Monad: The State monad is used for computations that need to maintain state. It allows for a computation to have access to a state that is passed through each step of the computation.
5. Reader Monad: The Reader monad is used to handle computations that depend on a shared environment. It allows for computations to access shared configuration data, such as database connection settings, without having to pass the configuration around explicitly.

These are just a few examples of the many monads available in Haskell. Each monad provides a different way to structure computations and handle side effects, making it easier to write correct and maintainable code.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence