pub fn program(compilation_env: &mut CompilationEnv, prog: Program) -> Program