If you create a thrift definition which has no structs defined in it (just services) the ttypes.go file fails to build because imports thrift and fmt aren't used.
This is a known limitation of the existing thrift4go Compiler code.
Changes would need to be made to t_go_generator::generate_service in t_go_generator.cc based on if any types are specified, which I'm not sure is known at build time.
Let me know if you can look into it.
I'll take a look at it sometime in the next couple of weeks.