json packageimport json
var hierarchy = class_inheritance_metamodel
assert hierarchy.has_edge("String", "Object")
assert not hierarchy.has_edge("Object", "String")
	# Class inheritance graph, implemented by the `json` package
	#
	# ~~~
	# import json
	#
	# var hierarchy = class_inheritance_metamodel
	# assert hierarchy.has_edge("String", "Object")
	# assert not hierarchy.has_edge("Object", "String")
	# ~~~
	fun class_inheritance_metamodel: POSet[String] is abstract
					lib/serialization/safe.nit:87,2--96,59
				
	redef var class_inheritance_metamodel is lazy do
		var engine = new JsonDeserializer(class_inheritance_metamodel_json.to_s)
		engine.check_subtypes = false
		engine.whitelist.add_all(
			["String", "POSet[String]", "POSetElement[String]",
			 "HashSet[String]", "HashMap[String, POSetElement[String]]"])
		var poset = engine.deserialize
		if engine.errors.not_empty then
			print_error "Deserialization errors in class_inheritance_metamodel:"
			print_error engine.errors.join("\n* ")
			return new POSet[String]
		end
		if poset isa POSet[String] then return poset
		return new POSet[String]
	end
					lib/json/serialization_read.nit:512,2--528,4