closing-channels, short-declarations, non-blocking-channels. Plus modify generate.go to support utf-8