type A = ((T) => $Foo) & ((T) => $Foo); type B = ((T) => $Foo) | ((T) => $Foo); type C = ((T) => $Foo)[];