fun foo() { when (e) { is [a] val a -> d is [a] val a is foo -> d is [a] * -> d is [a] 2 -> d is [a] T -> d is [a] T #() -> d } }