"Thrown when declarations are applied with invalid or incompatible type arguments.
 Also throw when trying to apply member declarations with no containers, or toplevel
 declarations with a container.
 
 For example if you try to apply `Foo` with `String`, hoping to get a `Foo<String>`
 but the type parameter for `Foo` only accepts types that satisfy `Numeric`.
 "
shared class TypeApplicationException(String message) extends Exception(message){}