4.10 Combining abstractions