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 {}
}