Les applications doivent manipuler des effets pour être utiles, comme la communication avec le système, avec des utilisateurs ou un service tiers. Mais les effets créent des dépendances fortes dans le code qui ne favorisent pas sa maintenabilité. Le type IO permet de pallier cette difficulté.
Provenant de lieux lointains dans l'univers (ce qui est pléonastique, puisque quoi que nous regardions dans l'univers, c'est forcément loin) et traversant l'espace à une vitesse inimaginable, des rayonnements viennent frapper les capteurs d'un satellite artificiel, délogeant sans gêne des électrons suivant leur course probabiliste tranquille autour d'atomes. Ce qui ne va pas sans électriser l'environnement. Par cette excitation locale et des mécanismes plus ou moins similaires, nos rayonnements initiaux sont transformés en quelque chose qu'on peut interpréter sous forme de nombres et transmis par radiocommunication vers une planète bleue (quoique pas trop), tellement petite qu'on la distingue à peine depuis Europe, le satellite de glace de Jupiter. Là sur cette planète, une partie certainement infime de nos émissions radios rebondissent sur un dôme inversé, atteignant un espace réduit, pour à nouveau être converties en signaux électriques et grâce à des procédés complexes terminer leur course écrasés contre un écran d'ordinateur sans pouvoir se plaindre. Tout ça pour vérifier si, par additions ou par multiplications successives lancées séquentiellement ou parallèlement, un rayonnement lointain permet de justifier une découverte astronomique... ou pas.