This allows monads to simplify a wide range of problems, like handling potential undefined values (with the codice_1 monad), or keeping values within a flexible, well-formed list (using the codice_2 monad).