Ast_sugar
include module type of struct include Types end
include module type of struct include Stage_common.Types end
module Location = Simple_utils.Location
module List = Simple_utils.List
module ValueVar : sig ... end
module TypeVar : sig ... end
module ModuleVar : sig ... end
include module type of struct include Stage_common.Enums end
type ligo_string = Simple_utils.Ligo_string.t
val ligo_string_to_yojson : ligo_string -> Yojson.Safe.t
val ligo_string_of_yojson :
Yojson.Safe.t ->
ligo_string Ppx_deriving_yojson_runtime.error_or
val compare_ligo_string :
ligo_string ->
ligo_string ->
Ppx_deriving_runtime.int
val hash_fold_ligo_string :
Ppx_hash_lib.Std.Hash.state ->
ligo_string ->
Ppx_hash_lib.Std.Hash.state
val hash_ligo_string : ligo_string -> Ppx_hash_lib.Std.Hash.hash_value
val hash_fold_layout :
Ppx_hash_lib.Std.Hash.state ->
layout ->
Ppx_hash_lib.Std.Hash.state
val hash_layout : layout -> Ppx_hash_lib.Std.Hash.hash_value
type literal =
| Literal_unit |
| Literal_int of z |
| Literal_nat of z |
| Literal_timestamp of z |
| Literal_mutez of z |
| Literal_string of ligo_string |
| Literal_bytes of bytes |
| Literal_address of string |
| Literal_signature of string |
| Literal_key of string |
| Literal_key_hash of string |
| Literal_chain_id of string |
| Literal_operation of bytes |
| Literal_bls12_381_g1 of bytes |
| Literal_bls12_381_g2 of bytes |
| Literal_bls12_381_fr of bytes |
| Literal_chest of bytes |
| Literal_chest_key of bytes |
val literal_to_yojson : literal -> Yojson.Safe.t
val literal_of_yojson :
Yojson.Safe.t ->
literal Ppx_deriving_yojson_runtime.error_or
val hash_fold_literal :
Ppx_hash_lib.Std.Hash.state ->
literal ->
Ppx_hash_lib.Std.Hash.state
val hash_literal : literal -> Ppx_hash_lib.Std.Hash.hash_value
val literal_to_enum : literal -> int
type constant' =
val constant'_to_enum : constant' -> int
val constant'_of_enum : int -> constant' option
val constant'_to_yojson : constant' -> Yojson.Safe.t
val constant'_of_yojson :
Yojson.Safe.t ->
constant' Ppx_deriving_yojson_runtime.error_or
val pp_constant' : Stdlib.Format.formatter -> constant' -> unit
val ppx_is_only_interpreter : constant' -> bool
val read_constant' : string -> constant' option
type location = Location.t
type 'a location_wrap = 'a Location.wrap
val hash_fold_known_attributes :
Ppx_hash_lib.Std.Hash.state ->
known_attributes ->
Ppx_hash_lib.Std.Hash.state
val hash_known_attributes :
known_attributes ->
Ppx_hash_lib.Std.Hash.hash_value
type expression_variable = ValueVar.t
val hash_fold_expression_variable :
Ppx_hash_lib.Std.Hash.state ->
expression_variable ->
Ppx_hash_lib.Std.Hash.state
val hash_expression_variable :
expression_variable ->
Ppx_hash_lib.Std.Hash.hash_value
type type_variable = TypeVar.t
val hash_fold_type_variable :
Ppx_hash_lib.Std.Hash.state ->
type_variable ->
Ppx_hash_lib.Std.Hash.state
val hash_type_variable : type_variable -> Ppx_hash_lib.Std.Hash.hash_value
type module_variable = ModuleVar.t
val hash_fold_module_variable :
Ppx_hash_lib.Std.Hash.state ->
module_variable ->
Ppx_hash_lib.Std.Hash.state
val hash_module_variable : module_variable -> Ppx_hash_lib.Std.Hash.hash_value
val kind_to_yojson : kind -> Yojson.Safe.t
val kind_of_yojson : Yojson.Safe.t -> kind Ppx_deriving_yojson_runtime.error_or
val _ : Yojson.Safe.t -> kind Ppx_deriving_yojson_runtime.error_or
val hash_fold_kind :
Ppx_hash_lib.Std.Hash.state ->
kind ->
Ppx_hash_lib.Std.Hash.state
val hash_kind : kind -> Ppx_hash_lib.Std.Hash.hash_value
val hash_fold_label :
Ppx_hash_lib.Std.Hash.state ->
label ->
Ppx_hash_lib.Std.Hash.state
val hash_label : label -> Ppx_hash_lib.Std.Hash.hash_value
val label_to_yojson : label -> [> `List of [> `String of string ] list ]
module LMap : sig ... end
type 'a label_map = 'a LMap.t
val hash_fold_label_map :
'a. ( Ppx_hash_lib.Std.Hash.state -> 'a -> Ppx_hash_lib.Std.Hash.state ) ->
Ppx_hash_lib.Std.Hash.state ->
'a label_map ->
Ppx_hash_lib.Std.Hash.state
val const_name : rich_constant -> constant'
val hash_fold_row_element_mini_c :
'ty_expr. ( Ppx_hash_lib.Std.Hash.state ->
'ty_expr ->
Ppx_hash_lib.Std.Hash.state ) ->
Ppx_hash_lib.Std.Hash.state ->
'ty_expr row_element_mini_c ->
Ppx_hash_lib.Std.Hash.state
val hash_fold_type_app :
'ty_exp. ( Ppx_hash_lib.Std.Hash.state ->
'ty_exp ->
Ppx_hash_lib.Std.Hash.state ) ->
Ppx_hash_lib.Std.Hash.state ->
'ty_exp type_app ->
Ppx_hash_lib.Std.Hash.state
val hash_fold_module_access :
'a. ( Ppx_hash_lib.Std.Hash.state -> 'a -> Ppx_hash_lib.Std.Hash.state ) ->
Ppx_hash_lib.Std.Hash.state ->
'a module_access ->
Ppx_hash_lib.Std.Hash.state
val hash_fold_abstraction :
'ty_exp. ( Ppx_hash_lib.Std.Hash.state ->
'ty_exp ->
Ppx_hash_lib.Std.Hash.state ) ->
Ppx_hash_lib.Std.Hash.state ->
'ty_exp abstraction ->
Ppx_hash_lib.Std.Hash.state
val hash_fold_arrow :
'ty_exp. ( Ppx_hash_lib.Std.Hash.state ->
'ty_exp ->
Ppx_hash_lib.Std.Hash.state ) ->
Ppx_hash_lib.Std.Hash.state ->
'ty_exp arrow ->
Ppx_hash_lib.Std.Hash.state
val hash_fold_binder_attributes :
Ppx_hash_lib.Std.Hash.state ->
binder_attributes ->
Ppx_hash_lib.Std.Hash.state
val hash_binder_attributes :
binder_attributes ->
Ppx_hash_lib.Std.Hash.hash_value
type 'ty_exp binder = {
var : expression_variable; |
ascr : 'ty_exp option; |
attributes : binder_attributes; |
}
val hash_fold_binder :
'ty_exp. ( Ppx_hash_lib.Std.Hash.state ->
'ty_exp ->
Ppx_hash_lib.Std.Hash.state ) ->
Ppx_hash_lib.Std.Hash.state ->
'ty_exp binder ->
Ppx_hash_lib.Std.Hash.state
type ('exp, 'ty_exp) recursive = {
fun_name : expression_variable; |
fun_type : 'ty_exp; |
lambda : ( 'exp, 'ty_exp ) lambda; |
}
and 'exp for_each = {
fe_binder : expression_variable * expression_variable option; |
collection : 'exp; |
collection_type : collect_type; |
fe_body : 'exp; |
}
and 'ty_exp pattern = 'ty_exp pattern_repr Location.wrap
type ('ty_exp, 'attr) declaration_type' = {
type_binder : type_variable; |
type_expr : 'ty_exp; |
type_attr : 'attr; |
}
and ('exp, 'ty_exp, 'attr) declaration_constant' = {
binder : 'ty_exp binder; |
expr : 'exp; |
attr : 'attr; |
}
and ('exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m) declaration_module' = {
module_binder : module_variable; |
module_ : ( 'exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m ) module_expr'; |
module_attr : 'attr_m; |
}
and ('exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m) declaration_content' =
| Declaration_type of ( 'ty_exp, 'attr_t ) declaration_type' |
| Declaration_constant of ( 'exp, 'ty_exp, 'attr_e ) declaration_constant' |
| Declaration_module of ( 'exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m )
declaration_module' |
and ('exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m) declaration' =
( 'exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m ) declaration_content'
location_wrap
and ('exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m) declarations' =
( 'exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m ) declaration' list
and ('exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m) mod_in' = {
module_binder : module_variable; |
rhs : ( 'exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m ) module_expr'; |
let_result : 'exp; |
}
and module_path_' = module_variable List.Ne.t
and ('exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m) module_expr_content' =
| M_struct of ( 'exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m ) declarations' |
| M_variable of module_variable |
| M_module_path of module_path_' |
and ('exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m) module_expr' =
( 'exp, 'ty_exp, 'attr_e, 'attr_t, 'attr_m ) module_expr_content'
Location.wrap
and ty_expr = type_expression
type declaration =
( expr, ty_expr, attributes, attributes, attributes ) declaration'
and declarations =
( expr, ty_expr, attributes, attributes, attributes ) declarations'
and declaration_content =
( expr, ty_expr, attributes, attributes, attributes ) declaration_content'
and module_expr =
( expr, ty_expr, attributes, attributes, attributes ) module_expr'
and module_ = declarations
and expr = expression
and let_in = {
let_binder : ty_expr binder; |
rhs : expression; |
let_result : expression; |
attributes : attributes; |
mut : bool; |
}
and matching = ( expression, type_expression ) match_exp
and program = declaration list
include module type of struct include Combinators end
module Option = Simple_utils.Option
module SMap = Simple_utils.Map.String
type expression_content = Types.expression_content =
val make_e :
?loc:Types.Location.t ->
Types.expression_content ->
Types.expression
val get : Types.expression -> Types.expression_content
type nonrec e_accessor = Types.expr Types.accessor
type nonrec e_application = Types.expr Types.application
type nonrec e_ascription = ( Types.expr, Types.ty_expr ) Types.ascription
type nonrec e_assign = ( Types.expr, Types.ty_expr ) Types.assign
type nonrec e_big_map = (Types.expression * Types.expression) list
type nonrec e_cond = Types.expr Types.conditional
type nonrec e_constant = Types.expr Types.constant
type nonrec e_constructor = Types.expr Types.constructor
type nonrec e_lambda = ( Types.expr, Types.ty_expr ) Types.lambda
type nonrec e_let_in = Types.let_in
type nonrec e_list = Types.expression list
type nonrec e_literal = Types.literal
type nonrec e_map = (Types.expression * Types.expression) list
type nonrec e_matching = Types.matching
type nonrec e_mod_in =
( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in'
type nonrec e_module_accessor = Types.expression_variable Types.module_access
type nonrec e_raw_code = Types.expr Types.raw_code
type nonrec e_record = Types.expression Types.label_map
type nonrec e_recursive = ( Types.expr, Types.ty_expr ) Types.recursive
type nonrec e_sequence = Types.expr Types.sequence
type nonrec e_set = Types.expression list
type nonrec e_tuple = Types.expression list
type nonrec e_type_abstraction = Types.expr Types.type_abs
type nonrec e_type_in = ( Types.expr, Types.ty_expr ) Types.type_in
type nonrec e_update = Types.expr Types.update
type nonrec e_variable = Types.expression_variable
val e_accessor :
Types.expr Types.accessor ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_application :
Types.expr Types.application ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_ascription :
( Types.expr, Types.ty_expr ) Types.ascription ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_assign :
( Types.expr, Types.ty_expr ) Types.assign ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_big_map :
(Types.expression * Types.expression) list ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_cond :
Types.expr Types.conditional ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_constant :
Types.expr Types.constant ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_constructor :
Types.expr Types.constructor ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_lambda :
( Types.expr, Types.ty_expr ) Types.lambda ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_let_in :
Types.let_in ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_list :
Types.expression list ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_literal :
Types.literal ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_map :
(Types.expression * Types.expression) list ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_matching :
Types.matching ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_mod_in :
( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in' ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_module_accessor :
Types.expression_variable Types.module_access ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_raw_code :
Types.expr Types.raw_code ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_record :
Types.expression Types.label_map ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_recursive :
( Types.expr, Types.ty_expr ) Types.recursive ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_sequence :
Types.expr Types.sequence ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_set :
Types.expression list ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_skip : ?loc:Types.Location.t -> unit -> Types.expression
val e_tuple :
Types.expression list ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_type_abstraction :
Types.expr Types.type_abs ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_type_in :
( Types.expr, Types.ty_expr ) Types.type_in ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_update :
Types.expr Types.update ->
?loc:Types.Location.t ->
unit ->
Types.expression
val e_variable :
Types.expression_variable ->
?loc:Types.Location.t ->
unit ->
Types.expression
val map_e_accessor :
( Types.expr Types.accessor -> Types.expr Types.accessor ) ->
expression_content ->
expression_content
val map_e_application :
( Types.expr Types.application -> Types.expr Types.application ) ->
expression_content ->
expression_content
val map_e_ascription :
( ( Types.expr, Types.ty_expr ) Types.ascription ->
( Types.expr, Types.ty_expr ) Types.ascription ) ->
expression_content ->
expression_content
val map_e_assign :
( ( Types.expr, Types.ty_expr ) Types.assign ->
( Types.expr, Types.ty_expr ) Types.assign ) ->
expression_content ->
expression_content
val map_e_big_map :
( (Types.expression * Types.expression) list ->
(Types.expression * Types.expression) list ) ->
expression_content ->
expression_content
val map_e_cond :
( Types.expr Types.conditional -> Types.expr Types.conditional ) ->
expression_content ->
expression_content
val map_e_constant :
( Types.expr Types.constant -> Types.expr Types.constant ) ->
expression_content ->
expression_content
val map_e_constructor :
( Types.expr Types.constructor -> Types.expr Types.constructor ) ->
expression_content ->
expression_content
val map_e_lambda :
( ( Types.expr, Types.ty_expr ) Types.lambda ->
( Types.expr, Types.ty_expr ) Types.lambda ) ->
expression_content ->
expression_content
val map_e_let_in :
( Types.let_in -> Types.let_in ) ->
expression_content ->
expression_content
val map_e_list :
( Types.expression list -> Types.expression list ) ->
expression_content ->
expression_content
val map_e_literal :
( Types.literal -> Types.literal ) ->
expression_content ->
expression_content
val map_e_map :
( (Types.expression * Types.expression) list ->
(Types.expression * Types.expression) list ) ->
expression_content ->
expression_content
val map_e_matching :
( Types.matching -> Types.matching ) ->
expression_content ->
expression_content
val map_e_mod_in :
( ( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in' ->
( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in' ) ->
expression_content ->
expression_content
val map_e_module_accessor :
( Types.expression_variable Types.module_access ->
Types.expression_variable Types.module_access ) ->
expression_content ->
expression_content
val map_e_raw_code :
( Types.expr Types.raw_code -> Types.expr Types.raw_code ) ->
expression_content ->
expression_content
val map_e_record :
( Types.expression Types.label_map -> Types.expression Types.label_map ) ->
expression_content ->
expression_content
val map_e_recursive :
( ( Types.expr, Types.ty_expr ) Types.recursive ->
( Types.expr, Types.ty_expr ) Types.recursive ) ->
expression_content ->
expression_content
val map_e_sequence :
( Types.expr Types.sequence -> Types.expr Types.sequence ) ->
expression_content ->
expression_content
val map_e_set :
( Types.expression list -> Types.expression list ) ->
expression_content ->
expression_content
val map_e_skip : expression_content -> expression_content
val map_e_tuple :
( Types.expression list -> Types.expression list ) ->
expression_content ->
expression_content
val map_e_type_abstraction :
( Types.expr Types.type_abs -> Types.expr Types.type_abs ) ->
expression_content ->
expression_content
val map_e_type_in :
( ( Types.expr, Types.ty_expr ) Types.type_in ->
( Types.expr, Types.ty_expr ) Types.type_in ) ->
expression_content ->
expression_content
val map_e_update :
( Types.expr Types.update -> Types.expr Types.update ) ->
expression_content ->
expression_content
val map_e_variable :
( Types.expression_variable -> Types.expression_variable ) ->
expression_content ->
expression_content
val set_e_accessor :
expression_content ->
Types.expr Types.accessor ->
expression_content
val set_e_application :
expression_content ->
Types.expr Types.application ->
expression_content
val set_e_ascription :
expression_content ->
( Types.expr, Types.ty_expr ) Types.ascription ->
expression_content
val set_e_assign :
expression_content ->
( Types.expr, Types.ty_expr ) Types.assign ->
expression_content
val set_e_big_map :
expression_content ->
(Types.expression * Types.expression) list ->
expression_content
val set_e_cond :
expression_content ->
Types.expr Types.conditional ->
expression_content
val set_e_constant :
expression_content ->
Types.expr Types.constant ->
expression_content
val set_e_constructor :
expression_content ->
Types.expr Types.constructor ->
expression_content
val set_e_lambda :
expression_content ->
( Types.expr, Types.ty_expr ) Types.lambda ->
expression_content
val set_e_let_in : expression_content -> Types.let_in -> expression_content
val set_e_list :
expression_content ->
Types.expression list ->
expression_content
val set_e_literal : expression_content -> Types.literal -> expression_content
val set_e_map :
expression_content ->
(Types.expression * Types.expression) list ->
expression_content
val set_e_matching : expression_content -> Types.matching -> expression_content
val set_e_mod_in :
expression_content ->
( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in' ->
expression_content
val set_e_module_accessor :
expression_content ->
Types.expression_variable Types.module_access ->
expression_content
val set_e_raw_code :
expression_content ->
Types.expr Types.raw_code ->
expression_content
val set_e_record :
expression_content ->
Types.expression Types.label_map ->
expression_content
val set_e_recursive :
expression_content ->
( Types.expr, Types.ty_expr ) Types.recursive ->
expression_content
val set_e_sequence :
expression_content ->
Types.expr Types.sequence ->
expression_content
val set_e_set :
expression_content ->
Types.expression list ->
expression_content
val set_e_skip : expression_content -> expression_content
val set_e_tuple :
expression_content ->
Types.expression list ->
expression_content
val set_e_type_abstraction :
expression_content ->
Types.expr Types.type_abs ->
expression_content
val set_e_type_in :
expression_content ->
( Types.expr, Types.ty_expr ) Types.type_in ->
expression_content
val set_e_update :
expression_content ->
Types.expr Types.update ->
expression_content
val set_e_variable :
expression_content ->
Types.expression_variable ->
expression_content
val is_e_accessor : Types.expression -> bool
val is_e_application : Types.expression -> bool
val is_e_ascription : Types.expression -> bool
val is_e_assign : Types.expression -> bool
val is_e_big_map : Types.expression -> bool
val is_e_cond : Types.expression -> bool
val is_e_constant : Types.expression -> bool
val is_e_constructor : Types.expression -> bool
val is_e_lambda : Types.expression -> bool
val is_e_let_in : Types.expression -> bool
val is_e_list : Types.expression -> bool
val is_e_literal : Types.expression -> bool
val is_e_map : Types.expression -> bool
val is_e_matching : Types.expression -> bool
val is_e_mod_in : Types.expression -> bool
val is_e_module_accessor : Types.expression -> bool
val is_e_raw_code : Types.expression -> bool
val is_e_record : Types.expression -> bool
val is_e_recursive : Types.expression -> bool
val is_e_sequence : Types.expression -> bool
val is_e_set : Types.expression -> bool
val is_e_skip : Types.expression -> bool
val is_e_tuple : Types.expression -> bool
val is_e_type_abstraction : Types.expression -> bool
val is_e_type_in : Types.expression -> bool
val is_e_update : Types.expression -> bool
val is_e_variable : Types.expression -> bool
val get_e_accessor_exn : Types.expression -> Types.expr Types.accessor
val get_e_application_exn : Types.expression -> Types.expr Types.application
val get_e_ascription_exn :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.ascription
val get_e_assign_exn :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.assign
val get_e_big_map_exn :
Types.expression ->
(Types.expression * Types.expression) list
val get_e_cond_exn : Types.expression -> Types.expr Types.conditional
val get_e_constant_exn : Types.expression -> Types.expr Types.constant
val get_e_constructor_exn : Types.expression -> Types.expr Types.constructor
val get_e_lambda_exn :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.lambda
val get_e_let_in_exn : Types.expression -> Types.let_in
val get_e_list_exn : Types.expression -> Types.expression list
val get_e_literal_exn : Types.expression -> Types.literal
val get_e_map_exn :
Types.expression ->
(Types.expression * Types.expression) list
val get_e_matching_exn : Types.expression -> Types.matching
val get_e_mod_in_exn :
Types.expression ->
( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in'
val get_e_module_accessor_exn :
Types.expression ->
Types.expression_variable Types.module_access
val get_e_raw_code_exn : Types.expression -> Types.expr Types.raw_code
val get_e_record_exn : Types.expression -> Types.expression Types.label_map
val get_e_recursive_exn :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.recursive
val get_e_sequence_exn : Types.expression -> Types.expr Types.sequence
val get_e_set_exn : Types.expression -> Types.expression list
val get_e_skip_exn : Types.expression -> unit
val get_e_tuple_exn : Types.expression -> Types.expression list
val get_e_type_abstraction_exn : Types.expression -> Types.expr Types.type_abs
val get_e_type_in_exn :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.type_in
val get_e_update_exn : Types.expression -> Types.expr Types.update
val get_e_variable_exn : Types.expression -> Types.expression_variable
val get_e_accessor_opt : Types.expression -> Types.expr Types.accessor option
val get_e_application_opt :
Types.expression ->
Types.expr Types.application option
val get_e_ascription_opt :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.ascription option
val get_e_assign_opt :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.assign option
val get_e_big_map_opt :
Types.expression ->
(Types.expression * Types.expression) list option
val get_e_cond_opt : Types.expression -> Types.expr Types.conditional option
val get_e_constant_opt : Types.expression -> Types.expr Types.constant option
val get_e_constructor_opt :
Types.expression ->
Types.expr Types.constructor option
val get_e_lambda_opt :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.lambda option
val get_e_let_in_opt : Types.expression -> Types.let_in option
val get_e_list_opt : Types.expression -> Types.expression list option
val get_e_literal_opt : Types.expression -> Types.literal option
val get_e_map_opt :
Types.expression ->
(Types.expression * Types.expression) list option
val get_e_matching_opt : Types.expression -> Types.matching option
val get_e_mod_in_opt :
Types.expression ->
( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in'
option
val get_e_module_accessor_opt :
Types.expression ->
Types.expression_variable Types.module_access option
val get_e_raw_code_opt : Types.expression -> Types.expr Types.raw_code option
val get_e_record_opt :
Types.expression ->
Types.expression Types.label_map option
val get_e_recursive_opt :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.recursive option
val get_e_sequence_opt : Types.expression -> Types.expr Types.sequence option
val get_e_set_opt : Types.expression -> Types.expression list option
val get_e_skip_opt : Types.expression -> unit option
val get_e_tuple_opt : Types.expression -> Types.expression list option
val get_e_type_abstraction_opt :
Types.expression ->
Types.expr Types.type_abs option
val get_e_type_in_opt :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.type_in option
val get_e_update_opt : Types.expression -> Types.expr Types.update option
val get_e_variable_opt : Types.expression -> Types.expression_variable option
val get_e_accessor : Types.expression -> Types.expr Types.accessor option
val get_e_application : Types.expression -> Types.expr Types.application option
val get_e_ascription :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.ascription option
val get_e_assign :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.assign option
val get_e_big_map :
Types.expression ->
(Types.expression * Types.expression) list option
val get_e_cond : Types.expression -> Types.expr Types.conditional option
val get_e_constant : Types.expression -> Types.expr Types.constant option
val get_e_constructor : Types.expression -> Types.expr Types.constructor option
val get_e_lambda :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.lambda option
val get_e_let_in : Types.expression -> Types.let_in option
val get_e_list : Types.expression -> Types.expression list option
val get_e_literal : Types.expression -> Types.literal option
val get_e_map :
Types.expression ->
(Types.expression * Types.expression) list option
val get_e_matching : Types.expression -> Types.matching option
val get_e_mod_in :
Types.expression ->
( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in'
option
val get_e_module_accessor :
Types.expression ->
Types.expression_variable Types.module_access option
val get_e_raw_code : Types.expression -> Types.expr Types.raw_code option
val get_e_record : Types.expression -> Types.expression Types.label_map option
val get_e_recursive :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.recursive option
val get_e_sequence : Types.expression -> Types.expr Types.sequence option
val get_e_set : Types.expression -> Types.expression list option
val get_e_skip : Types.expression -> unit option
val get_e_tuple : Types.expression -> Types.expression list option
val get_e_type_abstraction :
Types.expression ->
Types.expr Types.type_abs option
val get_e_type_in :
Types.expression ->
( Types.expr, Types.ty_expr ) Types.type_in option
val get_e_update : Types.expression -> Types.expr Types.update option
val get_e_variable : Types.expression -> Types.expression_variable option
val expression_content_destruct :
expression_content ->
e_accessor:( Types.expr Types.accessor -> 'a ) ->
e_application:( Types.expr Types.application -> 'b ) ->
e_ascription:( ( Types.expr, Types.ty_expr ) Types.ascription -> 'c ) ->
e_assign:( ( Types.expr, Types.ty_expr ) Types.assign -> 'd ) ->
e_big_map:( (Types.expression * Types.expression) list -> 'e ) ->
e_cond:( Types.expr Types.conditional -> 'f ) ->
e_constant:( Types.expr Types.constant -> 'g ) ->
e_constructor:( Types.expr Types.constructor -> 'h ) ->
e_lambda:( ( Types.expr, Types.ty_expr ) Types.lambda -> 'i ) ->
e_let_in:( Types.let_in -> 'j ) ->
e_list:( Types.expression list -> 'k ) ->
e_literal:( Types.literal -> 'l ) ->
e_map:( (Types.expression * Types.expression) list -> 'm ) ->
e_matching:( Types.matching -> 'n ) ->
e_mod_in:
( ( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in' ->
'o ) ->
e_module_accessor:( Types.expression_variable Types.module_access -> 'p ) ->
e_raw_code:( Types.expr Types.raw_code -> 'q ) ->
e_record:( Types.expression Types.label_map -> 'r ) ->
e_recursive:( ( Types.expr, Types.ty_expr ) Types.recursive -> 's ) ->
e_sequence:( Types.expr Types.sequence -> 't ) ->
e_set:( Types.expression list -> 'u ) ->
e_skip:( unit -> 'v ) ->
e_tuple:( Types.expression list -> 'w ) ->
e_type_abstraction:( Types.expr Types.type_abs -> 'x ) ->
e_type_in:( ( Types.expr, Types.ty_expr ) Types.type_in -> 'y ) ->
e_update:( Types.expr Types.update -> 'z ) ->
e_variable:( Types.expression_variable -> 'a1 ) ->
'b1
val expression_content_destruct_tpl :
expression_content ->
( Types.expr Types.accessor -> 'a ) ->
( Types.expr Types.application -> 'b ) ->
( ( Types.expr, Types.ty_expr ) Types.ascription -> 'c ) ->
( ( Types.expr, Types.ty_expr ) Types.assign -> 'd ) ->
( (Types.expression * Types.expression) list -> 'e ) ->
( Types.expr Types.conditional -> 'f ) ->
( Types.expr Types.constant -> 'g ) ->
( Types.expr Types.constructor -> 'h ) ->
( ( Types.expr, Types.ty_expr ) Types.lambda -> 'i ) ->
( Types.let_in -> 'j ) ->
( Types.expression list -> 'k ) ->
( Types.literal -> 'l ) ->
( (Types.expression * Types.expression) list -> 'm ) ->
( Types.matching -> 'n ) ->
( ( Types.expr,
Types.ty_expr,
Types.attributes,
Types.attributes,
Types.attributes )
Types.mod_in' ->
'o ) ->
( Types.expression_variable Types.module_access -> 'p ) ->
( Types.expr Types.raw_code -> 'q ) ->
( Types.expression Types.label_map -> 'r ) ->
( ( Types.expr, Types.ty_expr ) Types.recursive -> 's ) ->
( Types.expr Types.sequence -> 't ) ->
( Types.expression list -> 'u ) ->
( unit -> 'v ) ->
( Types.expression list -> 'w ) ->
( Types.expr Types.type_abs -> 'x ) ->
( ( Types.expr, Types.ty_expr ) Types.type_in -> 'y ) ->
( Types.expr Types.update -> 'z ) ->
( Types.expression_variable -> 'a1 ) ->
'b1
type type_content = Types.type_content =
| T_variable of Types.type_variable |
| T_sum of Types.ty_expr Types.rows |
| T_record of Types.ty_expr Types.rows |
| T_tuple of Types.ty_expr list |
| T_arrow of Types.ty_expr Types.arrow |
| T_app of Types.ty_expr Types.type_app |
| T_module_accessor of Types.type_variable Types.module_access |
| T_singleton of Types.literal |
| T_abstraction of Types.ty_expr Types.abstraction |
| T_for_all of Types.ty_expr Types.abstraction |
val make_t :
?loc:Types.Location.t ->
Types.type_content ->
Types.type_expression
val get : Types.type_expression -> Types.type_content
type nonrec t_abstraction = Types.ty_expr Types.abstraction
type nonrec t_app = Types.ty_expr Types.type_app
type nonrec t_arrow = Types.ty_expr Types.arrow
type nonrec t_for_all = Types.ty_expr Types.abstraction
type nonrec t_module_accessor = Types.type_variable Types.module_access
type nonrec t_record = Types.ty_expr Types.rows
type nonrec t_singleton = Types.literal
type nonrec t_sum = Types.ty_expr Types.rows
type nonrec t_tuple = Types.ty_expr list
type nonrec t_variable = Types.type_variable
val t_abstraction :
Types.ty_expr Types.abstraction ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_app :
Types.ty_expr Types.type_app ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_arrow :
Types.ty_expr Types.arrow ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_for_all :
Types.ty_expr Types.abstraction ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_module_accessor :
Types.type_variable Types.module_access ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_record :
Types.ty_expr Types.rows ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_singleton :
Types.literal ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_sum :
Types.ty_expr Types.rows ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_tuple :
Types.ty_expr list ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val t_variable :
Types.type_variable ->
?loc:Types.Location.t ->
unit ->
Types.type_expression
val map_t_abstraction :
( Types.ty_expr Types.abstraction -> Types.ty_expr Types.abstraction ) ->
type_content ->
type_content
val map_t_app :
( Types.ty_expr Types.type_app -> Types.ty_expr Types.type_app ) ->
type_content ->
type_content
val map_t_arrow :
( Types.ty_expr Types.arrow -> Types.ty_expr Types.arrow ) ->
type_content ->
type_content
val map_t_for_all :
( Types.ty_expr Types.abstraction -> Types.ty_expr Types.abstraction ) ->
type_content ->
type_content
val map_t_module_accessor :
( Types.type_variable Types.module_access ->
Types.type_variable Types.module_access ) ->
type_content ->
type_content
val map_t_record :
( Types.ty_expr Types.rows -> Types.ty_expr Types.rows ) ->
type_content ->
type_content
val map_t_singleton :
( Types.literal -> Types.literal ) ->
type_content ->
type_content
val map_t_sum :
( Types.ty_expr Types.rows -> Types.ty_expr Types.rows ) ->
type_content ->
type_content
val map_t_tuple :
( Types.ty_expr list -> Types.ty_expr list ) ->
type_content ->
type_content
val map_t_variable :
( Types.type_variable -> Types.type_variable ) ->
type_content ->
type_content
val set_t_abstraction :
type_content ->
Types.ty_expr Types.abstraction ->
type_content
val set_t_app : type_content -> Types.ty_expr Types.type_app -> type_content
val set_t_arrow : type_content -> Types.ty_expr Types.arrow -> type_content
val set_t_for_all :
type_content ->
Types.ty_expr Types.abstraction ->
type_content
val set_t_module_accessor :
type_content ->
Types.type_variable Types.module_access ->
type_content
val set_t_record : type_content -> Types.ty_expr Types.rows -> type_content
val set_t_singleton : type_content -> Types.literal -> type_content
val set_t_sum : type_content -> Types.ty_expr Types.rows -> type_content
val set_t_tuple : type_content -> Types.ty_expr list -> type_content
val set_t_variable : type_content -> Types.type_variable -> type_content
val is_t_abstraction : Types.type_expression -> bool
val is_t_app : Types.type_expression -> bool
val is_t_arrow : Types.type_expression -> bool
val is_t_for_all : Types.type_expression -> bool
val is_t_module_accessor : Types.type_expression -> bool
val is_t_record : Types.type_expression -> bool
val is_t_singleton : Types.type_expression -> bool
val is_t_sum : Types.type_expression -> bool
val is_t_tuple : Types.type_expression -> bool
val is_t_variable : Types.type_expression -> bool
val get_t_abstraction_exn :
Types.type_expression ->
Types.ty_expr Types.abstraction
val get_t_app_exn : Types.type_expression -> Types.ty_expr Types.type_app
val get_t_arrow_exn : Types.type_expression -> Types.ty_expr Types.arrow
val get_t_for_all_exn :
Types.type_expression ->
Types.ty_expr Types.abstraction
val get_t_module_accessor_exn :
Types.type_expression ->
Types.type_variable Types.module_access
val get_t_record_exn : Types.type_expression -> Types.ty_expr Types.rows
val get_t_singleton_exn : Types.type_expression -> Types.literal
val get_t_sum_exn : Types.type_expression -> Types.ty_expr Types.rows
val get_t_tuple_exn : Types.type_expression -> Types.ty_expr list
val get_t_variable_exn : Types.type_expression -> Types.type_variable
val get_t_abstraction_opt :
Types.type_expression ->
Types.ty_expr Types.abstraction option
val get_t_app_opt :
Types.type_expression ->
Types.ty_expr Types.type_app option
val get_t_arrow_opt : Types.type_expression -> Types.ty_expr Types.arrow option
val get_t_for_all_opt :
Types.type_expression ->
Types.ty_expr Types.abstraction option
val get_t_module_accessor_opt :
Types.type_expression ->
Types.type_variable Types.module_access option
val get_t_record_opt : Types.type_expression -> Types.ty_expr Types.rows option
val get_t_singleton_opt : Types.type_expression -> Types.literal option
val get_t_sum_opt : Types.type_expression -> Types.ty_expr Types.rows option
val get_t_tuple_opt : Types.type_expression -> Types.ty_expr list option
val get_t_variable_opt : Types.type_expression -> Types.type_variable option
val get_t_abstraction :
Types.type_expression ->
Types.ty_expr Types.abstraction option
val get_t_app : Types.type_expression -> Types.ty_expr Types.type_app option
val get_t_arrow : Types.type_expression -> Types.ty_expr Types.arrow option
val get_t_for_all :
Types.type_expression ->
Types.ty_expr Types.abstraction option
val get_t_module_accessor :
Types.type_expression ->
Types.type_variable Types.module_access option
val get_t_record : Types.type_expression -> Types.ty_expr Types.rows option
val get_t_singleton : Types.type_expression -> Types.literal option
val get_t_sum : Types.type_expression -> Types.ty_expr Types.rows option
val get_t_tuple : Types.type_expression -> Types.ty_expr list option
val get_t_variable : Types.type_expression -> Types.type_variable option
val type_content_destruct :
type_content ->
t_abstraction:( Types.ty_expr Types.abstraction -> 'a ) ->
t_app:( Types.ty_expr Types.type_app -> 'b ) ->
t_arrow:( Types.ty_expr Types.arrow -> 'c ) ->
t_for_all:( Types.ty_expr Types.abstraction -> 'd ) ->
t_module_accessor:( Types.type_variable Types.module_access -> 'e ) ->
t_record:( Types.ty_expr Types.rows -> 'f ) ->
t_singleton:( Types.literal -> 'g ) ->
t_sum:( Types.ty_expr Types.rows -> 'h ) ->
t_tuple:( Types.ty_expr list -> 'i ) ->
t_variable:( Types.type_variable -> 'j ) ->
'k
val type_content_destruct_tpl :
type_content ->
( Types.ty_expr Types.abstraction -> 'a ) ->
( Types.ty_expr Types.type_app -> 'b ) ->
( Types.ty_expr Types.arrow -> 'c ) ->
( Types.ty_expr Types.abstraction -> 'd ) ->
( Types.type_variable Types.module_access -> 'e ) ->
( Types.ty_expr Types.rows -> 'f ) ->
( Types.literal -> 'g ) ->
( Types.ty_expr Types.rows -> 'h ) ->
( Types.ty_expr list -> 'i ) ->
( Types.type_variable -> 'j ) ->
'k
val t_variable :
?loc:Types.Location.t ->
Types.type_variable ->
Types.type_expression
val t_app :
?loc:Types.Location.t ->
Types.type_variable ->
Types.ty_expr list ->
Types.type_expression
val t_string : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_bytes : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_int : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_operation : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_nat : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_tez : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_unit : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_address : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_signature : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_key : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_key_hash : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_timestamp : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_list : ?loc:Types.Location.t -> Types.ty_expr -> Types.type_expression
val t_set : ?loc:Types.Location.t -> Types.ty_expr -> Types.type_expression
val t_contract :
?loc:Types.Location.t ->
Types.ty_expr ->
Types.type_expression
val t_map :
?loc:Types.Location.t ->
Types.ty_expr ->
Types.ty_expr ->
Types.type_expression
val t_big_map :
?loc:Types.Location.t ->
Types.ty_expr ->
Types.ty_expr ->
Types.type_expression
val t_record_ez :
?loc:Types.Location.t ->
(string * Types.ty_expr Types.row_element) list ->
Types.type_expression
val t_record :
?loc:Types.Location.t ->
Types.ty_expr Types.row_element SMap.t ->
Types.type_expression
val t_pair :
?loc:Types.Location.t ->
(Types.ty_expr * Types.ty_expr) ->
Types.type_expression
val t_tuple :
?loc:Types.Location.t ->
Types.ty_expr Types.row_element list ->
Types.type_expression
val t_sum_ez :
?loc:Types.Location.t ->
(string * Types.ty_expr Types.row_element) list ->
Types.type_expression
val t_sum :
?loc:Types.Location.t ->
Types.ty_expr Types.row_element SMap.t ->
Types.type_expression
val t_bool : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_arrow :
?loc:Types.Location.t ->
Types.ty_expr ->
Types.ty_expr ->
Types.type_expression
val e_literal : ?loc:Types.Location.t -> Types.literal -> Types.expression
val e_int : ?loc:Types.Location.t -> Types.z -> Types.expression
val e_nat : ?loc:Types.Location.t -> Types.z -> Types.expression
val e_timestamp : ?loc:Types.Location.t -> Types.z -> Types.expression
val e_string : ?loc:Types.Location.t -> Types.ligo_string -> Types.expression
val e_address : ?loc:Types.Location.t -> string -> Types.expression
val e_mutez : ?loc:Types.Location.t -> Types.z -> Types.expression
val e_signature : ?loc:Types.Location.t -> string -> Types.expression
val e_key : ?loc:Types.Location.t -> string -> Types.expression
val e_key_hash : ?loc:Types.Location.t -> string -> Types.expression
val e_chain_id : ?loc:Types.Location.t -> string -> Types.expression
val e_unit : ?loc:Types.Location.t -> unit -> Types.expression
val e'_bytes : string -> expression_content
val e_bytes_hex : ?loc:Types.Location.t -> string -> Types.expression
val e_bytes_raw : ?loc:Types.Location.t -> bytes -> Types.expression
val e_bytes_string : ?loc:Types.Location.t -> string -> Types.expression
val e_constant :
?loc:Types.Location.t ->
Types.constant' ->
Types.expr list ->
Types.expression
val e_variable :
?loc:Types.Location.t ->
Types.expression_variable ->
Types.expression
val e_application :
?loc:Types.Location.t ->
Types.expr ->
Types.expr ->
Types.expression
val e_lambda :
?loc:Types.Location.t ->
Types.ty_expr Types.binder ->
Types.ty_expr option ->
Types.expr ->
Types.expression
val e_lambda_ez :
?loc:Types.Location.t ->
Types.expression_variable ->
?ascr:Types.ty_expr ->
?const_or_var:[ `Const | `Var ] ->
Types.ty_expr option ->
Types.expr ->
Types.expression
val e_recursive :
?loc:Types.Location.t ->
Types.expression_variable ->
Types.ty_expr ->
( Types.expr, Types.ty_expr ) Types.lambda ->
Types.expression
val e_let_in :
?loc:Types.Location.t ->
Types.ty_expr Types.binder ->
bool ->
Types.attributes ->
Types.expression ->
Types.expression ->
Types.expression
val e_let_in_ez :
?loc:Types.Location.t ->
Types.expression_variable ->
?ascr:Types.ty_expr ->
?const_or_var:[ `Const | `Var ] ->
bool ->
Types.attributes ->
Types.expression ->
Types.expression ->
Types.expression
val e_raw_code :
?loc:Types.Location.t ->
string ->
Types.expr ->
Types.expression
val e_constructor :
?loc:Types.Location.t ->
Types.label ->
Types.expr ->
Types.expression
val e_matching :
?loc:Types.Location.t ->
Types.expression ->
( Types.expression, Types.type_expression ) Types.match_case list ->
Types.expression
val e_record :
?loc:Types.Location.t ->
Types.expression Types.label_map ->
Types.expression
val e_accessor :
?loc:Types.Location.t ->
Types.expr ->
Types.expr Types.access list ->
Types.expression
val e_update :
?loc:Types.Location.t ->
Types.expr ->
Types.expr Types.access list ->
Types.expr ->
Types.expression
val e_annotation :
?loc:Types.Location.t ->
Types.expr ->
Types.ty_expr ->
Types.expression
val e_tuple :
?loc:Types.Location.t ->
Types.expression list ->
Types.expression
val e_pair :
?loc:Types.Location.t ->
Types.expression ->
Types.expression ->
Types.expression
val e_cond :
?loc:Types.Location.t ->
Types.expr ->
Types.expr ->
Types.expr ->
Types.expression
val e_sequence :
?loc:Types.Location.t ->
Types.expr ->
Types.expr ->
Types.expression
val e_skip : ?loc:Types.Location.t -> unit -> Types.expression
val e_list : ?loc:Types.Location.t -> Types.expression list -> Types.expression
val e_set : ?loc:Types.Location.t -> Types.expression list -> Types.expression
val e_map :
?loc:Types.Location.t ->
(Types.expression * Types.expression) list ->
Types.expression
val e_big_map :
?loc:Types.Location.t ->
(Types.expression * Types.expression) list ->
Types.expression
val e_bool : ?loc:Types.Location.t -> bool -> Types.expression
val make_option_typed :
?loc:Types.Location.t ->
Types.expr ->
Types.ty_expr option ->
Types.expr
val e_typed_list :
?loc:Types.Location.t ->
Types.expression list ->
Types.ty_expr ->
Types.expression
val e_typed_map :
?loc:Types.Location.t ->
(Types.expression * Types.expression) list ->
Types.ty_expr ->
Types.ty_expr ->
Types.expression
val e_typed_big_map :
?loc:Types.Location.t ->
(Types.expression * Types.expression) list ->
Types.ty_expr ->
Types.ty_expr ->
Types.expression
val e_typed_set :
?loc:Types.Location.t ->
Types.expression list ->
Types.ty_expr ->
Types.expression
val get_e_accessor :
expression_content ->
(Types.expr * Types.expr Types.access list) option
val assert_e_accessor : expression_content -> unit option
val get_e_pair :
expression_content ->
(Types.expression * Types.expression) option
val get_e_list : expression_content -> Types.expression list option
val get_e_tuple : expression_content -> Types.expression list option
val extract_pair :
Types.expression ->
(Types.expression * Types.expression) option
val extract_list : Types.expression -> Types.expression list option
val extract_record :
Types.expression ->
(Types.label * Types.expression) list option
val extract_map :
Types.expression ->
(Types.expression * Types.expression) list option
module Types : sig ... end
module PP : sig ... end
module Yojson : sig ... end
module Combinators : sig ... end
module Formatter : sig ... end