Does the C-version of self the same than the C-version of other?

Property definitions

nitc :: separate_compiler $ MSignature :: c_equiv
	# Does the C-version of `self` the same than the C-version of `other`?
	fun c_equiv(other: MSignature): Bool
	do
		if self == other then return true
		if arity != other.arity then return false
		for i in [0..arity[ do
			if mparameters[i].mtype.ctype != other.mparameters[i].mtype.ctype then return false
		end
		if return_mtype != other.return_mtype then
			if return_mtype == null or other.return_mtype == null then return false
			if return_mtype.ctype != other.return_mtype.ctype then return false
		end
		return true
	end
src/compiler/separate_compiler.nit:2447,2--2460,4