%module foo #include std::map> m; std::map > n; std::map< std::map<(6>>1), double>, double> o; //std::map< std::map<6>>1, double>, double> p; // fails as it should class ABC { public: int a; int operator>>(ABC &); int operator<<(ABC &); }; template class ABC2 { public: int a; template int operator>>(ABC &, U); template int operator<<(ABC &, U); };