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