// JSON overlay schema #include "serde.dl" .decl jsonBool(id: ElemId, value: number) inline jsonBool(id, value) :- number(id, value). .decl jsonNumber(id: ElemId, value: number) inline jsonNumber(id, value) :- number(id, value). .decl jsonString(id: ElemId, value: symbol) inline jsonString(id, value) :- string(id, value). .decl jsonList(id: ElemId, pos: number, value: ElemId) inline jsonList(id, pos, value) :- seq(id, pos, value). // JSON keys are always strings .decl jsonRecord(id: ElemId, key: symbol, value: ElemId) inline jsonRecord(id, key, value) :- map(id, keyId, value), string(keyId, key).