type primitive = - | Pbytes_to_string
- | Pbytes_of_string
- | Pignore
- | Pgetglobal of Ident.t
- | Psetglobal of Ident.t
- | Pmakeblock of int * Asttypes.mutable_flag * block_shape
- | Pfield of int * immediate_or_pointer * Asttypes.mutable_flag
- | Pfield_computed
- | Psetfield of int * immediate_or_pointer * initialization_or_assignment
- | Psetfield_computed of immediate_or_pointer * initialization_or_assignment
- | Pfloatfield of int
- | Psetfloatfield of int * initialization_or_assignment
- | Pduprecord of Types.record_representation * int
- | Prunstack
- | Pperform
- | Presume
- | Preperform
- | Pccall of Primitive.description
- | Praise of raise_kind
- | Psequand
- | Psequor
- | Pnot
- | Pnegint
- | Paddint
- | Psubint
- | Pmulint
- | Pdivint of is_safe
- | Pmodint of is_safe
- | Pandint
- | Porint
- | Pxorint
- | Plslint
- | Plsrint
- | Pasrint
- | Pintcomp of integer_comparison
- | Pcompare_ints
- | Pcompare_floats
- | Pcompare_bints of boxed_integer
- | Poffsetint of int
- | Poffsetref of int
- | Pintoffloat
- | Pfloatofint
- | Pnegfloat
- | Pabsfloat
- | Paddfloat
- | Psubfloat
- | Pmulfloat
- | Pdivfloat
- | Pfloatcomp of float_comparison
- | Pstringlength
- | Pstringrefu
- | Pstringrefs
- | Pbyteslength
- | Pbytesrefu
- | Pbytessetu
- | Pbytesrefs
- | Pbytessets
- | Pmakearray of array_kind * Asttypes.mutable_flag
- | Pduparray of array_kind * Asttypes.mutable_flag(*- For *)- Pduparray, the argument must be an immutable array. The arguments of- Pduparraygive the kind and mutability of the array being *produced* by the duplication.
- | Parraylength of array_kind
- | Parrayrefu of array_kind
- | Parraysetu of array_kind
- | Parrayrefs of array_kind
- | Parraysets of array_kind
- | Pisint
- | Pisout
- | Pbintofint of boxed_integer
- | Pintofbint of boxed_integer
- | Pcvtbint of boxed_integer * boxed_integer
- | Pnegbint of boxed_integer
- | Paddbint of boxed_integer
- | Psubbint of boxed_integer
- | Pmulbint of boxed_integer
- | Pdivbint of {- size : boxed_integer;
- is_safe : is_safe;
 - }
- | Pmodbint of {- size : boxed_integer;
- is_safe : is_safe;
 - }
- | Pandbint of boxed_integer
- | Porbint of boxed_integer
- | Pxorbint of boxed_integer
- | Plslbint of boxed_integer
- | Plsrbint of boxed_integer
- | Pasrbint of boxed_integer
- | Pbintcomp of boxed_integer * integer_comparison
- | Pbigarrayref of bool * int * bigarray_kind * bigarray_layout
- | Pbigarrayset of bool * int * bigarray_kind * bigarray_layout
- | Pbigarraydim of int
- | Pstring_load_16 of bool
- | Pstring_load_32 of bool
- | Pstring_load_64 of bool
- | Pbytes_load_16 of bool
- | Pbytes_load_32 of bool
- | Pbytes_load_64 of bool
- | Pbytes_set_16 of bool
- | Pbytes_set_32 of bool
- | Pbytes_set_64 of bool
- | Pbigstring_load_16 of bool
- | Pbigstring_load_32 of bool
- | Pbigstring_load_64 of bool
- | Pbigstring_set_16 of bool
- | Pbigstring_set_32 of bool
- | Pbigstring_set_64 of bool
- | Pctconst of compile_time_constant
- | Pbswap16
- | Pbbswap of boxed_integer
- | Pint_as_pointer
- | Patomic_load of {- immediate_or_pointer : immediate_or_pointer;
 - }
