Module {
    source_file: Some(
        "MANIFEST_PATH/corpus/type_class_subtype.sdm",
    ),
    file_id: Some(
        0,
    ),
    span: Some(
        Span {
            start: 0,
            end: 48,
        },
    ),
    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_subtype.sdm/",
                query: None,
                fragment: None,
            },
        },
    ),
    version_info: None,
    version_uri: None,
    body: ModuleBody {
        span: Some(
            Span {
                start: 12,
                end: 47,
            },
        ),
        file_id: None,
        is_library: true,
        imports: [],
        annotations: [],
        definitions: [
            TypeClass(
                TypeClassDef {
                    span: Some(
                        Span {
                            start: 18,
                            end: 42,
                        },
                    ),
                    name: Identifier {
                        span: Some(
                            Span {
                                start: 24,
                                end: 27,
                            },
                        ),
                        value: "Any",
                    },
                    variables: [
                        TypeVariable {
                            span: Some(
                                Span {
                                    start: 29,
                                    end: 41,
                                },
                            ),
                            name: Identifier {
                                span: Some(
                                    Span {
                                        start: 29,
                                        end: 30,
                                    },
                                ),
                                value: "T",
                            },
                            cardinality: None,
                            restrictions: [
                                TypeClassReference {
                                    span: Some(
                                        Span {
                                            start: 34,
                                            end: 41,
                                        },
                                    ),
                                    name: Identifier(
                                        Identifier {
                                            span: Some(
                                                Span {
                                                    start: 34,
                                                    end: 38,
                                                },
                                            ),
                                            value: "None",
                                        },
                                    ),
                                    arguments: [
                                        Reference(
                                            TypeClassReference {
                                                span: Some(
                                                    Span {
                                                        start: 39,
                                                        end: 40,
                                                    },
                                                ),
                                                name: Identifier(
                                                    Identifier {
                                                        span: Some(
                                                            Span {
                                                                start: 39,
                                                                end: 40,
                                                            },
                                                        ),
                                                        value: "T",
                                                    },
                                                ),
                                                arguments: [],
                                            },
                                        ),
                                    ],
                                },
                            ],
                        },
                    ],
                    body: None,
                },
            ),
        ],
    },
}
