59 lines
1.8 KiB
JSON
59 lines
1.8 KiB
JSON
{
|
|
"types": [
|
|
{
|
|
"id": ["inheritance", "A"],
|
|
"kind": "record",
|
|
"fields": [{"name": "a", "value": {"kind": "number", "repr": "f64"}, "required": true}]
|
|
},
|
|
{
|
|
"id": ["inheritance", "B"],
|
|
"kind": "intersection",
|
|
"parts": [
|
|
{"kind": "reference", "to": ["inheritance", "A"]},
|
|
{
|
|
"kind": "record",
|
|
"fields": [{"name": "b", "value": {"kind": "string"}, "required": true}]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": ["inheritance", "C"],
|
|
"kind": "intersection",
|
|
"parts": [
|
|
{"kind": "reference", "to": ["inheritance", "B"]},
|
|
{
|
|
"kind": "record",
|
|
"fields": [{"name": "c", "value": {"kind": "boolean"}, "required": true}]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": ["inheritance", "X"],
|
|
"kind": "record",
|
|
"fields": [{"name": "x", "value": {"kind": "number", "repr": "f64"}, "required": true}]
|
|
},
|
|
{
|
|
"id": ["inheritance", "Y"],
|
|
"kind": "intersection",
|
|
"parts": [
|
|
{"kind": "reference", "to": ["inheritance", "X"]},
|
|
{
|
|
"kind": "record",
|
|
"fields": [{"name": "y", "value": {"kind": "string"}, "required": true}]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": ["inheritance", "Z"],
|
|
"kind": "intersection",
|
|
"parts": [
|
|
{"kind": "reference", "to": ["inheritance", "Y"]},
|
|
{
|
|
"kind": "record",
|
|
"fields": [{"name": "z", "value": {"kind": "boolean"}, "required": true}]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|