class AST::FunctionDefinition attr_reader :name, :parameters, :body def initialize(name, parameters, body) @name = name @parameters = parameters @body = body end def ==(other) other.is_a?(AST::FunctionDefinition) && other.name == @name && other.parameters == @parameters && other.body == @body end def execute(env) env.set(@name.name, self) end end