A generator for typed source code from generic source code in Go