let main () : unit Deferred.t =
write_then_read () >>= fun () ->
write_and_read () >>= fun () ->
write_without_pushback_then_read () >>= fun () ->
pipe_fold () >>= fun () ->
pipe_iter () >>= fun () ->
pipe_transfer () >>= fun () ->
pipe_interleave () >>= fun () ->
return ()