return subTypeOf(typeHierarchy.get(subtype), supertype);
return subTypeOf(((Integer)typeHierarchy.get(subtype)).intValue(), supertype);
	public final static boolean subTypeOf(int subtype, int supertype) {		if (subtype == supertype)			return true;		if (supertype == ITEM)			return true;		if (subtype == ITEM || subtype == EMPTY)			return false;		if (!typeHierarchy.containsKey(subtype))			throw new IllegalArgumentException(				"type " + subtype + " is not a valid type");		return subTypeOf(typeHierarchy.get(subtype), supertype);	}