The Template Haskell code in Yesod is only used to generate code. In that sense, it's a strict replacement for boilerplate. Instead of using Template Haskell, we could write out manually a transformation from the route file syntax to code you should write by hand, and you could write the equivalent code yourself.
With introspection, you actually look at existing information the compiler has and make decisions. For example, you could search for all of the instances of the Show
typeclass and create a String
with that list. That kind of approach can be useful in some cases, such as auto-generating a set of tests. The comment in the book is just stating that Yesod never does this sort of thing.