infer se usa dentro de un tipo condicional para capturar (extraer) un tipo desde dentro de otro tipo hacia una nueva variable de tipo que luego puedes utilizar. Es coincidencia de patrones (pattern-matching) para tipos.
<T> = T (infer U)[] ? U : ;
A = <[]>;
B = <[]>;
