When CompiledSchema compiles this marker, it sets informational values onto it.

        Note that arguments may be provided in two incomplete sets,
        e.g. (name, key_schema, None) and then (None, None, value_schema).
        Thus, all assignments must be handled individually.

        It is possible that a marker may have no `value_schema` at all:
        e.g. in the case of { Extra: Reject } -- `Reject` will have no value schema,
        but `Extra` will have compiled `Reject` as the value.

        :param key_schema: Compiled key schema
        :type key_schema: CompiledSchema|None
        :param value_schema: Compiled value schema
        :type value_schema: CompiledSchema|None
        :param name: Human-friendly marker name
        :type name: unicode|None
        :param as_mapping_key: Whether it's used as a mapping key?
        :type as_mapping_key: bool|None
        :rtype: Marker

def on_compiled(self, name=None, key_schema=None, value_schema=None, as_mapping_key=None):
        """ When CompiledSchema compiles this marker, it sets informational values onto it.

        Note that arguments may be provided in two incomplete sets,
        e.g. (name, key_schema, None) and then (None, None, value_schema).
        Thus, all assignments must be handled individually.

        It is possible that a marker may have no `value_schema` at all:
        e.g. in the case of { Extra: Reject } -- `Reject` will have no value schema,
        but `Extra` will have compiled `Reject` as the value.

        :param key_schema: Compiled key schema
        :type key_schema: CompiledSchema|None
        :param value_schema: Compiled value schema
        :type value_schema: CompiledSchema|None
        :param name: Human-friendly marker name
        :type name: unicode|None
        :param as_mapping_key: Whether it's used as a mapping key?
        :type as_mapping_key: bool|None
        :rtype: Marker
        """
        if self.name is None:
            self.name = name
        if self.key_schema is None:
            self.key_schema = key_schema
        if self.value_schema is None:
            self.value_schema = value_schema
        if as_mapping_key:
            self.as_mapping_key = True
        return self