nitc :: MNullableType :: defaultinit
# A type prefixed with "nullable"
class MNullableType
	super MProxyType
	init
	do
		self.to_s = "nullable {mtype}"
	end
	redef var to_s is noinit
	redef var full_name is lazy do return "nullable {mtype.full_name}"
	redef var c_name is lazy do return "nullable__{mtype.c_name}"
	redef fun as_nullable do return self
	redef fun resolve_for(mtype, anchor, mmodule, cleanup_virtual)
	do
		var res = super
		return res.as_nullable
	end
	# Efficiently returns `mtype.lookup_fixed(mmodule, resolved_receiver).as_nullable`
	redef fun lookup_fixed(mmodule, resolved_receiver)
	do
		var t = super
		if t == mtype then return self
		return t.as_nullable
	end
	redef fun mdoc_or_fallback do return mtype.mdoc_or_fallback
end
					src/model/model.nit:1830,1--1861,3