Module Flambda2_parser.Fexpr_prim_descr
type param = Fexpr.prim_paramtype t = Fexpr.prim_optype decode_env = Fexpr_to_flambda_commons.envtype encode_env = Flambda_to_fexpr_commons.Env.tgeneral 2-way translation between fexpr-related and flambda-related types
type ('a, 'b) map_lens = ('a, 'b, 'a) lensreversible lens
type 'p value_lens = ('p, string Fexpr.located) map_lensfexpr primitive parameter payload conversion
type 'p prim_lens =
('p,
t,
Flambda2_term_basics.Simple.t list ->
Flambda2_terms.Flambda_primitive.t)
lensFull primitive translation assuming prior pattern-matching
type 'p conv = encode_env -> 'p -> treconversion to fexpr
type 'p cons0 =
decode_env ->
'p ->
Flambda2_terms.Flambda_primitive.nullary_primitivetype 'p cons1 =
decode_env ->
'p ->
Flambda2_terms.Flambda_primitive.unary_primitivetype 'p cons2 =
decode_env ->
'p ->
Flambda2_terms.Flambda_primitive.binary_primitivetype 'p cons3 =
decode_env ->
'p ->
Flambda2_terms.Flambda_primitive.ternary_primitivetype 'p cons4 =
decode_env ->
'p ->
Flambda2_terms.Flambda_primitive.quaternary_primitivetype 'p consN =
decode_env ->
'p ->
int ->
Flambda2_terms.Flambda_primitive.variadic_primitiveFinal boxing to primitive from parameters values
The variadic version also provides the actual number of arguments
val wrap_loc : 'a -> 'a Fexpr.locatedval unwrap_loc : 'a Fexpr.located -> 'amodule Describe : sig ... endAll the necessary smart constructors to describe the structure of a fexpr primitive and its conversion from/to flambda.
val lookup_prim :
t ->
(decode_env ->
t ->
Flambda2_term_basics.Simple.t list ->
Flambda2_terms.Flambda_primitive.t)
optionFetch primitive conversion function from registered descriptions