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),+ ]) => { ... };
}