pub type BlockEventSubscription = Select<Map<OutboundSubscription<Header>, fn(_: Header) -> BlockEvent>, Select<Map<OutboundSubscription<BlockIds>, fn(_: BlockIds) -> BlockEvent>, Map<OutboundSubscription<ChainPullRequest>, fn(_: ChainPullRequest) -> BlockEvent>>>;
struct BlockEventSubscription {
inner: SelectWithStrategy<Map<OutboundSubscription<Header>, fn(_: Header) -> BlockEvent>, Select<Map<OutboundSubscription<Box<[BlockId], Global>>, fn(_: Box<[BlockId], Global>) -> BlockEvent>, Map<OutboundSubscription<ChainPullRequest>, fn(_: ChainPullRequest) -> BlockEvent>>, fn(_: &mut PollNext) -> PollNext, PollNext>,
}