Indeed, the template is an alternative method of expressing what we know about the input data. Not surprisingly, functions that consume the same kind of data look alike. The two functions are nearly indistinguishable. To highlight the differences, the two symbols are boxed.
Good programmers are too lazy to define several closely related functions.
Instead they define a single function that can look for both a ' doll and a ' car in a list of toys. Defining the single version has solved many related problems at once. Defining abstract versions of functions is highly beneficial. The first benefit is that a single function can perform many different tasks. The difference between the two functions is the comparison operator.