public override MSet <string> FreeVars() { var set1 = Ary.FreeVars(); var set2 = Idx.FreeVars(); var set3 = Val.FreeVars(); return(set1.Union(set2).Union(set3)); }