Port WhenThen to AST::Processor