Naturally, the list
passed as the second argument to qsortF must also be of the same type "a." Notice
also that the type signature given in the sample code is only needed for documentation
purposes. If the signature is left out, Haskell infers all these type constraints
automatically. tailComp meets the right type signature, with the type String being a
specialization of the generic type allowed in qsortF arguments (a different comparison
function might operate over a different type or type class).