The library stores error information in thread-local storage, which means we need to make sure that the Go runtime doesn't switch OS threads between the time we call a function and th time we attempt to retrieve the error information.
This is only needed once per package. Having it on every file makes the build system ask about it n times, which is silly.
Make the names look more like what you'd expect from Go.