@Override public Type union(final Type t) { if (instanceOf(t)) return t; if (t instanceof ArrayType) { final ArrayType mt = (ArrayType) t; return mt.instanceOf(this) ? this : get(retType.union(mt.retType)); } return t instanceof MapType ? ANY_FUN : t instanceof FuncType ? t.union(this) : AtomType.ITEM; }