See Figure 8.17 for the derivation hierarchy of the Stream classes.
See Figure 8.18 for the derivation hierarchy for IO channel abstraction.
See Figure 8.19