Czy monada IO jest technicznie niepoprawna?

Na wiki haskell znajduje się następujący przykład warunkowego użycia monady IO (patrz tutaj) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Zauważ, że w tym przykładzie IO aprzyjęto definicję, RealWorld -> (a,...