pub fn compile_program(program: TypedProgram) -> Result<Context, CompileError>