Huh, so nested type aliases capture generic type parameters from the outer classes? My intuition was that nested type alias are more like static nested classes (without being classes) but it seems they're more like inner classes.
class Foo<T> {
typealias Bar = (T) -> Unit
}