type ('req, 'rep, 'req', 'rep') t = ('req, 'rep) Service.t -> ('req', 'rep') Service.ttype ('req, 'rep) simple = ('req, 'rep, 'req, 'rep) tA filter is simple when it preserves the type of a service
val (>>>) : ('q1, 'p1, 'q2, 'p2) t -> ('q2, 'p2, 'q3, 'p3) t -> ('q1, 'p1, 'q3, 'p3) tval apply_all : ('req, 'rep) simple list -> ('req, 'rep) Service.t -> ('req, 'rep) Service.t