PLUGIN json
DEFINE
	TYPE json.value
	TYPE json.object
	TYPE json.array
	TYPE json.null
	INTERRUPTION json.invalid
	INSTRUCTION json.parse STR -> json.value
	INSTRUCTION json.print json.value -> STR
	INSTRUCTION json.value [ INT STR BLN json.object json.array json.null ] ? -> json.value
	INSTRUCTION json.raw json.value -> [ INT STR BLN json.object json.array json.null ]
	INSTRUCTION json.object ( STR = json.value ( , STR = json.value ) * ) ? -> json.object
	INSTRUCTION json.keys json.object -> PTR
	INSTRUCTION json.member json.object STR:key -> json.value ?
	INSTRUCTION json.add_member MUTABLE json.object STR:key json.value:value -> BLN
	INSTRUCTION json.change_member MUTABLE json.object STR:key json.value:value -> BLN
	INSTRUCTION json.remove_member MUTABLE json.object STR:key -> BLN
	INSTRUCTION json.array json.value * -> json.array
	INSTRUCTION json.size json.array -> INT:size
	INSTRUCTION json.element json.array INT:index 'END' ? -> json.value ?
	INSTRUCTION json.add_element MUTABLE json.array INT:index 'END' ? json.value:element -> BLN
	INSTRUCTION json.change_element MUTABLE json.array INT:index 'END' ? json.value:element -> BLN
	INSTRUCTION json.remove_element MUTABLE json.array INT:index 'END' ? -> BLN
