let tuple4_wrappers wrapa wrapb wrapc wrapd = {
to_raw=(fun (a,b,c,d)->Raw.Tuple[wrapa.to_raw a;wrapb.to_raw b;wrapc.to_raw c;wrapd.to_raw d]);
of_raw = function
| Raw.Tuple [a;b;c;d] -> wrapa.of_raw a, wrapb.of_raw b, wrapc.of_raw c, wrapd.of_raw d
| r -> raise (Wrong_type (fun outchan -> Printf.fprintf outchan
"Raw.Tuple 4 expected, got %a\n%!" Raw.to_channel r))
}