package nuscr
Module Nuscrlib.LiteratureSyntax
A Multiparty Session Type representation that is similar to those used in the literature
type 'a cont_list =
(Names.LabelName.t * Names.PayloadTypeName.t Base.list * 'a) Base.listtype global = | BranchG of {g_br_from : Names.RoleName.t;g_br_to : Names.RoleName.t;g_br_cont : global cont_list;
}(*p -> q : { l_i(S_i) . G_i }_{i \in I}
*)| MuG of Names.TypeVariableName.t * global(*mu t. G
*)| TVarG of Names.TypeVariableName.t(*t
*)| EndG(*end
*)
Global Types with basic features, in a form that is similar to those seen in standard literature. (No choice constructor, all choices are directed)
type local = | SendL of Names.RoleName.t * local cont_list(*!p { l_i(S_i) . L_i }_{i \in I}
*)| RecvL of Names.RoleName.t * local cont_list(*?p { l_i(S_i) . L_i }_{i \in I}
*)| MuL of Names.TypeVariableName.t * local(*mu t. L
*)| TVarL of Names.TypeVariableName.t(*t
*)| EndL(*end
*)
val show_gtype_mpstk : global -> Base.stringOutput the global type in a form recognised by MPSTK. https://github.com/alcestes/mpstk
val show_ltype_mpstk : local -> Base.stringOutput the local type in a form recognised by MPSTK. https://github.com/alcestes/mpstk