let main () : unit Deferred.t =
(* First, we grab stdin as usual. *)
let stdin = Lazy.force Reader.stdin in
(* The Reader module has an awesome function that's perfect for iterating
* over the lines of a reader. Reader.lines returns a string pipe where each
* element in the pipe is a line from the reader. We can then iterate over
* the pipe and print the lines to stdout. *)
let lines = Reader.lines stdin in
Pipe.iter_without_pushback lines ~f:print_endline