module Strategies: sig
.. end
All reduction-strategies are managed inside this module. A reduction-strategy is a function taking a CoreML-expression as argument and returning a list of replacements. A replacement is a position-CoreML-expression-pair.
val call_by_value : CoreML.t -> (CoreML.pos * CoreML.t) list
Call-by-value always reduces the (leftmost) innermost redex. This strategy reduces to normal form.
val call_by_name : CoreML.t -> (CoreML.pos * CoreML.t) list
Call-by-name always reduces the (leftmost) outermost redex. This strategy reduces to normal form.
val parallel_inner : CoreML.t -> (CoreML.pos * CoreML.t) list
Parallel innermost always reduces all innermost redexes in a parallel fashion. This strategy reduces to normal form.
val parallel_outer : CoreML.t -> (CoreML.pos * CoreML.t) list
Parallel outermost always reduces all outermost redexes in a parallel fashion. This strategy reduces to normal form.