This module provides an implementation of the JavaScript Object Notation (JSON) format, as defined by RFC 8259. Note that several other, incompatible specifications exist. This implementation does not include any extensions; only features which are strictly required by the spec are implemented. A lexer for JSON values is provided, which may be initialized with [[lex]] and provides tokens via [[next]], and which uses a relatively small amount of memory and provides relatively few guarantees regarding the compliance of the input with the JSON grammar. Additionally, the [[value]] type is provided to store any value JSON value, as well as helpers like [[newobject]], [[get]], and [[set]]. One can load a JSON value from an input stream into a heap-allocated [[value]] via [[load]], which enforces all of JSON's grammar constraints and returns an object which must be freed with [[finish]].