The structure of a function often mirrors the structure of the data it consumes. As we encounter more complex data types, we will find it useful to be precise about their structures.

A template is a general framework within which we fill in specifics.
(View stepping example in M06)
Condensed Tracing
<aside> 💡 The condensed trace shows more clearly how the application of a recursive function leads to an application of the same function to. a smaller list, until the base case in reached
</aside>

It’s always important that our functions terminates!