public override MSet <string> FreeVars() { return(E1.FreeVars().Union(E2.FreeVars().Diff(Pat.FreeVars()))); }