class Byebug::Command

def settings

def settings
  unless defined? @settings and @settings
    @settings = Object.new
    map = settings_map
    c = class << @settings; self end
    c.send(:define_method, :[]) do |name|
      raise "No such setting #{name}" unless map.has_key?(name)
      map[name][:getter].call
    end
    c.send(:define_method, :[]=) do |name, value|
      raise "No such setting #{name}" unless map.has_key?(name)
      map[name][:setter].call(value)
    end
  end
  @settings
end