 Formalizations of  (C)  typically make no assumptions about what meanings are. This way we achieve generality and stay clear of dogmatic pronouncements. Still, it is a mistake to abandon all constraints for that turns compositionality into a vacuous requirement. It is trivial that we can compositionally assign something to each expression of a language (for example, if expressions serve as their own meanings, semantics is certainly compositional!) but it does not follow that it is trivial to adequately assign meanings to them.