code: def _compile_literal(self, schema):
          
          # Prepare self
          self.compiled_type = const.COMPILED_TYPE.LITERAL
          self.name = get_literal_name(schema)
  
          # Error partials
          schema_type = type(schema)
          err_type  = self.Invalid(_(u'Wrong value type'), get_type_name(schema_type))
          err_value = self.Invalid(_(u'Invalid value'), self.name)
  
          # Matcher
          if self.matcher:
              def match_literal(v):
                  return type(v) == schema_type and v == schema, v
              return match_literal
  
          # Validator
          def validate_literal(v):
              # Type check
              if type(v) != schema_type:
                  # expected=<type>, provided=<type>
                  raise err_type(get_type_name(type(v)))
              # Equality check
              if v != schema:
                  # expected=<value>, provided=<value>
                  raise err_value(get_literal_name(v))
              # Fine
              return v
          return validate_literal
docs: Compile literal schema: type and value matching