- | Patomic_exchange
- | Patomic_cas
- | Patomic_fetch_add
- | Popaque
- | Pdls_get
and block_shape = value_kind list optionval equal_value_kind : value_kind -> value_kind -> boolval equal_boxed_integer : boxed_integer -> boxed_integer -> booltype structured_constant = - | Const_base of Asttypes.constant
- | Const_block of int * structured_constant list
- | Const_float_array of string list
- | Const_immstring of string
val equal_inline_attribute : inline_attribute -> inline_attribute -> boolval equal_specialise_attribute : 
  specialise_attribute ->
  specialise_attribute ->
  booltype function_attribute = {- inline : inline_attribute;
- specialise : specialise_attribute;
- local : local_attribute;
- poll : poll_attribute;
- is_a_functor : bool;
- stub : bool;
- tmc_candidate : bool;
- may_fuse_arity : bool;
}type scoped_location = Debuginfo.Scoped_location.ttype lambda = - | Lvar of Ident.t
- | Lmutvar of Ident.t
- | Lconst of structured_constant
- | Lapply of lambda_apply
- | Lfunction of lfunction
- | Llet of let_kind * value_kind * Ident.t * lambda * lambda
- | Lmutlet of value_kind * Ident.t * lambda * lambda
- | Lletrec of rec_binding list * lambda
- | Lprim of primitive * lambda list * scoped_location
- | Lswitch of lambda * lambda_switch * scoped_location
- | Lstringswitch of lambda * (string * lambda) list * lambda option * scoped_location
- | Lstaticraise of int * lambda list
- | Lstaticcatch of lambda * int * (Ident.t * value_kind) list * lambda
- | Ltrywith of lambda * Ident.t * lambda
- | Lifthenelse of lambda * lambda * lambda
- | Lsequence of lambda * lambda
- | Lwhile of lambda * lambda
- | Lfor of Ident.t * lambda * lambda * Asttypes.direction_flag * lambda
- | Lassign of Ident.t * lambda
- | Lsend of meth_kind * lambda * lambda * lambda list * scoped_location
- | Levent of lambda * lambda_event
- | Lifused of Ident.t * lambda
and lfunction = private {- kind : function_kind;
- params : (Ident.t * value_kind) list;
- return : value_kind;
- body : lambda;
- attr : function_attribute;
- loc : scoped_location;
}and lambda_apply = {- ap_func : lambda;
- ap_args : lambda list;
- ap_loc : scoped_location;
- ap_tailcall : tailcall_attribute;
- ap_inlined : inline_attribute;
- ap_specialised : specialise_attribute;
}and lambda_event = {- lev_loc : scoped_location;
- lev_kind : lambda_event_kind;
- lev_repr : int ref option;
- lev_env : Env.t;
}type program = {- module_ident : Ident.t;
- main_module_block_size : int;
- required_globals : Ident.Set.t;
- code : lambda;
}val const_unit : structured_constantval const_int : int -> structured_constantval lambda_unit : lambdaval dummy_constant : lambdadummy_constant produces a plecholder value with a recognizable bit pattern (currently 0xBBBB in its tagged form)
val lfunction : 
  kind:function_kind ->
  params:(Ident.t * value_kind) list ->
  return:value_kind ->
  body:lambda ->
  attr:function_attribute ->
  loc:scoped_location ->
  lambdaval lfunction' : 
  kind:function_kind ->
  params:(Ident.t * value_kind) list ->
  return:value_kind ->
  body:lambda ->
  attr:function_attribute ->
  loc:scoped_location ->
  lfunctioniter_head_constructor f lam apply f to only the first level of sub expressions of lam. It does not recursively traverse the expression.
Same as iter_head_constructor, but use a different callback for sub-terms which are in tail position or not.
val transl_prim : string -> string -> lambdaTranslate a value from a persistent module. For instance:
transl_internal_value "CamlinternalLazy" "force"val free_variables : lambda -> Ident.Set.tval transl_module_path : scoped_location -> Env.t -> Path.t -> lambdaval transl_value_path : scoped_location -> Env.t -> Path.t -> lambdaval transl_extension_path : scoped_location -> Env.t -> Path.t -> lambdaval transl_class_path : scoped_location -> Env.t -> Path.t -> lambdaval subst : 
  (Ident.t -> Types.value_description -> Env.t -> Env.t) ->
  ?freshen_bound_variables:bool ->
  lambda Ident.Map.t ->
  lambda ->
  lambdasubst update_env ?freshen_bound_variables s lt applies a substitution s to the lambda-term lt.
Assumes that the image of the substitution is out of reach of the bound variables of the lambda-term (no capture).
update_env is used to refresh the environment contained in debug events.
freshen_bound_variables, which defaults to false, freshens the bound variables within lt.
val rename : Ident.t Ident.Map.t -> lambda -> lambdaA version of subst specialized for the case where we're just renaming idents.
Duplicate a term, freshening all locally-bound identifiers.
Bottom-up rewriting, applying the function on each node from the leaves to the root.
Apply the given transformation on the function's body
Rewrite each immediate sub-term with the function.
val negate_integer_comparison : integer_comparison -> integer_comparisonval swap_integer_comparison : integer_comparison -> integer_comparisonval negate_float_comparison : float_comparison -> float_comparisonval swap_float_comparison : float_comparison -> float_comparisonval default_function_attribute : function_attributeval default_stub_attribute : function_attributeval function_is_curried : lfunction -> boolval find_exact_application : 
  function_kind ->
  arity:int ->
  lambda list ->
  lambda list optionMaximal number of parameters for a function, or in other words, maximal length of the params list of a lfunction record. This is unlimited (max_int) for bytecode, but limited (currently to 126) for native code.
val staticfail : lambdaval is_guarded : lambda -> boolval raise_kind : raise_kind -> stringval merge_inline_attributes : 
  inline_attribute ->
  inline_attribute ->
  inline_attribute option
