The more precisely you describe your types, the better for understanding the program, both for humans and for the compiler. Therefore, subtypes should be preferred.