Sarek_ppx_lib.Sarek_tailrecmodule Analysis = Sarek_tailrec_analysisRe-export analysis functions for use by other modules
val count_recursive_calls : string -> Sarek_typed_ast.texpr -> intRe-export commonly used analysis functions
val is_tail_recursive : string -> Sarek_typed_ast.texpr -> boolval analyze_recursion :
string ->
Sarek_typed_ast.texpr ->
Sarek_tailrec_analysis.recursion_infoMaximum inline depth for bounded recursion. Beyond this, we refuse to compile as it would generate too much code.
val extract_pragma :
Sarek_typed_ast.texpr ->
string list option * Sarek_typed_ast.texprExtract pragma options and inner body from a function body. Returns (Some opts, inner_body) if body is TEPragma, (None, body) otherwise.
val transform_kernel : Sarek_typed_ast.tkernel -> Sarek_typed_ast.tkernelTransform all recursive module functions in a kernel:
"sarek.inline N" is inlined N timesThis pass is run after type checking and before lowering to Kirc.