Today it relies on the `Param` trait for conversion but that makes code gen considerably more complicated and confusing for callers.