public IPair <E1, E2> NegateBool(IPair <E1, E2> e) { return(new Pair <E1, E2>(Factory1.NegateBool(e.Item1), Factory2.NegateBool(e.Item2))); }