base.EitherMatch[A:imm,mut,read,B:imm,mut,read,R:iso,imm,mut,mutH,read,readH]

mut .b(x: B): R,
mut .a(x: A): R,
mut .b(x: B): R,
mut .a(x: A): R,