La monade IO est-elle techniquement incorrecte?

Sur le wiki haskell, il y a l'exemple suivant d'utilisation conditionnelle de la monade IO (voir ici) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Notez que dans cet exemple, la définition de IO aest prise RealWorld -> (a,...