Building Go programs that manipulate capabilities