(.require [library [lux (.except if loop) ["$" documentation] [data [text (.only \n) ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) (.def .public documentation (.List $.Module) ($.module /._ "A method for abstracting I/O and effectful computations to make it safe while writing pure functional code." [($.definition /.functor) ($.definition /.apply) ($.definition /.monad) ($.definition (/.IO it) "A type that represents synchronous, effectful computations that may interact with the outside world.") ($.definition /.io (format "Delays the evaluation of an expression, by wrapping it in an IO 'thunk'." \n "Great for wrapping effectful computations (which will not be performed until the IO is 'run!').") [(io (exec (log! msg) "Some value..."))]) ($.definition /.run! "A way to execute IO computations and perform their side-effects.")] []))