pub struct Out { a: A, b: B, } pub struct Out1 { a: [A; N], } pub struct Out2 { a: [A; N], } pub struct Out3 { a: A, b: B, } pub struct Out4 { a: A, b: B, } pub struct Inside(T); pub fn alpha(_: Inside) -> Out, Out2> { loop {} } pub fn beta(_: Inside) -> Out, Out4> { loop {} } pub fn gamma(_: Inside) -> Out, Out4> { loop {} }