More implications
When we design a template function, we can start by thinking about how we would like to be able to use the arguments
Afterwards, we can see if there is an available type that does what we want
If not, we can create one or revise our template function definition