func Walk_lazy(AST) -> String
routine_identifier := package_into_routine(AST)
return `new_lazy('+routine_identifier+`)'
func package_into_routine(AST) -> String
result := new_temporary_identifier()
Routines +:= [`proc '+result+`\n'+Walk(AST)+`\n'+`endp\n']