docs: 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