lux/codata/io

A method for abstracting I/O and effectful computations to make it safe while writing pure functional code.

Types

IO

A type that represents synchronous, effectful computations that may interact with the outside world.

(type: (IO a)
  (-> lux;Void a))

Macros

io

## Delays the evaluation of an expression, by wrapping it in an IO 'thunk'.
## Great for wrapping effectful computations (which won't be performed until the IO is "run").
(io (exec
      (log! msg)
      "Some value..."))

Structs

Applicative<IO>

(lux/control/applicative;Applicative IO)

Functor<IO>

(lux/control/functor;Functor IO)

Monad<IO>

(lux/control/monad;Monad IO)

Values

(run action)

A way to execute IO computations and perform their side-effects.

(All [a] (-> (IO a) a))