Discriminated union of every handle a bridge may issue.

release() accepts any handle the bridge has issued; the union keeps the call site honest without forcing each kind through a separate method.