I've often reached for this syntax, only to find it's not supported. It would solve the problem of which order defaults should be filled in.
typealias Foo = Foo<Bool>
typealias Foo<A> = Foo<A, Int>
typealias Foo<A, C> = Foo<A, String, C>
class Foo<A, B, C> { … }