To focus the search input from anywhere on the page, press the 'S' key.
in-package search v0.1.0
Library
Module
Module type
Parameter
Class
Class type
Global types
type global_protocol = Nuscrlib__.Syntax.raw_global_protocol Loc.located
type payload =
| PValue of Names.VariableName.t Base.option * Expr.payload_type
| PDelegate of Names.ProtocolName.t * Names.RoleName.t
val equal_payload : payload -> payload -> Ppx_deriving_runtime.bool
val pp_payload :
Ppx_deriving_runtime.Format.formatter ->
payload ->
Ppx_deriving_runtime.unit
val show_payload : payload -> Ppx_deriving_runtime.string
val compare_payload : payload -> payload -> Ppx_deriving_runtime.int
val sexp_of_payload : payload -> Sexplib0.Sexp.t
A message in a global type carries a label, and a list of payloads.
val equal_message : message -> message -> Ppx_deriving_runtime.bool
val pp_message :
Ppx_deriving_runtime.Format.formatter ->
message ->
Ppx_deriving_runtime.unit
val show_message : message -> Ppx_deriving_runtime.string
val compare_message : message -> message -> Ppx_deriving_runtime.int
val sexp_of_message : message -> Sexplib0.Sexp.t
val typename_of_payload : payload -> Names.PayloadTypeName.t
type 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 equal_rec_var : rec_var -> rec_var -> Ppx_deriving_runtime.bool
val sexp_of_rec_var : rec_var -> Sexplib0.Sexp.t
type t =
| MessageG of message * Names.RoleName.t * Names.RoleName.t * t
(*
*)MessageG (msg, sender, receiver, t)
starts by sending messagemsg
fromsender
toreceiver
and continues ast
| MuG of Names.TypeVariableName.t * rec_var Base.list * t
(*
*)MuG (type_var, rec_vars, g)
is a recursive type, corresponding to the syntax `\mu t. G`, where t is represented bytype_var
and G is represented byt
.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.t
(*
*)TVarG (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.list
(*
*)ChoiceG (name, ts)
expresses a choice located at participantname
between thets
| EndG
(*Empty global type
*)| CallG of Names.RoleName.t * Names.ProtocolName.t * Names.RoleName.t Base.list * t
(*
*)CallG (caller, protocol, participants, t)
-caller
callsprotocol
, invitingparticipants
to carry out the roles inprotocol
(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.t
Mapping 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).t
val show : t -> Base.string
Provides a textual representation of a global type
val show_nested_t : nested_t -> Base.string
Provides 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.t
Generates a unique label for a protocol call based on the caller, the protocol called and the participants involved
val of_protocol : global_protocol -> t
Turn a raw protocol (from the parser) into a global type.
val nested_t_of_module : scr_module -> nested_t
Turn 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.string
Convert rec_var to string