public boolean matches(Class[] onTypes) {
public boolean matches(TypeX[] tys, World world) {
	public boolean matches(Class[] onTypes) {		if (this == ANY) return true;				//System.out.println("matching: " + this + " with " + Arrays.asList(tys));				for (int j=0, lenj = required.size(); j < lenj; j++) {			if (! matchesAny(required.get(j), onTypes)) {				return false;			}		}		for (int j=0, lenj = forbidden.size(); j < lenj; j++) {			if (matchesAny(forbidden.get(j), onTypes)) {				return false;			}		}		return true;			}