This is an enhanced version of my old generic proposal.
This proposal suggests a gen
code element which can be viewed as a compile-time code generation function call.
The parameters and results of a gen
can be any source elements, such as type
, const
, var
, func
, import
, even gen
.
This proposal will use the contract idea in the Go 2 generic draft
to constraint input gen
parameters.
It will also use the following helpers:
- `typeOf(v)` // return the type (or default type) of value `v`.