return {
	-- example usage:
	--
	-- ['ex<T>'] = { 'ex<double>', 'ex<string>' }
	-- module = { ['ex2<K,V>'] = { 'example<char*, int>' } }
	
	qtcore = {
		-- 'QPair<QCborValue,QCborValue>',
		-- 'QPair<qint64,unsigned>',
		-- 'QStringBuilder<QByteArray,QByteArray>',
		-- 'QStringBuilder<QString,QString>',
		['QList<T>'] = {
			'QList<QAbstractAnimation*>',
			'QList<QAbstractState*>',
			'QList<QAbstractTransition*>',
			'QList<QByteArray>',
			'QList<QFileInfo>',
			{ 'QList<QLine>', { 'toSet' } },
			{ 'QList<QLineF>', { 'toSet' } },
			'QList<QLocale>',
			'QList<QMimeType>',
			'QList<QModelIndex>',
			'QList<QObject*>',
			{ 'QList<QPoint>', { 'toSet' } },
			{ 'QList<QPointF>', { 'toSet' } },
			{ 'QList<QRect>', { 'toSet' } },
			{ 'QList<QRectF>', { 'toSet' } },
			{ 'QList<QSize>', { 'toSet' } },
			'QList<QStorageInfo>',
			'QList<QString>',
			'QList<QUrl>',
			{ 'QList<QVariant>', { 'toSet' } },
			'QList<double>',
			'QList<float>',
			'QList<int>',
			'QList<qreal>',
		},
		['QSet<T>'] = {
			'QSet<QAbstractState*>',
			'QSet<QByteArray>',
			{ 'QSet<QLine>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
			{ 'QSet<QLineF>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
			'QSet<QModelIndex>',
			'QSet<QObject*>',
			{ 'QSet<QPoint>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
			{ 'QSet<QPointF>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
			{ 'QSet<QRect>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
			{ 'QSet<QRectF>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
			{ 'QSet<QSize>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
			'QSet<QString>',
			'QSet<QUrl>',
			{ 'QSet<QVariant>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
			'QSet<double>',
			'QSet<float>',
			'QSet<int>',
			'QSet<qreal>',
		},
		['QVector<T>'] = {
			'QVector<QByteArray>',
			'QVector<QCborValue>',
			'QVector<QLine>',
			'QVector<QLineF>',
			'QVector<QModelIndex>',
			'QVector<QObject*>',
			'QVector<QPoint>',
			'QVector<QPointF>',
			'QVector<QRect>',
			'QVector<QRectF>',
			'QVector<QSize>',
			{ 'QVector<QStaticPlugin>', { 'count', 'endsWith', 'indexOf', 'contains', 'operator==', 'removeOne', 'removeAll', 'startsWith', 'lastIndexOf' } },
			'QVector<QString>',
			'QVector<QStringRef>',
			'QVector<QUrl>',
			'QVector<QVariant>',
			'QVector<QXmlStreamEntityDeclaration>',
			'QVector<QXmlStreamNamespaceDeclaration>',
			'QVector<QXmlStreamNotationDeclaration>',
			'QVector<double>',
			'QVector<float>',
			'QVector<int>',
			'QVector<qreal>',
			'QVector<uint>',
		},
		['QFlags<Enum>'] = {
			-- 'QFlags<KeyboardModifier>',
		},
		['QHash<Key,T>'] = {
			'QHash<QString,QVariant>',
			'QHash<int,QByteArray>',
		},
		['QMap<Key,T>'] = {
			'QMap<QString,QVariant>',
			'QMap<int,QVariant>',
			'QMap<QByteArray,QVariant>',
		},
	},
	qtnetwork = {
		-- 'QPair<QHostAddress,int>',
		['QList<T>'] = {
			{ 'QList<QDnsDomainNameRecord>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			{ 'QList<QDnsHostAddressRecord>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			{ 'QList<QDnsMailExchangeRecord>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			{ 'QList<QDnsServiceRecord>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			{ 'QList<QDnsTextRecord>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			'QList<QHostAddress>',
			'QList<QNetworkAddressEntry>',
			'QList<QNetworkConfiguration>',
			'QList<QNetworkCookie>',
			{ 'QList<QNetworkInterface>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			'QList<QNetworkProxy>',
			'QList<QSslCertificate>',
			{ 'QList<QSslCertificateExtension>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			'QList<QSslCipher>',
			'QList<QSslError>',
		},
		['QVector<T>'] = {
			'QVector<QHstsPolicy>',
			'QVector<QSslEllipticCurve>',
		},
	},
	qtpositioning = {
		['QList<T>'] = {
			-- 'QList<QGeoAreaMonitorInfo>',
			'QList<QGeoCoordinate>',
		},
		['QSet<T>'] = {
			'QSet<QGeoCoordinate>',
		},
		['QVector<T>'] = {
			'QVector<QGeoCoordinate>',
		},
	},
	qtscript = {
		['QList<T>'] = {
			{ 'QList<QScriptValue>', { 'toSet', 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
		},
		['QSet<T>'] = {
			{ 'QSet<QScriptValue>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
		},
		['QVector<T>'] = {
			{ 'QVector<QScriptValue>', { 'count', 'endsWith', 'indexOf', 'contains', 'operator==', 'removeOne', 'removeAll', 'startsWith', 'lastIndexOf' } },
		},
	},
	qtqml = {
		['QList<T>'] = {
			{ 'QList<QQmlError>', { 'toSet', 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
		},
		['QSet<T>'] = {
			{ 'QSet<QQmlError>', { 'contains', 'remove', 'fromList', 'unite', 'intersect', 'intersects', 'subtract', 'operator-', 'operator+', 'operator==', 'operator<<', 'operator+=', 'operator-=' } },
		},
		['QVector<T>'] = {
			{ 'QVector<QQmlError>', { 'count', 'endsWith', 'indexOf', 'contains', 'operator==', 'removeOne', 'removeAll', 'startsWith', 'lastIndexOf' } },
		},
	},
	qtgui = {
		-- 'QPair<float,float>',
		-- 'QPair<int,int>',
		['QList<T>'] = {
			'QList<QAccessibleInterface*>',
			'QList<QColor>',
			'QList<QGlyphRun>',
			'QList<QGradientStop>',
			'QList<QKeySequence>',
			'QList<QOpenGLContext*>',
			'QList<QOpenGLDebugMessage>',
			'QList<QOpenGLShader*>',
			'QList<QPolygonF>',
			'QList<QRgb>',
			'QList<QScreen*>',
			'QList<QStandardItem*>',
			'QList<QTextBlock>',
			'QList<QTextFormat>',
			'QList<QTextFrame*>',
			'QList<QTextLength>',
			'QList<QWindow*>',
			'QList<const QTouchDevice*>',
		},
		['QSet<T>'] = {
			'QSet<QKeySequence>',
			'QSet<QStandardItem*>',
		},
		['QVector<T>'] = {
			'QVector<GLuint64>',
			'QVector<GLuint>',
			'QVector<QColor>',
			'QVector<QGradientStop>',
			'QVector<QKeySequence>',
			'QVector<QRgb>',
			'QVector<QStandardItem*>',
			'QVector<QTextFormat>',
			'QVector<QTextLength>',
			'QVector<quint32>',
		},
	},
	qtwidgets = {
		['QList<T>'] = {
			'QList<QAbstractButton*>',
			'QList<QAction*>',
			'QList<QDockWidget*>',
			'QList<QGesture*>',
			'QList<QGraphicsItem*>',
			'QList<QGraphicsTransform*>',
			'QList<QGraphicsView*>',
			'QList<QGraphicsWidget*>',
			'QList<QListWidgetItem*>',
			'QList<QMdiSubWindow*>',
			'QList<QScroller*>',
			'QList<QTableWidgetItem*>',
			{ 'QList<QTableWidgetSelectionRange>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			'QList<QTreeWidgetItem*>',
			'QList<QUndoStack*>',
			'QList<QWidget*>',
		},
		['QSet<T>'] = {
			'QSet<QGraphicsItem*>',
			'QSet<QListWidgetItem*>',
			'QSet<QTableWidgetItem*>',
			'QSet<QTreeWidgetItem*>',
		},
		['QVector<T>'] = {
			'QVector<QGraphicsItem*>',
			'QVector<QListWidgetItem*>',
			'QVector<QTableWidgetItem*>',
			'QVector<QTreeWidgetItem*>',
		},
		['QMap<Key,T>'] = {
			'QMap<QDate,QTextCharFormat>',
		},
	},
	qtopengl = {
		['QList<T>'] = {
			'QList<QGLShader*>',
		},
	},
	qtprintsupport = {
		['QList<T>'] = {
			'QList<QPageSize>',
			{ 'QList<QPrinterInfo>', { 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
		},
	},
	qtquick = {
		-- qtquick	'QSGSimpleMaterial<State>',
		-- qtquick	'QSGSimpleMaterialComparableMaterial<State>',
		-- qtquick	'QSGSimpleMaterialShader<State>',
		['QList<T>'] = {
			'QList<QQuickItem*>',
		},
		['QQmlListProperty<T>'] = {
			'QQmlListProperty<QQuickTransform>',
		},
	},
	qtwebchannel = {
		['QQmlListProperty<T>'] = {
			'QQmlListProperty<QObject>',
		},
		['QHash<Key,T>'] = {
			'QHash<QString,QObject*>',
		},
	},
	qtwebenginewidgets = {
		['QList<T>'] = {
			{ 'QList<QWebEngineHistoryItem>', { 'value', 'count', 'indexOf', 'contains', 'startsWith', 'endsWith', 'removeOne', 'removeAll', 'lastIndexOf', 'operator==' } },
			'QList<QWebEngineScript>',
		},
	},
}
