open Wsn_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 = unit type msg0 = Request of (var_c * var_w * var_q * msg1) and msg1 = { hReply : (var_x -> msg2) ; hFault : (unit -> result_c)} and msg2 = Extra of (var_q * msg1) val c : principal -> msg0 -> result_c (* Proxy function for role w *) type result_w = string type msg4 = { hRequest : (var_c * var_w * var_q -> msg5)} and msg5 = Reply of (var_x * msg6) | Fault of (result_w) and msg6 = { hExtra : (var_q -> msg5)} val w : principal -> msg4 -> result_w