Shared_ast.Optimizations
Optimization passes for default calculus and lambda calculus programs and expressions
val optimize_expr :
Shared_ast__.Definitions.decl_ctx ->
((< < monomorphic : Shared_ast__.Definitions.yes
; polymorphic : Shared_ast__.Definitions.yes
; overloaded : Shared_ast__.Definitions.no
; resolved : Shared_ast__.Definitions.yes
; syntacticNames : Shared_ast__.Definitions.no
; scopeVarStates : Shared_ast__.Definitions.no
; scopeVarSimpl : Shared_ast__.Definitions.no
; explicitScopes : Shared_ast__.Definitions.no
; assertions : Shared_ast__.Definitions.yes >
; defaultTerms : 'a
; custom : Shared_ast__.Definitions.no >,
< < monomorphic : Shared_ast__.Definitions.yes
; polymorphic : Shared_ast__.Definitions.yes
; overloaded : Shared_ast__.Definitions.no
; resolved : Shared_ast__.Definitions.yes
; syntacticNames : Shared_ast__.Definitions.no
; scopeVarStates : Shared_ast__.Definitions.no
; scopeVarSimpl : Shared_ast__.Definitions.no
; explicitScopes : Shared_ast__.Definitions.no
; assertions : Shared_ast__.Definitions.yes >
; defaultTerms : 'a
; custom : Shared_ast__.Definitions.no >,
'm)
Shared_ast__.Definitions.base_gexpr,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed ->
((< < monomorphic : Shared_ast__.Definitions.yes
; polymorphic : Shared_ast__.Definitions.yes
; overloaded : Shared_ast__.Definitions.no
; resolved : Shared_ast__.Definitions.yes
; syntacticNames : Shared_ast__.Definitions.no
; scopeVarStates : Shared_ast__.Definitions.no
; scopeVarSimpl : Shared_ast__.Definitions.no
; explicitScopes : Shared_ast__.Definitions.no
; assertions : Shared_ast__.Definitions.yes >
; defaultTerms : 'a
; custom : Shared_ast__.Definitions.no >,
< < monomorphic : Shared_ast__.Definitions.yes
; polymorphic : Shared_ast__.Definitions.yes
; overloaded : Shared_ast__.Definitions.no
; resolved : Shared_ast__.Definitions.yes
; syntacticNames : Shared_ast__.Definitions.no
; scopeVarStates : Shared_ast__.Definitions.no
; scopeVarSimpl : Shared_ast__.Definitions.no
; explicitScopes : Shared_ast__.Definitions.no
; assertions : Shared_ast__.Definitions.yes >
; defaultTerms : 'a
; custom : Shared_ast__.Definitions.no >,
'm)
Shared_ast__.Definitions.base_gexpr
Bindlib.box,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed
val optimize_program :
((< < monomorphic : Shared_ast__.Definitions.yes
; polymorphic : Shared_ast__.Definitions.yes
; overloaded : Shared_ast__.Definitions.no
; resolved : Shared_ast__.Definitions.yes
; syntacticNames : Shared_ast__.Definitions.no
; scopeVarStates : Shared_ast__.Definitions.no
; scopeVarSimpl : Shared_ast__.Definitions.no
; explicitScopes : Shared_ast__.Definitions.no
; assertions : Shared_ast__.Definitions.yes >
; defaultTerms : 'a
; custom : Shared_ast__.Definitions.no >,
< < monomorphic : Shared_ast__.Definitions.yes
; polymorphic : Shared_ast__.Definitions.yes
; overloaded : Shared_ast__.Definitions.no
; resolved : Shared_ast__.Definitions.yes
; syntacticNames : Shared_ast__.Definitions.no
; scopeVarStates : Shared_ast__.Definitions.no
; scopeVarSimpl : Shared_ast__.Definitions.no
; explicitScopes : Shared_ast__.Definitions.no
; assertions : Shared_ast__.Definitions.yes >
; defaultTerms : 'a
; custom : Shared_ast__.Definitions.no >,
'm)
Shared_ast__.Definitions.base_gexpr,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed
Shared_ast__.Definitions.program ->
((< < monomorphic : Shared_ast__.Definitions.yes
; polymorphic : Shared_ast__.Definitions.yes
; overloaded : Shared_ast__.Definitions.no
; resolved : Shared_ast__.Definitions.yes
; syntacticNames : Shared_ast__.Definitions.no
; scopeVarStates : Shared_ast__.Definitions.no
; scopeVarSimpl : Shared_ast__.Definitions.no
; explicitScopes : Shared_ast__.Definitions.no
; assertions : Shared_ast__.Definitions.yes >
; defaultTerms : 'a
; custom : Shared_ast__.Definitions.no >,
< < monomorphic : Shared_ast__.Definitions.yes
; polymorphic : Shared_ast__.Definitions.yes
; overloaded : Shared_ast__.Definitions.no
; resolved : Shared_ast__.Definitions.yes
; syntacticNames : Shared_ast__.Definitions.no
; scopeVarStates : Shared_ast__.Definitions.no
; scopeVarSimpl : Shared_ast__.Definitions.no
; explicitScopes : Shared_ast__.Definitions.no
; assertions : Shared_ast__.Definitions.yes >
; defaultTerms : 'a
; custom : Shared_ast__.Definitions.no >,
'm)
Shared_ast__.Definitions.base_gexpr,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed
Shared_ast__.Definitions.program