module Commonmarker::Utils

def fetch_kv(options, key, value, type)

def fetch_kv(options, key, value, type)
  value_klass = value.class
  if Constants::BOOLS.include?(value) && BOOLS.include?(options[key])
    options[key]
  elsif options[key].is_a?(value_klass)
    options[key]
  else
    expected_type = Constants::BOOLS.include?(value) ? "Boolean" : value_klass.to_s
    raise TypeError, "#{type} option `:#{key}` must be #{expected_type}; got #{options[key].class}"
  end
end