public IPair <E1, E2> VarAssign(string var, IPair <T1, T2> t, IPair <E1, E2> e) { return(new Pair <E1, E2>(Factory1.VarAssign(var, t.Item1, e.Item1), Factory2.VarAssign(var, t.Item2, e.Item2))); }