math/big has types and functions for working with arbitrary precision integers and rational numbers. I was wondering if anyone knew why the function calls are so needlessly verbose. E.g. look at the docs on multiplying two rational numbers: https://golang.org/pkg/math/big/#Rat.Mul
Instead of multiplying the receiver with one parameter, you have to provide two parameters which are multiplied and the result is then written to the receiver. Why was this designed this way?