Mini_c
module Types : sig ... end
module Formatter : sig ... end
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
module SMap : sig ... end
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; |
}
type ('exp, 'ty_exp) let_in = {
let_binder : 'ty_exp binder; |
rhs : 'exp; |
let_result : 'exp; |
attributes : attributes; |
}
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
type type_content =
| T_tuple of type_expression annotated list |
| T_or of type_expression annotated * type_expression annotated |
| T_function of type_expression * type_expression |
| T_base of type_base |
| T_map of type_expression * type_expression |
| T_big_map of type_expression * type_expression |
| T_list of type_expression |
| T_set of type_expression |
| T_contract of type_expression |
| T_ticket of type_expression |
| T_sapling_state of Z.t |
| T_sapling_transaction of Z.t |
| T_option of type_expression |
and type_expression = {
type_content : type_content; |
location : Location.t; |
source_type : Ast_typed.type_expression option; |
}
and type_base =
and environment_element = expression_variable * type_expression
and environment = environment_element list
and var_name = expression_variable
and fun_name = expression_variable
type value =
| D_unit |
| D_bool of bool |
| D_nat of Z.t |
| D_timestamp of Z.t |
| D_mutez of Z.t |
| D_int of Z.t |
| D_string of string |
| D_bytes of bytes |
| D_pair of value * value |
| D_left of value |
| D_right of value |
| D_some of value |
| D_none |
| D_map of (value * value) list |
| D_big_map of (value * value) list |
| D_ticket of value * value |
| D_list of value list |
| D_set of value list |
| D_operation of bytes |
and selector = var_name list
and expression_content =
and expression = {
content : expression_content; |
type_expression : type_expression; |
location : Location.t; |
}
type binder_meta = {
location : Location.t; |
name : string option; |
source_type : Ast_typed.type_expression option; |
}
val dummy_meta : meta
module PP : sig ... end
module Combinators : sig ... end
include module type of struct include Combinators end
module Expression : sig ... end
val get_bool : Types.value -> bool option
val get_int : Types.value -> Z.t option
val get_nat : Types.value -> Z.t option
val get_mutez : Types.value -> Z.t option
val get_timestamp : Types.value -> Z.t option
val get_string : Types.value -> string option
val get_bytes : Types.value -> bytes option
val get_unit : Types.value -> unit option
val get_option : Types.value -> Types.value option option
val get_map : Types.value -> (Types.value * Types.value) list option
val get_big_map : Types.value -> (Types.value * Types.value) list option
val get_list : Types.value -> Types.value list option
val get_set : Types.value -> Types.value list option
val get_function_with_ty :
Types.expression ->
(Types.anon_function * (Types.type_expression * Types.type_expression))
option
val get_function : Types.expression -> Types.anon_function option
val get_t_function :
Types.type_expression ->
(Types.type_expression * Types.type_expression) option
val get_t_option : Types.type_expression -> Types.type_expression option
val get_pair : Types.value -> (Types.value * Types.value) option
val get_t_pair :
Types.type_expression ->
(Types.type_expression * Types.type_expression) option
val get_t_tuple : Types.type_expression -> Types.type_expression list option
val get_t_or :
Types.type_expression ->
(Types.type_expression * Types.type_expression) option
val get_t_map :
Types.type_expression ->
(Types.type_expression * Types.type_expression) option
val get_t_big_map :
Types.type_expression ->
(Types.type_expression * Types.type_expression) option
val get_t_list : Types.type_expression -> Types.type_expression option
val get_t_set : Types.type_expression -> Types.type_expression option
val get_t_collection : Types.type_expression -> Types.type_expression option
val get_left : Types.value -> Types.value option
val get_right : Types.value -> Types.value option
val get_ticket : Types.value -> (Types.value * Types.value) option
val get_or : Types.value -> (bool * Types.value) option
val get_t_left : Types.type_expression -> Types.type_expression option
val get_t_right : Types.type_expression -> Types.type_expression option
val get_t_contract : Types.type_expression -> Types.type_expression option
val get_t_operation : Types.type_expression -> Types.type_expression option
val get_t_sapling_state : Types.type_expression -> Z.t option
val get_operation : Types.value -> bytes option
val t_int : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_unit : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_nat : ?loc:Types.Location.t -> unit -> Types.type_expression
val t_function :
?loc:Types.Location.t ->
Types.type_expression ->
Types.type_expression ->
Types.type_expression
val t_pair :
?loc:Types.Location.t ->
Types.type_expression Types.annotated ->
Types.type_expression Types.annotated ->
Types.type_expression
val t_union :
?loc:Types.Location.t ->
Types.type_expression Types.annotated ->
Types.type_expression Types.annotated ->
Types.type_expression
val t_tuple :
?loc:Types.Location.t ->
Types.type_expression Types.annotated list ->
Types.type_expression
val e_unit : ?loc:Types.Location.t -> unit -> Expression.t
val e_var_int :
?loc:Types.Location.t ->
Types.expression_variable ->
Expression.t
val e_let_in :
?loc:Types.Location.t ->
Types.expression_variable ->
Types.type_expression ->
Types.inline ->
Expression.t ->
Expression.t ->
Expression.t
val e_proj :
?loc:Types.Location.t ->
Types.expression ->
Types.type_expression ->
int ->
int ->
Types.expression
val e_tuple :
?loc:Types.Location.t ->
Types.expression list ->
Types.type_expression ->
Types.expression
val d_unit : Types.value
val e_var :
?loc:Types.Location.t ->
Types.var_name ->
Types.type_expression ->
Types.expression
val ec_pair : Types.expression -> Types.expression -> Types.expression_content
val e_application :
?loc:Types.Location.t ->
Types.expression ->
Types.type_expression ->
Types.expression ->
Types.expression
module Environment : sig ... end
module Free_variables : sig ... end