open Rpc_protocol type var_c = C of principal type var_w = W of principal type var_q = Q of string type var_x = X of int (* Proxy function for role c *) type result_c = string type msg0 = Query of (var_q * var_c * var_w * msg1) and msg1 = { hReply : (var_x -> result_c)} val c : principal -> msg0 -> result_c (* Proxy function for role w *) type result_w = string type msg3 = { hQuery : (var_q * var_c * var_w -> msg4)} and msg4 = Reply of (var_x * result_w) val w : principal -> msg3 -> result_w