val proxy : A.flow -> B.flow -> (Mirage_flow.stats * Mirage_flow.stats, error) Stdlib.result Lwt.tproxy a b proxies data between a and b until both sides close. If either direction encounters an error then so will proxy. If both directions succeed, then return I/O statistics.