pub struct Out<A, B = ()> {
a: A,
b: B,
}
pub struct First<In = ()> {
in_: In,
pub struct Second;
// Out<First<Second>>
pub fn alef() -> Out<First<Second>> {
loop {}
pub fn bet() -> Out<First, Second> {