Why doesn't this Template Haskell program work?