compile with newer haskell-src-exts

some newer constructors are still missing or unhandled
replace top-level NameU with NameS

This lets zeroth process like:

{-# LANGUAGE TemplateHaskell #-}
module Main where

[d| x = 1 |]

main :: IO()
main = print x

Previously you'd get a `x_0 = 1', which makes the generated file fail at
finding `x'