typedef A = ( A^ next, ); typedef B1 = ( B2^ other, ); typedef B2 = ( B1^ other, );