Module Gobba.Puritycheck
val level_purity : Types.puret -> Types.puret -> Types.puret
"level out" the purity of two values
val infer : Types.expr -> Types.evalstate -> Types.puret
Infer the purity of an expression. Note: this is a naive approach. This function is an abstract interpretation of expressions over primitives and environments.
- parameter pt
The primitives table
- parameter state
The current computation state
- parameter is_in_lambda
If inside a lambda, the list of parameters
val lookup_env : Types.ide -> Types.purityenv_type -> Types.puret -> Types.puret
val lookup : Types.ide -> Types.evalstate -> Types.puret
val infer_assignment : Types.evalstate -> (bool * Types.ide * Types.expr) -> Types.evalstate
val infer_assignment_list : Types.assignment_type list -> Types.evalstate -> Types.evalstate