<p><pre><code>   #define defmax(name, type) type name(type a, type b) { return a &gt; b ? a : b; }
</code></pre>
This seems to be exactly how you would define a &quot;generic&quot; max function in Go with the current tooling, too. Which is a shame because C macros just aren&#x27;t good enough.