let main () : unit Deferred.t =
  pipe_interleave () >>= fun () ->
  pipe_broadcast () >>= fun () ->
  pipe_pub_sub () >>= fun () ->
  return ()