macro_rules! delegate_subcompositor {
($(@<$( $lt:tt $( : $clt:tt $(+ $dlt:tt )* )? ),+>)? $ty: ty) => { ... };
($(@<$( $lt:tt $( : $clt:tt $(+ $dlt:tt )* )? ),+>)? $ty: ty, subsurface: [$($subsurface: ty),*$(,)?]) => { ... };
(@{$($ty:tt)*}; subsurface: []) => { ... };
(@{$($ty:tt)*}; subsurface-only: $subsurface:ty) => { ... };
(@$ty:tt; subsurface: [ $($subsurface:ty),+ ]) => { ... };
}