If I have a class
class DataContainer { public TData data; ... }
And I have two other types which may be contained in it