(t snd_of_three) ; will evaluate to 20
If you're puzzled by having the triple to the left and the function that
-operates on it come second, think about why it's being done this way: the pair
+operates on it come second, think about why it's being done this way: the triple
is a package that takes a function for operating on its elements *as an
argument*, and returns *the result of* operating on its elements with that
function. In other words, the triple is a higher-order function.