partially fix #2149, partially support more efficient struct return (disabled). unfortunately this breaks ComplexPair{Int} (ComplexPair{Float64} seems OK)