pub fn func2(l: Type, r: Type, return_t: Type) -> Type