either as a subclass of type