private void loadKinds() throws DataException {
		for (final Kind parameterKind: parameterKindNamespace.objects())
			if (!loadAsNewKind(parameterKind))
				mapKnownName(parameterKind, kindMap, kindNamespace);
		// create aliases
		for (final Map.Entry<String, ? extends Kind> aliasEntry: parameterKindNamespace.aliases().entrySet()) {
			final Kind kindHere = kindMap.get(aliasEntry.getValue());
			final Kind newKind = dataFactory.createKind(prefix + aliasEntry.getKey(),
				kindHere.getOriginalName(), kindHere.getParameterIndex(), kindNamespace);
			kindNamespace.identify(newKind, kindHere);
		}
		// create additional equivalence classes
		for (final Set<? extends Kind> equivalenceClass: parameterKindNamespace.equivalenceClasses())
			for (final Kind i: equivalenceClass)
				for (final Kind j: equivalenceClass)
					kindNamespace.identify(kindMap.get(i), kindMap.get(j));
					// FIXME: This becomes inefficient quickly if kindbind is used heavily
	}