/*
 * This class represents a pair of two objects, which can be of different types
*/
public class Tuple<A, B> {
    public Tuple(A first, B second) {
        this._1 = first;
        this._2 = second;
    }

    public A _1 { get; set; }
    public B _2 { get; set; }
}