import ceylon.language.meta.declaration {
import ceylon.language.meta.model {
    ClosedType = Type

"A class model represents the model of a Ceylon class that you can inspect.
 A class model can be either a toplevel [[Class]] or a member [[MemberClass]].
shared sealed interface ClassModel<out Type=Anything, in Arguments=Nothing>
    satisfies ClassOrInterface<Type>
    given Arguments satisfies Anything[] {
    shared formal actual ClassDeclaration declaration;
    "This function's parameter closed types"
    shared formal ClosedType<Anything>[] parameterTypes;