From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.9 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_BL_SPAMCOP_NET,SPF_HELO_PASS, SPF_PASS,UNPARSEABLE_RELAY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from nue.mailmanlists.eu (nue.mailmanlists.eu [IPv6:2a01:4f8:1c0c:6b10::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 26A191F601 for ; Sat, 3 Dec 2022 02:56:48 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.b="XY88/Gts"; dkim-atps=neutral Received: from nue.mailmanlists.eu (localhost [127.0.0.1]) by nue.mailmanlists.eu (Postfix) with ESMTP id 8F1F27E8DB; Sat, 3 Dec 2022 02:56:38 +0000 (UTC) Authentication-Results: nue.mailmanlists.eu; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=XY88/Gts; dkim-atps=neutral Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by nue.mailmanlists.eu (Postfix) with ESMTPS id 772AA7E729 for ; Sat, 3 Dec 2022 02:56:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ruby-lang.org; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc:content-type:from:subject:to; s=s1; bh=cY18qR7EheYARtTqhNc1N7OQpEQxUzc2iYbU6QmRJh0=; b=XY88/GtsarxgDelenjwP6lFl7ARGmyrBzadz9DJeNy0Z0aLYM10q3rSzFeyqAEF/7pOH ilGG1JlKB0smd0Ef9Et0kHLdNNfG+MrGVTc5zy6FnJ+wVpHwDyKExA3Li0QGtE5jj37f8M B2YfEnaVXgyWIA8oAAffU+SVqLLQZKtV7lb4PdOUrn3ZpsfY5lJnA4D2q4r9B7Syx53uB3 aY+17rhAGjOYw5PB7Jhef5xTPau+LQ/1hSfSHBmgdqp97wVhUhKJyjvCVeyODJDwpUURAy K7vFKY90njW4pGG2+2LPCOQ7KXMysPu4sCGN6VbPNXokZR3MFmy6RRd0K0YTaQ1w== Received: by filterdrecv-6b9548745c-l8bjx with SMTP id filterdrecv-6b9548745c-l8bjx-1-638ABAE0-15 2022-12-03 02:56:32.834827988 +0000 UTC m=+1309707.864603801 Received: from herokuapp.com (unknown) by geopod-ismtpd-1-2 (SG) with ESMTP id nV3ack-JQjuly3Bhgm_aOw for ; Sat, 03 Dec 2022 02:56:32.799 +0000 (UTC) Date: Sat, 03 Dec 2022 02:56:32 +0000 (UTC) From: "ufuk (Ufuk Kayserilioglu)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 19000 X-Redmine-Issue-Author: RubyBugs X-Redmine-Sender: ufuk X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 87522 X-SG-EID: =?us-ascii?Q?A6EJP4KLXcX9WmZWzaMfQY1Pp4YiBmBZQqgK4wKj+c0EHbWcqLGUU5UAVPY3wI?= =?us-ascii?Q?3L3xfYIeb84bKpiSNVXcuiTpsWPZaMIhuzUV8h=2F?= =?us-ascii?Q?=2FjtR3Ek7sHTWG6mMG2aSoBfl8WwmdtD3KZTRiF1?= =?us-ascii?Q?sayVuPILqBJcwGZ9LPKxG=2Fvp2xE0Fh=2FBTt0v8OX?= =?us-ascii?Q?JS0+IAHIB3C1IMUvAuITFu+NHRet7KOS3PEoJ2z?= =?us-ascii?Q?=2FpEzoBFcg4HQAXbUV=2FoxQxJYJKL++36TnvvBiER?= =?us-ascii?Q?iSpE5T8MHqEvocIYwuAQQ=3D=3D?= To: ruby-core@ml.ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== Message-ID-Hash: S2RRJJFMOXRN56RL42JTTWLQXT5MUBLQ X-Message-ID-Hash: S2RRJJFMOXRN56RL42JTTWLQXT5MUBLQ X-MailFrom: bounces+313651-b711-ruby-core=ml.ruby-lang.org@em5188.ruby-lang.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.3 Precedence: list Reply-To: Ruby developers Subject: [ruby-core:111170] [Ruby master Feature#19000] Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object] List-Id: Ruby developers Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SXNzdWUgIzE5MDAwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgdWZ1ayAoVWZ1ayBLYXlzZXJpbGlvZ2x1 KS4NDQoNDQoNDQpUaGFuayB5b3UgQG1hdHouIEkgd2lsbCB1cGRhdGUgdGhlIGltcGxlbWVudGF0 aW9uIHRvIG1ha2UgdGhlIG5vLWFyZ3MgY2FzZSBhbiBlcnJvciwgYW5kIHBvaW50IHBlb3BsZSB0 byB1c2UgYGR1cGAgdG8gbWFrZSBpZGVudGljYWwgc2hhbGxvdyBjbG9uZXMgaW5zdGVhZCBpbiB0 aGUgZXJyb3IgbWVzc2FnZS4NDQoNDQpJIHJlYWQgdGhlIGRldiBtZWV0aW5nIG5vdGVzIGFuZCBz YXcgdGhhdCB5b3UgbWFkZSBhIHBvaW50IGFib3V0IHRoZSBtYWluIG9mIHRoZSBvcGVyYXRpb24g bm90IGJlaW5nIGFib3V0IGR1cGxpY2F0aW9uLiBXaGlsZSBJIGFncmVlIHdpdGggdGhhdCwgSSBh bHNvIGZlZWwgbGlrZSB0aGF0IGlzIG1ha2luZyBwZW9wbGUgdGhpbmsgdGhhdCB0aGV5IGFyZSBt YWtpbmcgYSBjaGVhcCBvcGVyYXRpb24sIHdoZW4gdGhleSBhcmUgYWN0dWFsbHkgY3JlYXRpbmcg YSBjbG9uZSB3aXRoIG1vZGlmaWVkIHZhbHVlcywgaXNuJ3QgdGhlIGJlc3QgaW50ZXJmYWNlLiBJ IGhhZCBzdWdnZXN0ZWQgYGR1cGAgdG8gbWFrZSB0aGF0IGV4cGxpY2l0LCBidXQgaGFwcHkgdG8g Z28gd2l0aCBhbm90aGVyIG5hbWUgdGhhdCBpcyBjaG9zZW4gdGhhdCBnaXZlcyBhIHNpbWlsYXIg c2Vuc2Ugb2YgYW4gZXh0cmEgY2xvbmUgb3BlcmF0aW9uIGhhcHBlbmluZyB1bmRlciB0aGUgaG9v ZC4gQW5vdGhlciBuYW1lIHRoYXQgd2FzIHN1Z2dlc3RlZCB3YXMgYSBgZHVwX3dpdGhgIHRoYXQg SSBhbHNvIGZpbmQgYWNjZXB0YWJsZSBwZXJzb25hbGx5Lg0NCg0NCkFsb25nIHRoZSBzYW1lIGxp bmVzLCBJIGZlZWwgbGlrZSBgdXBkYXRlYCBnaXZlcyB0aGUgd3JvbmcgaW1wcmVzc2lvbiB0aGF0 IHRoZSByZWNlaXZlciBpbnN0YW5jZSB3aWxsIGJlIHVwZGF0ZWQsIHNvIG15IHZvdGUgd291bGQg YmUgYWdhaW5zdCBpdC4NDQoNDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQ0KRmVhdHVyZSAjMTkwMDA6IERhdGE6IEFkZCAiQ29weSB3aXRoIGNoYW5nZXMgbWV0aG9k IiBbRm9sbG93LW9uIHRvICMxNjEyMiBEYXRhOiBzaW1wbGUgaW1tdXRhYmxlIHZhbHVlIG9iamVj dF0NDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkwMDAjY2hhbmdlLTEwMDQ1 NQ0NCg0NCiogQXV0aG9yOiBSdWJ5QnVncyAoQSBOb255bW91cykNDQoqIFN0YXR1czogT3Blbg0N CiogUHJpb3JpdHk6IE5vcm1hbA0NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NDQoqQXMgcmVxdWVzdGVkOiBleHRyYWN0ZWQgYSBmb2xsb3ctdXAgdG8gIzE2MTIyIERh dGE6IHNpbXBsZSBpbW11dGFibGUgdmFsdWUgb2JqZWN0IGZyb20gW3RoaXMgY29tbWVudF0oaHR0 cDovL2JsYWRlLm5hZ2Fva2F1dC5hYy5qcC9jZ2ktYmluL3NjYXQucmIvcnVieS9ydWJ5LWNvcmUv MTA5ODE1KSoNDQoNDQoNDQojIFByb3Bvc2FsOiBBZGQgYSAiQ29weSB3aXRoIGNoYW5nZXMiIG1l dGhvZCB0byBEYXRhDQ0KDQ0KQXNzdW1lIHRoZSBwcm9wb3NlZCBgRGF0YS5kZWZpbmVgIGV4aXN0 cy4NDQpTZWVpbmcgZXhhbXBsZXMgZnJvbSB0aGUgW1tWYWx1ZXMgZ2VtXV0oaHR0cHM6Ly9naXRo dWIuY29tL21zLWF0aS9WYWx1ZXMpOg0NCg0NCmBgYHJ1YnkNDQpyZXF1aXJlICJ2YWx1ZXMiDQ0K DQ0KIyBBIG5ldyBjbGFzcw0NClBvaW50ID0gVmFsdWUubmV3KDp4LCA6eSkNDQoNDQojIEFuIGlt bXV0YWJsZSBpbnN0YW5jZQ0NCk9yaWdpbiA9IFBvaW50LndpdGgoeDogMCwgeTogMCkNDQoNDQoj IFE6IEhvdyBkbyB3ZSBtYWtlIGNvcGllcyB0aGF0IGNoYW5nZSAxIG9yIG1vcmUgdmFsdWVzPw0N CnJpZ2h0ICAgICAgICA9IE9yaWdpbi53aXRoKHg6IDEuMCkNDQp1cCAgICAgICAgICAgPSBPcmln aW4ud2l0aCh5OiAxLjApDQ0KdXBfYW5kX3JpZ2h0ID0gcmlnaHQud2l0aCh5OiB1cC55KQ0NCg0N CiMgSW4gbG9vcHMNDQptb3ZlbWVudHMgPSBbDQ0KICBbIDp4LCArMC41IF0sDQ0KICBbIDp4LCAr MC41IF0sDQ0KICBbIDp5LCAtMS4wIF0sDQ0KICBbIDp4LCArMC41IF0sDQ0KXQ0NCg0NCiMgcG9z aXRpb24gPSBQb2ludCh4OiAxLjUsIHk6IC0xLjApDQ0KcG9zaXRpb24gPSBtb3ZlbWVudHMuaW5q ZWN0KE9yaWdpbikgZG8gfHAsIChmaWVsZCwgZGVsdGEpfA0NCiAgcC53aXRoKGZpZWxkID0+IHAu c2VuZChmaWVsZCkgKyBkZWx0YSkNDQplbmQNDQpgYGANDQoNDQojIyBQcm9wb3NlZCBkZXRhaWw6 IENhbGwgdGhpcyBtZXRob2Q6IGAjd2l0aGANDQoNDQpgYGBydWJ5DQ0KTW9uZXkgPSBEYXRhLmRl ZmluZSg6YW1vdW50LCA6Y3VycmVuY3kpDQ0KDQ0KYWNjb3VudCA9IE1vbmV5Lm5ldyhhbW91bnQ6 IDEwMCwgY3VycmVuY3k6ICdVU0QnKQ0NCg0NCnRyYW5zYWN0aW9ucyA9IFsrMTAsIC01LCArMTVd DQ0KDQ0KYWNjb3VudCA9IHRyYW5zYWN0aW9ucy5pbmplY3QoYWNjb3VudCkgeyB8YSwgdHwgYS53 aXRoKGFtb3VudDogYS5hbW91bnQgKyB0KSB9DQ0KIz0+IE1vbmV5KGFtb3VudDogMTIwLCBjdXJy ZW5jeTogIlVTRCIpDQ0KYGBgDQ0KDQ0KIyMgV2h5IGFkZCB0aGlzICJDb3B5IHdpdGggY2hhbmdl cyIgbWV0aG9kIHRvIHRoZSBEYXRhIHNpbXBsZSBpbW11dGFibGUgdmFsdWUgY2xhc3M/DQ0KDQ0K Q2FsbGVkIG9uIGFuIGluc3RhbmNlLCBpdCByZXR1cm5zIGEgbmV3IGluc3RhbmNlIHdpdGggb25s eSB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycyBjaGFuZ2VkLg0NCg0NClRoaXMgQVBJIGFmZm9yZGFu Y2UgaXMgbm93ICoqd2lkZWx5IGFkb3B0ZWQgYWNyb3NzIG1hbnkgbGFuZ3VhZ2VzKiogZm9yIGl0 cyB1c2VmdWxuZXNzLiBXaHkgaXMgaXQgc28gdXNlZnVsPyBCZWNhdXNlIGNvcHlpbmcgaW1tdXRh YmxlIHZhbHVlIG9iamVjdCBpbnN0YW5jZXMsIHdpdGggMSBvciBtb3JlIGRpc2NyZXRlIGNoYW5n ZXMgdG8gc3BlY2lmaWMgZmllbGRzLCBpcyB0aGUgcHJvcGVyIGFuZCB1YmlxdWl0b3VzIHBhdHRl cm4gdGhhdCB0YWtlcyB0aGUgcGxhY2Ugb2YgbXV0YXRpb24gd2hlbiB3b3JraW5nIHdpdGggaW1t dXRhYmxlIHZhbHVlIG9iamVjdHMuDQ0KDQ0KKipPdGhlciBsYW5ndWFnZXMqKg0NCg0NCkMjIFJl Y29yZHM6IOKAnGltbXV0YWJsZSByZWNvcmQgc3RydWN0cyDigJQgTm9uLWRlc3RydWN0aXZlIG11 dGF0aW9u4oCdIOKAlCBpcyBjYWxsZWQgYHdpdGggeyAuLi4gfWANDQpodHRwczovL2RvY3MubWlj cm9zb2Z0LmNvbS9lbi11cy9kb3RuZXQvY3NoYXJwL2xhbmd1YWdlLXJlZmVyZW5jZS9idWlsdGlu LXR5cGVzL3JlY29yZCNub25kZXN0cnVjdGl2ZS1tdXRhdGlvbg0NCg0NClNjYWxhIENhc2UgQ2xh c3NlcyDigJQgaXMgY2FsbGVkIGAjY29weWANDQpodHRwczovL2RvY3Muc2NhbGEtbGFuZy5vcmcv dG91ci9jYXNlLWNsYXNzZXMuaHRtbA0NCg0NCkphdmEgMTQrIFJlY29yZHMg4oCUIEJyaWFuIEdv ZXR6IGF0IE9yYWNsZSBpcyB3b3JraW5nIG9uIGFkZGluZyBhIHdpdGggY29weSBjb25zdHJ1Y3Rv ciBpbnNwaXJlZCBieSBDIyBhYm92ZSBhcyB3ZSBzcGVhaywgbGlrZWx5IHRvIGJlIGNhbGxlZCBg I3dpdGhgDQ0KaHR0cHM6Ly9tYWlsLm9wZW5qZGsub3JnL3BpcGVybWFpbC9hbWJlci1zcGVjLWV4 cGVydHMvMjAyMi1KdW5lLzAwMzQ2MS5odG1sDQ0KDQ0KUnVzdCDigJxTdHJ1Y3QgVXBkYXRlIFN5 bnRheOKAnSB2aWEgYC4uYCBzeW50YXggaW4gY29uc3RydWN0b3INDQpodHRwczovL2RvYy5ydXN0 LWxhbmcub3JnL2Jvb2svY2gwNS0wMS1kZWZpbmluZy1zdHJ1Y3RzLmh0bWwjY3JlYXRpbmctaW5z dGFuY2VzLWZyb20tb3RoZXItaW5zdGFuY2VzLXdpdGgtc3RydWN0LXVwZGF0ZS1zeW50YXgNDQoN DQojIyBBbHRlcm5hdGl2ZXMNDQoNDQpXaXRob3V0IGEgY29weS13aXRoLWNoYW5nZXMgbWV0aG9k LCBvbmUgbXVzdCBjb25zdHJ1Y3QgZW50aXJlbHkgbmV3IGluc3RhbmNlcyB1c2luZyB0aGUgY29u c3RydWN0b3IuIFRoaXMgY2FuIGVpdGhlciBiZSAoYSkgZnVsbHkgc3BlbGxlZCBvdXQgYXMgYm9p bGVycGxhdGUgY29kZSwgb3IgKGIpIHVzZSBhIHN5bW1ldHJpY2FsIGAjdG9faGAgdG8gZmVlZCB0 aGUga2V5d29yZC1hcmdzIGNvbnN0cnVjdG9yLg0NCg0NCioqKGEpIEJvaWxlcnBsYXRlIHVzaW5n IGNvbnN0cnVjdG9yKioNDQoNDQpgYGBydWJ5DQ0KUG9pbnQgPSBEYXRhLmRlZmluZSg6eCwgOnks IDp6KQ0NCk9yaWdpbiA9IFBvaW50Lm5ldyh4OiAwLjAsIHk6IDAuMCwgejogMC4wKQ0NCg0NCmNo YW5nZSA9IHsgejogLTEuNSB9DQ0KDQ0KIyBIYXZlIHRvIHVzZSBmdWxsIGNvbnN0cnVjdG9yIC0t IGRvZXMgdGhpcyBldmVuIHdvcms/DQ0KcG9pbnQgPSBQb2ludC5uZXcoeDogT3JpZ2luLngsIHk6 IE9yaWdpbi55LCAqKmNoYW5nZSkNDQpgYGANDQoNDQoqKihiKSBVc2luZyBhIHNlcGFyYXRlbHkg cHJvcG9zZWQgYCN0b19oYCBtZXRob2QgYW5kIGNvbnN0cnVjdG9yIHN5bW1ldHJ5KioNDQoNDQpg YGBydWJ5DQ0KUG9pbnQgPSBEYXRhLmRlZmluZSg6eCwgOnksIDp6KQ0NCk9yaWdpbiA9IFBvaW50 Lm5ldyh4OiAwLjAsIHk6IDAuMCwgejogMC4wKQ0NCg0NCmNoYW5nZSA9IHsgejogLTEuNSB9DQ0K DQ0KIyBIYXZlIHRvIHVzZSBmdWxsIGNvbnN0cnVjdG9yIC0tIGRvZXMgdGhpcyBldmVuIHdvcms/ DQ0KcG9pbnQgPSBQb2ludC5uZXcoKiooT3JpZ2luLnRvX2gubWVyZ2UoY2hhbmdlKSkpDQ0KYGBg DQ0KDQ0KTm90aWNlIHRoYXQgdGhlIGFib3ZlIGFyZSBub3QgZXJnb25vbWljIC0tIGxlYWRpbmcg c28gbWFueSBvZiBvdXIgcGVlciBsYW5ndWFnZSBjb21tdW5pdGllcyB0byBhZG9wdCB0aGUgYCN3 aXRoYCBtZXRob2QgdG8gY29weSBhbiBpbnN0YW5jZSB3aXRoIGRpc2NyZXRlIGNoYW5nZXMuDQ0K DQ0KDQ0KDQ0KLS0gDQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQ0KIF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxp c3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4g ZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZv IC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9wb3N0b3JpdXMvbGlzdHMvcnVi eS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv