public IPair <S1, S2> Question(string s, IPair <E1, E2> e) { return(new Pair <S1, S2>(Factory1.Question(s, e.Item1), Factory2.Question(s, e.Item2))); }