public type Value { Null Boolean(value: Bool) Number(raw: Text) String(text: Text) Array(children: List) Object(members: Map) } public type Document { root: Int nodes: List } public type ParseResult { Parsed(document: Document) error Failed(position: Int, message: Text) } public type WriteResult { Written(text: Text) error Failed(node: Int, message: Text) }