<commit_before>import ceylon.language.metamodel {
    AppliedClassOrInterface = ClassOrInterface,
    AppliedMember = Member,
    Type
}

shared interface ClassOrInterfaceDeclaration 
        of ClassDeclaration | InterfaceDeclaration 
        satisfies TopLevelOrMemberDeclaration & GenericDeclaration {
    
    // FIXME: names are not great and not in line with OpenParameterisedType, perhaps declarationSuperClassType or superClassOpenType?
    // or extendedOpenType?
    shared formal OpenParameterisedType<ClassDeclaration>? superclassDeclaration;
    
    shared formal OpenParameterisedType<InterfaceDeclaration>[] interfaceDeclarations;
    
    shared formal Kind[] memberDeclarations<Kind>() 
            given Kind satisfies TopLevelOrMemberDeclaration;<commit_msg>metamodel #226: added a FIXME<commit_after>import ceylon.language.metamodel {
    AppliedClassOrInterface = ClassOrInterface,
    AppliedMember = Member,
    Type
}

shared interface ClassOrInterfaceDeclaration 
        of ClassDeclaration | InterfaceDeclaration 
        satisfies TopLevelOrMemberDeclaration & GenericDeclaration {
    
    // FIXME: names are not great and not in line with OpenParameterisedType, perhaps declarationSuperClassType or superClassOpenType?
    // or extendedOpenType?
    shared formal OpenParameterisedType<ClassDeclaration>? superclassDeclaration;
    
    shared formal OpenParameterisedType<InterfaceDeclaration>[] interfaceDeclarations;
    
    // FIXME: should Kind default to TopLevelOrMemberDeclaration?
    shared formal Kind[] memberDeclarations<Kind>() 
            given Kind satisfies TopLevelOrMemberDeclaration;
{'fraction_non_alphanumeric': 0.050061050061050064, 'fraction_numerical': 0.0018315018315018315, 'mean_word_length': 4.427152317880795, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2018111', 'n_tokens_mistral': 385, 'n_tokens_neox': 374, 'n_words': 107}