(** Dill - Terminal I/O driver using Eio *) open Noun type belt = | Aro of [`d | `l | `r | `u] | Bac | Ctl of char | Del | Met of char | Ret | Txt of string list type blit = | Lin of string | Klr of noun | Mor of blit list | Hop of int | Clr type effect = { wire: noun; blit: blit; } val render_blit : stdout:_ Eio.Flow.sink -> blit -> unit val make_belt_event : noun -> belt -> noun val parse_input : string -> belt val input_loop : stdin:_ Eio.Flow.source -> state:State.t -> wire:noun -> (noun -> unit) -> unit val render_effects : stdout:_ Eio.Flow.sink -> noun -> unit