class AST::Hash attr_reader :data def initialize(data) @data = data end def ==(other) other.is_a?(AST::Hash) && other.data == @data end def execute(env) result = Hash.new @data.each do |k, v| result[k] = v.execute(env) end result end end