Indeed, but it is considered a strength by Go enthusiasts. Not being able to build clever abstractions is a feature.
So is the error handling boilerplate.