Type classes:

Types can be instances of multiple type classes as some type classes cover subset of other type classes.