public override bool Equals(Object o) { if (o == this) { return(true); } if (!(o is MDPTransition <STATE_TYPE, ACTION_TYPE>)) { return(false); } MDPTransition <STATE_TYPE, ACTION_TYPE> other = (MDPTransition <STATE_TYPE, ACTION_TYPE>)(o);// weird // typing // issue // work // out // later return(triplet.Equals(other.triplet)); }