{"generator":"GNU social 2.0.2-dev","title":"Conversation","totalItems":5,"items":[{"actor":{"id":"https:\/\/discuss.systems\/users\/ahelwer","displayName":"Andrew Helwer","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/245747-original-tmp20260430182320.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/245747-96-20260501095143.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/245747-48-20260501095143.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/245747-24-20260501095143.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"245747"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/245747-96-20260501095143.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"TLA\u207a core developer. Love formal methods &amp; distributed systems!Living in Seattle, WA, USA. Non-technical hobbies include BJJ &amp; birdwatching.Other random facts: vim user, nix\/arch dual-booter, dual Canadian\/US citizen, loose-leaf tea drinker, cyclist, living kidney donor, vegetarian, ecosocialist dreaming of a 2000 watt society! he\/him","url":"https:\/\/discuss.systems\/@ahelwer","portablecontacts_net":{"preferredUsername":"ahelwer","displayName":"Andrew Helwer","note":"TLA\u207a core developer. Love formal methods &amp; distributed systems!Living in Seattle, WA, USA. Non-technical hobbies include BJJ &amp; birdwatching.Other random facts: vim user, nix\/arch dual-booter, dual Canadian\/US citizen, loose-leaf tea drinker, cyclist, living kidney donor, vegetarian, ecosocialist dreaming of a 2000 watt society! he\/him"}},"content":"<p><a href=\"https:\/\/mastodon.online\/@nikitonsky\" class=\"u-url mention\">@nikitonsky<\/a> we looked at adding this to TLA+ recently for set cardinality, but the already-existing | and || infix operators made for some really horrifying parse ambiguities <a href=\"https:\/\/github.com\/tlaplus\/rfcs\/issues\/9\" rel=\"nofollow\">https:\/\/github.com\/tlaplus\/rfcs\/issues\/9<\/a><\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-27:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/discuss.systems\/users\/ahelwer\/statuses\/116495030593345718","object":{"id":"https:\/\/discuss.systems\/users\/ahelwer\/statuses\/116495030593345718","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.online\/@nikitonsky\" class=\"u-url mention\">@nikitonsky<\/a> we looked at adding this to TLA+ recently for set cardinality, but the already-existing | and || infix operators made for some really horrifying parse ambiguities <a href=\"https:\/\/github.com\/tlaplus\/rfcs\/issues\/9\" rel=\"nofollow\">https:\/\/github.com\/tlaplus\/rfcs\/issues\/9<\/a><\/p>","url":"https:\/\/discuss.systems\/@ahelwer\/116495030593345718","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.online\/users\/nikitonsky\/statuses\/116494830093498889","url":"https:\/\/mastodon.online\/@nikitonsky\/116494830093498889"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.online\/users\/nikitonsky"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-30:objectType=thread:nonce=f89700c8c0810670","notice_info":{"local_id":"12535126","source":"ActivityPub"}},"published":"2026-05-01T09:51:43+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/discuss.systems\/@ahelwer\/116495030593345718"},{"actor":{"id":"https:\/\/mastodon.online\/users\/nikitonsky","displayName":"Niki Tonsky","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/181016-original-tmp20231002142106.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-96-20231002142107.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-48-20231002142107.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-24-20231002142107.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"181016"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/181016-96-20231002142107.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"Fira Code, Clojure, DataScript, Humble UI","url":"https:\/\/mastodon.online\/@nikitonsky","portablecontacts_net":{"preferredUsername":"nikitonsky","displayName":"Niki Tonsky","note":"Fira Code, Clojure, DataScript, Humble UI"}},"content":"<p><a href=\"https:\/\/discuss.systems\/@ahelwer\" class=\"u-url mention\">@ahelwer<\/a> shame it didn\u2019t work out. But this is specific to TLA+, most other languages don\u2019t have | and || infix operators. The only problem with parsing would be that you can\u2019t nest it, like you can\u2019t write abs(abs(x)) and then parse it reliably ||x||<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-27:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.online\/users\/nikitonsky\/statuses\/116498319359675294","object":{"id":"https:\/\/mastodon.online\/users\/nikitonsky\/statuses\/116498319359675294","objectType":"note","content":"<p><a href=\"https:\/\/discuss.systems\/@ahelwer\" class=\"u-url mention\">@ahelwer<\/a> shame it didn\u2019t work out. But this is specific to TLA+, most other languages don\u2019t have | and || infix operators. The only problem with parsing would be that you can\u2019t nest it, like you can\u2019t write abs(abs(x)) and then parse it reliably ||x||<\/p>","url":"https:\/\/mastodon.online\/@nikitonsky\/116498319359675294","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/discuss.systems\/users\/ahelwer\/statuses\/116495030593345718","url":"https:\/\/discuss.systems\/@ahelwer\/116495030593345718"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/discuss.systems\/users\/ahelwer"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-30:objectType=thread:nonce=f89700c8c0810670","notice_info":{"local_id":"12535129","source":"ActivityPub"}},"published":"2026-05-01T09:51:42+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.online\/@nikitonsky\/116498319359675294"},{"actor":{"id":"https:\/\/mathstodon.xyz\/users\/mjd","displayName":"Mark Dominus","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/216241-original-tmp20231121155940.webp","rel":"avatar","type":"image\/webp","width":113,"height":113},{"url":"https:\/\/gnusocial.jp\/avatar\/216241-96-20240406111952.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/216241-48-20240406111952.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/216241-24-20240406111952.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"216241"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/216241-96-20240406111952.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I&#39;m an expert computer programmer, looking for work. Check out my r\u00e9sum\u00e9: https:\/\/plover.com\/~mjd\/cv\/Mark%20Jason%20Dominus.pdfAlso, an amateur mathematician, but not the angle-trisecting kind.","url":"https:\/\/mathstodon.xyz\/@mjd","portablecontacts_net":{"preferredUsername":"mjd","displayName":"Mark Dominus","note":"I&#39;m an expert computer programmer, looking for work. Check out my r\u00e9sum\u00e9: https:\/\/plover.com\/~mjd\/cv\/Mark%20Jason%20Dominus.pdfAlso, an amateur mathematician, but not the angle-trisecting kind."}},"content":"<p><a href=\"https:\/\/mastodon.online\/@nikitonsky\" class=\"u-url mention\">@nikitonsky<\/a> For a while I was thinking about a language where the semantics of brackets was user-definable at compile time.  You could have (a,b,...) assemble one sort of list, and [a,b,...] assemble a second sort, and then similarly \u201capplying\u201d (juxtaposing) the expression E to the object from [a,b,...] might perform an array lookup on E or something like that.<\/p><p>My main idea was to permit the programmer to choose and define notations for things like sets, bags, tuples, and vectors, and for array and hash subscripting to be controllable and not hardwired into the syntax.  But I'm sure that `|x|` was one of my example use cases.  <\/p><p>Some paper of <a href=\"https:\/\/types.pl\/@pigworker\" class=\"u-url mention\">@pigworker<\/a> has a horrible hack in which `Ii x y z \u2026 iI` is defined so as to perform a certain sort of computation, with `Ii` and `iI` playing the role of brackets  `Ii` has a typeclass defined so that `Ii x y z...` accumulates the `[x, y, z, ...]` at compile time, and then `iI` is some unique value with a special type that triggers the compiler to figure out that it has seen the whole list and should actually do the thing.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-27:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mathstodon.xyz\/users\/mjd\/statuses\/116494888909701345","object":{"id":"https:\/\/mathstodon.xyz\/users\/mjd\/statuses\/116494888909701345","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.online\/@nikitonsky\" class=\"u-url mention\">@nikitonsky<\/a> For a while I was thinking about a language where the semantics of brackets was user-definable at compile time.  You could have (a,b,...) assemble one sort of list, and [a,b,...] assemble a second sort, and then similarly \u201capplying\u201d (juxtaposing) the expression E to the object from [a,b,...] might perform an array lookup on E or something like that.<\/p><p>My main idea was to permit the programmer to choose and define notations for things like sets, bags, tuples, and vectors, and for array and hash subscripting to be controllable and not hardwired into the syntax.  But I'm sure that `|x|` was one of my example use cases.  <\/p><p>Some paper of <a href=\"https:\/\/types.pl\/@pigworker\" class=\"u-url mention\">@pigworker<\/a> has a horrible hack in which `Ii x y z \u2026 iI` is defined so as to perform a certain sort of computation, with `Ii` and `iI` playing the role of brackets  `Ii` has a typeclass defined so that `Ii x y z...` accumulates the `[x, y, z, ...]` at compile time, and then `iI` is some unique value with a special type that triggers the compiler to figure out that it has seen the whole list and should actually do the thing.<\/p>","url":"https:\/\/mathstodon.xyz\/@mjd\/116494888909701345","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.online\/users\/nikitonsky\/statuses\/116494830093498889","url":"https:\/\/mastodon.online\/@nikitonsky\/116494830093498889"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.online\/users\/nikitonsky"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-30:objectType=thread:nonce=f89700c8c0810670","notice_info":{"local_id":"12532269","source":"ActivityPub"}},"published":"2026-04-30T17:54:54+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mathstodon.xyz\/@mjd\/116494888909701345"},{"actor":{"id":"https:\/\/mastodon.online\/users\/nikitonsky","displayName":"Niki Tonsky","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/181016-original-tmp20231002142106.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-96-20231002142107.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-48-20231002142107.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-24-20231002142107.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"181016"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/181016-96-20231002142107.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"Fira Code, Clojure, DataScript, Humble UI","url":"https:\/\/mastodon.online\/@nikitonsky","portablecontacts_net":{"preferredUsername":"nikitonsky","displayName":"Niki Tonsky","note":"Fira Code, Clojure, DataScript, Humble UI"}},"content":"<p><a href=\"https:\/\/mathstodon.xyz\/@mjd\" class=\"u-url mention\">@mjd<\/a> I am not sure I ever dreamed of overloading brackets but I still want a language strings use paired \u201c\u201d quotes instead of identical \"\" ones. I just feel slight discomfort when start and end symbol of a sequence are the same<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-27:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.online\/users\/nikitonsky\/statuses\/116494934011755631","object":{"id":"https:\/\/mastodon.online\/users\/nikitonsky\/statuses\/116494934011755631","objectType":"note","content":"<p><a href=\"https:\/\/mathstodon.xyz\/@mjd\" class=\"u-url mention\">@mjd<\/a> I am not sure I ever dreamed of overloading brackets but I still want a language strings use paired \u201c\u201d quotes instead of identical \"\" ones. I just feel slight discomfort when start and end symbol of a sequence are the same<\/p>","url":"https:\/\/mastodon.online\/@nikitonsky\/116494934011755631","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mathstodon.xyz\/users\/mjd\/statuses\/116494888909701345","url":"https:\/\/mathstodon.xyz\/@mjd\/116494888909701345"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mathstodon.xyz\/users\/mjd"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-30:objectType=thread:nonce=f89700c8c0810670","notice_info":{"local_id":"12532270","source":"ActivityPub"}},"published":"2026-04-30T17:54:53+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.online\/@nikitonsky\/116494934011755631"},{"actor":{"id":"https:\/\/mastodon.online\/users\/nikitonsky","displayName":"Niki Tonsky","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/181016-original-tmp20231002142106.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-96-20231002142107.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-48-20231002142107.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/181016-24-20231002142107.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"181016"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/181016-96-20231002142107.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"Fira Code, Clojure, DataScript, Humble UI","url":"https:\/\/mastodon.online\/@nikitonsky","portablecontacts_net":{"preferredUsername":"nikitonsky","displayName":"Niki Tonsky","note":"Fira Code, Clojure, DataScript, Humble UI"}},"content":"<p>If I ever to create my own programming language, I\u2019ll make sure that |x| means abs(x)<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-27:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.online\/users\/nikitonsky\/statuses\/116494830093498889","object":{"id":"https:\/\/mastodon.online\/users\/nikitonsky\/statuses\/116494830093498889","objectType":"note","content":"<p>If I ever to create my own programming language, I\u2019ll make sure that |x| means abs(x)<\/p>","url":"https:\/\/mastodon.online\/@nikitonsky\/116494830093498889","status_net":{"notice_id":null}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-30:objectType=thread:nonce=f89700c8c0810670","notice_info":{"local_id":"12532201","source":"ActivityPub"}},"published":"2026-04-30T17:28:03+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.online\/@nikitonsky\/116494830093498889"}],"links":[{"url":"https:\/\/gnusocial.jp\/conversation\/6363903","rel":"alternate","type":"text\/html"}]}