Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Nuscrlib.GtypeGlobal types
type payload = | PValue of Names.VariableName.t Base.option * Expr.payload_type| PDelegate of Names.ProtocolName.t * Names.RoleName.tval equal_payload : payload -> payload -> Ppx_deriving_runtime.boolval sexp_of_payload : payload -> Sexplib0.Sexp.tval pp_payload :
Ppx_deriving_runtime.Format.formatter ->
payload ->
Ppx_deriving_runtime.unitval show_payload : payload -> Ppx_deriving_runtime.stringval compare_payload : payload -> payload -> Ppx_deriving_runtime.intA message in a global type carries a label, and a list of payloads.
val equal_message : message -> message -> Ppx_deriving_runtime.boolval sexp_of_message : message -> Sexplib0.Sexp.tval pp_message :
Ppx_deriving_runtime.Format.formatter ->
message ->
Ppx_deriving_runtime.unitval show_message : message -> Ppx_deriving_runtime.stringval compare_message : message -> message -> Ppx_deriving_runtime.intval typename_of_payload : payload -> Names.PayloadTypeName.ttype rec_var = {rv_name : Names.VariableName.t;Variable Name
*)rv_roles : Names.RoleName.t Base.list;Which roles know this variable
*)rv_ty : Expr.payload_type;What type does the variable carry
*)rv_init_expr : Expr.t;What is the initial expression assigned at the beginning of recursion
*)}Recursion variable
val sexp_of_rec_var : rec_var -> Sexplib0.Sexp.tval equal_rec_var : rec_var -> rec_var -> Ppx_deriving_runtime.booltype t = | MessageG of message * Names.RoleName.t * Names.RoleName.t * tMessageG (msg, sender, receiver, t) starts by sending message msg from sender to receiver and continues as t
| MuG of Names.TypeVariableName.t * rec_var Base.list * tMuG (type_var, rec_vars, g) is a recursive type, corresponding to the syntax `\mu t. G`, where t is represented by type_var and G is represented by t. rec_vars are recursion parameters, used in RefinementTypes extension for parameterised recursion, an empty list is supplied when that feature is not used.
| TVarG of Names.TypeVariableName.t * Expr.t Base.list * t Base.Lazy.tTVarG (type_var, exprs, g_lazy) is a type variable, scoped inside a recursion. type_var is the name of the type variable, exprs are expressions supplied into paramterised recursion, used in RefinementTypes extension. Otherwise an empty list is supplied when that feature is not used. g_lazy provides a convenient way to access the type that the type variable recurses into.
| ChoiceG of Names.RoleName.t * t Base.listChoiceG (name, ts) expresses a choice located at participant name between the ts
| EndGEmpty global type
*)| CallG of Names.RoleName.t
* Names.ProtocolName.t
* Names.RoleName.t Base.list
* tCallG (caller, protocol, participants, t) - caller calls protocol, inviting participants to carry out the roles in protocol (dynamic roles in nested protocols are not included)
The type of global types. See also LiteratureSyntax.global for a simpler syntax.
val sexp_of_t : t -> Sexplib0.Sexp.tMapping of protocol name to the roles ('static' participants, dynamic participants) participating in the protocol, the names of the nested protocols defined inside it and its global type
type nested_global_info = {static_roles : Names.RoleName.t Base.list;dynamic_roles : Names.RoleName.t Base.list;nested_protocol_names : Names.ProtocolName.t Base.list;gtype : t;}type nested_t = nested_global_info Base.Map.M(Names.ProtocolName).tval show : t -> Base.stringProvides a textual representation of a global type
val show_nested_t : nested_t -> Base.stringProvides a textual representation of a global type with nested protocols
val call_label :
Names.RoleName.t ->
Names.ProtocolName.t ->
Names.RoleName.t Base.list ->
Names.LabelName.tGenerates a unique label for a protocol call based on the caller, the protocol called and the participants involved
val of_protocol : Nuscrlib__.Syntax.raw_global_protocol Loc.located -> tTurn a raw protocol (from the parser) into a global type, optional argument refined determines whether refinement types are enabled.
val nested_t_of_module : Nuscrlib__.Syntax.scr_module -> nested_tTurn scribble module (from the parser) into a nested global type
Normalise a global type. This mainly collapses nested choice on the same participant and unfolds fixpoints
Validate refinements in the given global type, requires RefinementTypes pragma
val show_rec_var : rec_var -> Base.stringConvert rec_var to string