links

The Links Programming Language
IN THIS PACKAGE
val internal_error : string -> exn
module Binder : sig ... end
type tyarg = Types.type_arg
val default_subkind : CommonTypes.Subkind.t
val default_effect_subkind : CommonTypes.Subkind.t
module SugarTypeVar : sig ... end
module SugarQuantifier : sig ... end
val rigidify : ('a * 'b * 'c) -> 'd * 'e * [> `Rigid ]
type fieldconstraint =
| Readonly
| Default
val show_fieldconstraint : fieldconstraint -> Ppx_deriving_runtime.string
module Datatype : sig ... end
type datatype' = Datatype.with_pos * Types.datatype option
val show_datatype' : datatype' -> Ppx_deriving_runtime.string
type type_arg' = Datatype.type_arg * Types.type_arg option
val show_type_arg' : type_arg' -> Ppx_deriving_runtime.string
module Pattern : sig ... end
module Alien : sig ... end
type spawn_kind =
| Angel
| Demon
| Wait
val show_spawn_kind : spawn_kind -> Ppx_deriving_runtime.string
type fn_dep = string * string
val show_fn_dep : fn_dep -> Ppx_deriving_runtime.string
type handler_depth =
| Deep
| Shallow
val show_handler_depth : handler_depth -> Ppx_deriving_runtime.string
type replace_rhs =
| Literal of string
| SpliceExpr of phrase
and given_spawn_location =
| ExplicitSpawnLocation of phrase
| SpawnClient
| NoSpawnLocation
and regex =
| Range of char * char
| Simply of string
| Quote of regex
| Any
| StartAnchor
| EndAnchor
| Seq of regex list
| Alternate of regex * regex
| Group of regex
| Repeat of Regex.repeat * regex
| Splice of phrase
| Replace of regex * replace_rhs
and clause = Pattern.with_pos * phrase
and funlit =
| NormalFunlit of normal_funlit
| SwitchFunlit of switch_funlit
and switch_funlit = Pattern.with_pos list list * switch_funlit_body
and switch_funlit_body = (Pattern.with_pos * phrase) list
and normal_funlit = Pattern.with_pos list list * phrase
and handler = {
sh_expr : phrase;
sh_effect_cases : clause list;
sh_value_cases : clause list;
sh_descr : handler_descriptor;
}
and handler_descriptor = {
shd_depth : handler_depth;
shd_types : Types.row * Types.datatype * Types.row * Types.datatype;
shd_raw_row : Types.row;
shd_params : handler_parameterisation option;
}
and handler_parameterisation = {
shp_bindings : (Pattern.with_pos * phrase) list;
shp_types : Types.datatype list;
}
and table_lit = {
tbl_name : phrase;
tbl_type : CommonTypes.Temporality.t * Datatype.with_pos * (Types.datatype * Types.datatype * Types.datatype) option;
tbl_field_constraints : (CommonTypes.Name.t * fieldconstraint list) list;
tbl_keys : phrase;
tbl_temporal_fields : (string * string) option;
tbl_database : phrase;
}
and valid_time_update =
| CurrentUpdate
| SequencedUpdate of {
validity_from : phrase;
validity_to : phrase;
}
| NonsequencedUpdate of {
from_time : phrase option;
to_time : phrase option;
}
and temporal_update =
| ValidTimeUpdate of valid_time_update
| TransactionTimeUpdate
and valid_time_deletion =
| CurrentDeletion
| SequencedDeletion of {
validity_from : phrase;
validity_to : phrase;
}
| NonsequencedDeletion
and temporal_deletion =
| ValidTimeDeletion of valid_time_deletion
| TransactionTimeDeletion
and valid_time_insertion =
| CurrentInsertion
| SequencedInsertion
and temporal_insertion =
| ValidTimeInsertion of valid_time_insertion
| TransactionTimeInsertion
and phrasenode =
| Constant of CommonTypes.Constant.t
| Var of CommonTypes.Name.t
| FreezeVar of CommonTypes.Name.t
| QualifiedVar of CommonTypes.Name.t list
| FunLit of (Types.datatype * Types.row) list option * CommonTypes.DeclaredLinearity.t * funlit * CommonTypes.Location.t
| Spawn of spawn_kind * given_spawn_location * phrase * Types.row option
| Query of (phrase * phrase) option * CommonTypes.QueryPolicy.t * phrase * Types.datatype option
| RangeLit of phrase * phrase
| ListLit of phrase list * Types.datatype option
| Iteration of iterpatt list * phrase * phrase option * phrase option
| Escape of Binder.with_pos * phrase
| Section of Operators.Section.t
| FreezeSection of Operators.Section.t
| Conditional of phrase * phrase * phrase
| Block of block_body
| InfixAppl of tyarg list * Operators.BinaryOp.t * phrase * phrase
| Regex of regex
| UnaryAppl of tyarg list * Operators.UnaryOp.t * phrase
| FnAppl of phrase * phrase list
| TAbstr of SugarQuantifier.t list * phrase
| TAppl of phrase * type_arg' list
| TupleLit of phrase list
| RecordLit of (CommonTypes.Name.t * phrase) list * phrase option
| Projection of phrase * CommonTypes.Name.t
| With of phrase * (CommonTypes.Name.t * phrase) list
| TypeAnnotation of phrase * datatype'
| Upcast of phrase * datatype' * datatype'
| Instantiate of phrase
| Generalise of phrase
| ConstructorLit of CommonTypes.Name.t * phrase option * Types.datatype option
| DoOperation of CommonTypes.Name.t * phrase list * Types.datatype option
| Handle of handler
| Switch of phrase * (Pattern.with_pos * phrase) list * Types.datatype option
| Receive of (Pattern.with_pos * phrase) list * Types.datatype option
| DatabaseLit of phrase * phrase option * phrase option
| TableLit of table_lit
| DBDelete of temporal_deletion option * Pattern.with_pos * phrase * phrase option
| DBInsert of temporal_insertion option * phrase * CommonTypes.Name.t list * phrase * phrase option
| DBUpdate of temporal_update option * Pattern.with_pos * phrase * phrase option * (CommonTypes.Name.t * phrase) list
| DBTemporalJoin of CommonTypes.Temporality.t * phrase * Types.datatype option
| LensLit of phrase * Lens.Type.t option
| LensSerialLit of phrase * string list * Lens.Type.t option
| LensKeysLit of phrase * phrase * Lens.Type.t option
| LensFunDepsLit of phrase * (string list * string list) list * Lens.Type.t option
| LensDropLit of phrase * string * string * phrase * Lens.Type.t option
| LensSelectLit of phrase * phrase * Lens.Type.t option
| LensJoinLit of phrase * phrase * phrase * phrase * phrase * Lens.Type.t option
| LensGetLit of phrase * Types.datatype option
| LensCheckLit of phrase * Lens.Type.t option
| LensPutLit of phrase * phrase * Types.datatype option
| Xml of CommonTypes.Name.t * (CommonTypes.Name.t * phrase list) list * phrase option * phrase list
| TextNode of string
| Formlet of phrase * phrase
| Page of phrase
| FormletPlacement of phrase * phrase * phrase
| PagePlacement of phrase
| FormBinding of phrase * Pattern.with_pos
| Select of CommonTypes.Name.t * phrase
| Offer of phrase * (Pattern.with_pos * phrase) list * Types.datatype option
| CP of cp_phrase
| TryInOtherwise of phrase * Pattern.with_pos * phrase * phrase * Types.datatype option
| Raise
and bindingnode =
| Val of Pattern.with_pos * SugarQuantifier.t list * phrase * CommonTypes.Location.t * datatype' option
| Fun of function_definition
| Funs of recursive_function list
| Foreign of Alien.single Alien.t
| Import of {
pollute : bool;
path : CommonTypes.Name.t list;
}
| Open of CommonTypes.Name.t list
| Typenames of typename list
| Infix of {
assoc : Operators.Associativity.t;
precedence : int;
name : string;
}
| Exp of phrase
| Module of {
binder : Binder.with_pos;
members : binding list;
}
| AlienBlock of Alien.multi Alien.t
and block_body = binding list * phrase
and cp_phrasenode =
| CPUnquote of binding list * phrase
| CPGrab of string * (Types.datatype * tyarg list) option * Binder.with_pos option * cp_phrase
| CPGive of string * (Types.datatype * tyarg list) option * phrase option * cp_phrase
| CPGiveNothing of Binder.with_pos
| CPSelect of Binder.with_pos * string * cp_phrase
| CPOffer of Binder.with_pos * (string * cp_phrase) list
| CPComp of Binder.with_pos * cp_phrase * cp_phrase
and typenamenode = CommonTypes.Name.t * SugarQuantifier.t list * datatype'
and function_definition = {
fun_binder : Binder.with_pos;
fun_linearity : CommonTypes.DeclaredLinearity.t;
fun_definition : SugarQuantifier.t list * funlit;
fun_location : CommonTypes.Location.t;
fun_signature : datatype' option;
fun_unsafe_signature : bool;
fun_frozen : bool;
}
and recursive_functionnode = {
rec_binder : Binder.with_pos;
rec_linearity : CommonTypes.DeclaredLinearity.t;
rec_definition : (SugarQuantifier.t list * (Types.datatype * int option list) option) * funlit;
rec_location : CommonTypes.Location.t;
rec_signature : datatype' option;
rec_unsafe_signature : bool;
rec_frozen : bool;
}
val show_replace_rhs : replace_rhs -> Ppx_deriving_runtime.string
val show_given_spawn_location : given_spawn_location -> Ppx_deriving_runtime.string
val show_clause : clause -> Ppx_deriving_runtime.string
val show_funlit : funlit -> Ppx_deriving_runtime.string
val show_switch_funlit : switch_funlit -> Ppx_deriving_runtime.string
val show_switch_funlit_body : switch_funlit_body -> Ppx_deriving_runtime.string
val show_normal_funlit : normal_funlit -> Ppx_deriving_runtime.string
val show_handler : handler -> Ppx_deriving_runtime.string
val show_handler_descriptor : handler_descriptor -> Ppx_deriving_runtime.string
val show_handler_parameterisation : handler_parameterisation -> Ppx_deriving_runtime.string
val show_table_lit : table_lit -> Ppx_deriving_runtime.string
val show_iterpatt : iterpatt -> Ppx_deriving_runtime.string
val show_valid_time_update : valid_time_update -> Ppx_deriving_runtime.string
val show_temporal_update : temporal_update -> Ppx_deriving_runtime.string
val show_valid_time_deletion : valid_time_deletion -> Ppx_deriving_runtime.string
val show_temporal_deletion : temporal_deletion -> Ppx_deriving_runtime.string
val show_valid_time_insertion : valid_time_insertion -> Ppx_deriving_runtime.string
val show_temporal_insertion : temporal_insertion -> Ppx_deriving_runtime.string
val show_phrasenode : phrasenode -> Ppx_deriving_runtime.string
val show_phrase : phrase -> Ppx_deriving_runtime.string
val show_bindingnode : bindingnode -> Ppx_deriving_runtime.string
val show_binding : binding -> Ppx_deriving_runtime.string
val show_block_body : block_body -> Ppx_deriving_runtime.string
val show_cp_phrasenode : cp_phrasenode -> Ppx_deriving_runtime.string
val show_cp_phrase : cp_phrase -> Ppx_deriving_runtime.string
val show_typenamenode : typenamenode -> Ppx_deriving_runtime.string
val show_typename : typename -> Ppx_deriving_runtime.string
val show_function_definition : function_definition -> Ppx_deriving_runtime.string
val show_recursive_functionnode : recursive_functionnode -> Ppx_deriving_runtime.string
val show_recursive_function : recursive_function -> Ppx_deriving_runtime.string
type directive = string * string list
val show_directive : directive -> Ppx_deriving_runtime.string
type sentence =
| Definitions of binding list
| Expression of phrase
| Directive of directive
val show_sentence : sentence -> Ppx_deriving_runtime.string
type program = binding list * phrase option
val show_program : program -> Ppx_deriving_runtime.string
exception ConcreteSyntaxError of SourceCode.Position.t * string
val tabstr : (SugarQuantifier.t list * phrasenode) -> phrasenode
val tappl : (phrasenode * tyarg list) -> phrasenode
val tappl' : (phrase * tyarg list) -> phrasenode
val get_normal_funlit : funlit -> normal_funlit
module Freevars : sig ... end