All Implemented Interfaces:
Function<Itree,Itree>, UnaryOperator<Itree>, ItreeVisitor<Itree>

public class LetInliner extends BaseOptimizer
Inlining optimizer of a let clause on the tail context.

Example program before inlining:

 { do_foo{ ,,, }
   :X = produce_arg
   do_bar{ ,,, }
 }
 

This optimizer converts the program roughly to the following.

 { do_foo{ ,,, }
   :X <- produce_arg
   do_bar{ ,,, }
 }