+ (covariant): the type can be cast to some broader (more general) type
- (contravariant): the type can be cast to some narrower (more concrete) type