open Processing let read_all colours = In_channel.set_binary_mode stdin true; let open Types in let t = Emitter.create and culr = Culriser.create colours in Emitter.serialise t (Ansi [ Fg (Culriser.current culr) ]); Angstrom_unix.parse_many ~buf_size:4096 Parse.culr_parse (fun c -> c |> ansi_filter culr |> Culriser.serialise_with_colour culr t) stdin |> function | _, Ok _ -> Emitter.flush t | _, Error e -> prerr_endline ("error encountered:" ^ e)