Module {
    source_file: Some(
        "MANIFEST_PATH/corpus/type_class_methods.sdm",
    ),
    file_id: Some(
        0,
    ),
    span: Some(
        Span {
            start: 0,
            end: 250,
        },
    ),
    name: Identifier {
        span: Some(
            Span {
                start: 7,
                end: 11,
            },
        ),
        value: "sdml",
    },
    base_uri: Some(
        HeaderValue {
            span: None,
            value: Url {
                scheme: "http",
                cannot_be_a_base: false,
                username: "",
                password: None,
                host: Some(
                    Domain(
                        "example.org",
                    ),
                ),
                port: None,
                path: "MANIFEST_PATH/corpus/type_class_methods.sdm/",
                query: None,
                fragment: None,
            },
        },
    ),
    version_info: None,
    version_uri: None,
    body: ModuleBody {
        span: Some(
            Span {
                start: 12,
                end: 249,
            },
        ),
        file_id: None,
        is_library: true,
        imports: [],
        annotations: [],
        definitions: [
            TypeClass(
                TypeClassDef {
                    span: Some(
                        Span {
                            start: 18,
                            end: 244,
                        },
                    ),
                    name: Identifier {
                        span: Some(
                            Span {
                                start: 24,
                                end: 27,
                            },
                        ),
                        value: "Any",
                    },
                    variables: [
                        TypeVariable {
                            span: Some(
                                Span {
                                    start: 29,
                                    end: 30,
                                },
                            ),
                            name: Identifier {
                                span: Some(
                                    Span {
                                        start: 29,
                                        end: 30,
                                    },
                                ),
                                value: "T",
                            },
                            cardinality: None,
                            restrictions: [],
                        },
                    ],
                    body: Some(
                        TypeClassBody {
                            span: Some(
                                Span {
                                    start: 32,
                                    end: 244,
                                },
                            ),
                            annotations: [],
                            methods: [
                                MethodDef {
                                    span: Some(
                                        Span {
                                            start: 39,
                                            end: 74,
                                        },
                                    ),
                                    name: Identifier {
                                        span: Some(
                                            Span {
                                                start: 43,
                                                end: 55,
                                            },
                                        ),
                                        value: "is_structure",
                                    },
                                    signature: FunctionSignature {
                                        span: None,
                                        parameters: [
                                            FunctionParameter {
                                                span: None,
                                                name: Identifier {
                                                    span: Some(
                                                        Span {
                                                            start: 56,
                                                            end: 57,
                                                        },
                                                    ),
                                                    value: "v",
                                                },
                                                target_type: FunctionType {
                                                    span: None,
                                                    target_cardinality: FunctionCardinality {
                                                        span: None,
                                                        ordering: None,
                                                        uniqueness: None,
                                                        range: None,
                                                    },
                                                    target_type: FunctionTypeReference {
                                                        optional: false,
                                                        inner: Reference(
                                                            Identifier(
                                                                Identifier {
                                                                    span: Some(
                                                                        Span {
                                                                            start: 61,
                                                                            end: 62,
                                                                        },
                                                                    ),
                                                                    value: "T",
                                                                },
                                                            ),
                                                        ),
                                                    },
                                                },
                                            },
                                        ],
                                        target_type: FunctionType {
                                            span: None,
                                            target_cardinality: FunctionCardinality {
                                                span: None,
                                                ordering: None,
                                                uniqueness: None,
                                                range: None,
                                            },
                                            target_type: FunctionTypeReference {
                                                optional: false,
                                                inner: Reference(
                                                    QualifiedIdentifier(
                                                        QualifiedIdentifier {
                                                            span: None,
                                                            module: Identifier {
                                                                span: None,
                                                                value: "sdml",
                                                            },
                                                            member: Identifier {
                                                                span: Some(
                                                                    Span {
                                                                        start: 67,
                                                                        end: 74,
                                                                    },
                                                                ),
                                                                value: "boolean",
                                                            },
                                                        },
                                                    ),
                                                ),
                                            },
                                        },
                                    },
                                    body: None,
                                    annotations: [],
                                },
                                MethodDef {
                                    span: Some(
                                        Span {
                                            start: 79,
                                            end: 91,
                                        },
                                    ),
                                    name: Identifier {
                                        span: Some(
                                            Span {
                                                start: 83,
                                                end: 86,
                                            },
                                        ),
                                        value: "new",
                                    },
                                    signature: FunctionSignature {
                                        span: None,
                                        parameters: [],
                                        target_type: FunctionType {
                                            span: None,
                                            target_cardinality: FunctionCardinality {
                                                span: None,
                                                ordering: None,
                                                uniqueness: None,
                                                range: None,
                                            },
                                            target_type: FunctionTypeReference {
                                                optional: false,
                                                inner: Reference(
                                                    Identifier(
                                                        Identifier {
                                                            span: Some(
                                                                Span {
                                                                    start: 90,
                                                                    end: 91,
                                                                },
                                                            ),
                                                            value: "T",
                                                        },
                                                    ),
                                                ),
                                            },
                                        },
                                    },
                                    body: None,
                                    annotations: [],
                                },
                                MethodDef {
                                    span: Some(
                                        Span {
                                            start: 96,
                                            end: 178,
                                        },
                                    ),
                                    name: Identifier {
                                        span: Some(
                                            Span {
                                                start: 100,
                                                end: 109,
                                            },
                                        ),
                                        value: "is_entity",
                                    },
                                    signature: FunctionSignature {
                                        span: None,
                                        parameters: [
                                            FunctionParameter {
                                                span: None,
                                                name: Identifier {
                                                    span: Some(
                                                        Span {
                                                            start: 110,
                                                            end: 111,
                                                        },
                                                    ),
                                                    value: "v",
                                                },
                                                target_type: FunctionType {
                                                    span: None,
                                                    target_cardinality: FunctionCardinality {
                                                        span: None,
                                                        ordering: None,
                                                        uniqueness: None,
                                                        range: None,
                                                    },
                                                    target_type: FunctionTypeReference {
                                                        optional: false,
                                                        inner: Reference(
                                                            Identifier(
                                                                Identifier {
                                                                    span: Some(
                                                                        Span {
                                                                            start: 115,
                                                                            end: 116,
                                                                        },
                                                                    ),
                                                                    value: "T",
                                                                },
                                                            ),
                                                        ),
                                                    },
                                                },
                                            },
                                        ],
                                        target_type: FunctionType {
                                            span: None,
                                            target_cardinality: FunctionCardinality {
                                                span: None,
                                                ordering: None,
                                                uniqueness: None,
                                                range: None,
                                            },
                                            target_type: FunctionTypeReference {
                                                optional: false,
                                                inner: Reference(
                                                    QualifiedIdentifier(
                                                        QualifiedIdentifier {
                                                            span: None,
                                                            module: Identifier {
                                                                span: None,
                                                                value: "sdml",
                                                            },
                                                            member: Identifier {
                                                                span: Some(
                                                                    Span {
                                                                        start: 121,
                                                                        end: 128,
                                                                    },
                                                                ),
                                                                value: "boolean",
                                                            },
                                                        },
                                                    ),
                                                ),
                                            },
                                        },
                                    },
                                    body: None,
                                    annotations: [
                                        Property(
                                            AnnotationProperty {
                                                span: Some(
                                                    Span {
                                                        start: 138,
                                                        end: 170,
                                                    },
                                                ),
                                                name_reference: QualifiedIdentifier(
                                                    QualifiedIdentifier {
                                                        span: Some(
                                                            Span {
                                                                start: 139,
                                                                end: 153,
                                                            },
                                                        ),
                                                        module: Identifier {
                                                            span: Some(
                                                                Span {
                                                                    start: 139,
                                                                    end: 143,
                                                                },
                                                            ),
                                                            value: "skos",
                                                        },
                                                        member: Identifier {
                                                            span: Some(
                                                                Span {
                                                                    start: 144,
                                                                    end: 153,
                                                                },
                                                            ),
                                                            value: "prefLabel",
                                                        },
                                                    },
                                                ),
                                                value: Simple(
                                                    String(
                                                        LanguageString {
                                                            span: Some(
                                                                Span {
                                                                    start: 156,
                                                                    end: 170,
                                                                },
                                                            ),
                                                            value: "is an entity",
                                                            language: None,
                                                        },
                                                    ),
                                                ),
                                            },
                                        ),
                                    ],
                                },
                                MethodDef {
                                    span: Some(
                                        Span {
                                            start: 183,
                                            end: 238,
                                        },
                                    ),
                                    name: Identifier {
                                        span: Some(
                                            Span {
                                                start: 187,
                                                end: 197,
                                            },
                                        ),
                                        value: "has_member",
                                    },
                                    signature: FunctionSignature {
                                        span: None,
                                        parameters: [
                                            FunctionParameter {
                                                span: None,
                                                name: Identifier {
                                                    span: Some(
                                                        Span {
                                                            start: 198,
                                                            end: 199,
                                                        },
                                                    ),
                                                    value: "v",
                                                },
                                                target_type: FunctionType {
                                                    span: None,
                                                    target_cardinality: FunctionCardinality {
                                                        span: None,
                                                        ordering: None,
                                                        uniqueness: None,
                                                        range: None,
                                                    },
                                                    target_type: FunctionTypeReference {
                                                        optional: false,
                                                        inner: Reference(
                                                            Identifier(
                                                                Identifier {
                                                                    span: Some(
                                                                        Span {
                                                                            start: 203,
                                                                            end: 204,
                                                                        },
                                                                    ),
                                                                    value: "T",
                                                                },
                                                            ),
                                                        ),
                                                    },
                                                },
                                            },
                                        ],
                                        target_type: FunctionType {
                                            span: None,
                                            target_cardinality: FunctionCardinality {
                                                span: None,
                                                ordering: None,
                                                uniqueness: None,
                                                range: None,
                                            },
                                            target_type: FunctionTypeReference {
                                                optional: false,
                                                inner: Reference(
                                                    QualifiedIdentifier(
                                                        QualifiedIdentifier {
                                                            span: None,
                                                            module: Identifier {
                                                                span: None,
                                                                value: "sdml",
                                                            },
                                                            member: Identifier {
                                                                span: Some(
                                                                    Span {
                                                                        start: 209,
                                                                        end: 216,
                                                                    },
                                                                ),
                                                                value: "boolean",
                                                            },
                                                        },
                                                    ),
                                                ),
                                            },
                                        },
                                    },
                                    body: Some(
                                        Simple(
                                            Atomic(
                                                AtomicSentence {
                                                    span: None,
                                                    predicate: Identifier(
                                                        Identifier(
                                                            Identifier {
                                                                span: Some(
                                                                    Span {
                                                                        start: 220,
                                                                        end: 235,
                                                                    },
                                                                ),
                                                                value: "is_product_type",
                                                            },
                                                        ),
                                                    ),
                                                    arguments: [],
                                                },
                                            ),
                                        ),
                                    ),
                                    annotations: [],
                                },
                            ],
                        },
                    ),
                },
            ),
        ],
    },
}
