frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

LegalArgumentException: From Courtrooms to Clojure – Sen [video]

https://www.youtube.com/watch?v=cmMQbsOTX-o
1•adityaathalye•1m ago•0 comments

US moves to deport 5-year-old detained in Minnesota

https://www.reuters.com/legal/government/us-moves-deport-5-year-old-detained-minnesota-2026-02-06/
1•petethomas•4m ago•0 comments

If you lose your passport in Austria, head for McDonald's Golden Arches

https://www.cbsnews.com/news/us-embassy-mcdonalds-restaurants-austria-hotline-americans-consular-...
1•thunderbong•9m ago•0 comments

Show HN: Mermaid Formatter – CLI and library to auto-format Mermaid diagrams

https://github.com/chenyanchen/mermaid-formatter
1•astm•24m ago•0 comments

RFCs vs. READMEs: The Evolution of Protocols

https://h3manth.com/scribe/rfcs-vs-readmes/
2•init0•31m ago•1 comments

Kanchipuram Saris and Thinking Machines

https://altermag.com/articles/kanchipuram-saris-and-thinking-machines
1•trojanalert•31m ago•0 comments

Chinese chemical supplier causes global baby formula recall

https://www.reuters.com/business/healthcare-pharmaceuticals/nestle-widens-french-infant-formula-r...
1•fkdk•34m ago•0 comments

I've used AI to write 100% of my code for a year as an engineer

https://old.reddit.com/r/ClaudeCode/comments/1qxvobt/ive_used_ai_to_write_100_of_my_code_for_1_ye...
1•ukuina•36m ago•1 comments

Looking for 4 Autistic Co-Founders for AI Startup (Equity-Based)

1•au-ai-aisl•46m ago•1 comments

AI-native capabilities, a new API Catalog, and updated plans and pricing

https://blog.postman.com/new-capabilities-march-2026/
1•thunderbong•47m ago•0 comments

What changed in tech from 2010 to 2020?

https://www.tedsanders.com/what-changed-in-tech-from-2010-to-2020/
2•endorphine•52m ago•0 comments

From Human Ergonomics to Agent Ergonomics

https://wesmckinney.com/blog/agent-ergonomics/
1•Anon84•55m ago•0 comments

Advanced Inertial Reference Sphere

https://en.wikipedia.org/wiki/Advanced_Inertial_Reference_Sphere
1•cyanf•57m ago•0 comments

Toyota Developing a Console-Grade, Open-Source Game Engine with Flutter and Dart

https://www.phoronix.com/news/Fluorite-Toyota-Game-Engine
1•computer23•59m ago•0 comments

Typing for Love or Money: The Hidden Labor Behind Modern Literary Masterpieces

https://publicdomainreview.org/essay/typing-for-love-or-money/
1•prismatic•1h ago•0 comments

Show HN: A longitudinal health record built from fragmented medical data

https://myaether.live
1•takmak007•1h ago•0 comments

CoreWeave's $30B Bet on GPU Market Infrastructure

https://davefriedman.substack.com/p/coreweaves-30-billion-bet-on-gpu
1•gmays•1h ago•0 comments

Creating and Hosting a Static Website on Cloudflare for Free

https://benjaminsmallwood.com/blog/creating-and-hosting-a-static-website-on-cloudflare-for-free/
1•bensmallwood•1h ago•1 comments

"The Stanford scam proves America is becoming a nation of grifters"

https://www.thetimes.com/us/news-today/article/students-stanford-grifters-ivy-league-w2g5z768z
4•cwwc•1h ago•0 comments

Elon Musk on Space GPUs, AI, Optimus, and His Manufacturing Method

https://cheekypint.substack.com/p/elon-musk-on-space-gpus-ai-optimus
2•simonebrunozzi•1h ago•0 comments

X (Twitter) is back with a new X API Pay-Per-Use model

https://developer.x.com/
3•eeko_systems•1h ago•0 comments

Zlob.h 100% POSIX and glibc compatible globbing lib that is faste and better

https://github.com/dmtrKovalenko/zlob
3•neogoose•1h ago•1 comments

Show HN: Deterministic signal triangulation using a fixed .72% variance constant

https://github.com/mabrucker85-prog/Project_Lance_Core
2•mav5431•1h ago•1 comments

Scientists Discover Levitating Time Crystals You Can Hold, Defy Newton’s 3rd Law

https://phys.org/news/2026-02-scientists-levitating-crystals.html
3•sizzle•1h ago•0 comments

When Michelangelo Met Titian

https://www.wsj.com/arts-culture/books/michelangelo-titian-review-the-renaissances-odd-couple-e34...
1•keiferski•1h ago•0 comments

Solving NYT Pips with DLX

https://github.com/DonoG/NYTPips4Processing
1•impossiblecode•1h ago•1 comments

Baldur's Gate to be turned into TV series – without the game's developers

https://www.bbc.com/news/articles/c24g457y534o
3•vunderba•1h ago•0 comments

Interview with 'Just use a VPS' bro (OpenClaw version) [video]

https://www.youtube.com/watch?v=40SnEd1RWUU
2•dangtony98•1h ago•0 comments

EchoJEPA: Latent Predictive Foundation Model for Echocardiography

https://github.com/bowang-lab/EchoJEPA
1•euvin•1h ago•0 comments

Disablling Go Telemetry

https://go.dev/doc/telemetry
2•1vuio0pswjnm7•2h ago•0 comments
Open in hackernews

A Early History of Algebraic Data Types

https://www.hillelwayne.com/post/algdt-history/
72•surprisetalk•4mo ago

Comments

Rochus•4mo ago
See https://news.ycombinator.com/item?id=45461480
hwayne•3mo ago
Now you just gotta go to the first submission and post a link here. Complete the circle!
Rochus•3mo ago
The principle of causality actually prevents time from forming closed loops in which time would run in a circle.
adrian_b•3mo ago
This is a good summary of the history, but there is one small error.

The sentence "Hoare seems to have independently come up with the idea of sum and product types." is not true.

C.A.R. Hoare has first described his proposals in November 1965, in "Record Handling". This followed after a year the proposal of John McCarthy from October 1964, "Definition of new data types in ALGOL x".

Hoare and McCarthy were colleagues in the committee for designing a successor of ALGOL 60, where both proposals have been discussed and Hoare has taken explicitly the concepts of product types and union types (sum types) from McCarthy.

However, instead of using the "Cartesian" keyword used by McCarthy, Hoare has used the older keywords "record" and "record class", taken from COBOL 60, because "record class" and "Cartesian" really were the same method of deriving a new type. The term "record class" of Hoare was shortened to "class" in SIMULA 67, from where "class" has been taken by all object-oriented programming languages.

The proposal of Hoare was explicitly based on the proposal of McCarthy, on COBOL 60 and on the concept of pointers previously introduced in the languages CPL and Euler. However, like in those 2 languages, Hoare used the term "references" for pointers. The term pointer was used for the first time by IBM one year later, when they have added to PL/I a part of the features proposed by Hoare.

To records (named structures in PL/I), record classes (= product types), unions (sum types) and references (named pointers in PL/I) from his predecessors, Hoare has added a few new concepts, e.g. null pointers, enumerations (named finite sets), the operator "new", constructors and destructors (not named such). Overloaded operators had already been proposed by McCarthy.

user____name•3mo ago
Hmm, I always thought of "sum type" as abstract/type theoretic and "tagged/discriminated union" as one possible implementation of the concept for a finite memory model.
pjmlp•3mo ago
Great article, usually many end up only talking about recent history, while this traces much further back to the origins.
Rochus•3mo ago
Interesting article, thanks for sharing.

> Niklaus Wirth uses “discriminated union” why Pascal doesn’t have sum types.

In the referenced paper (Wirth, 1975, An assessment of the programming language PASCAL, ACM), Wirth refers to the "inspect when" statement of Simula 67, which is structurally identical to type discrimination with (exhaustive) pattern matching; so Simula essentially already had something like "sum types" (unified with inheritance). Wirth implemented the same concept in his later Oberon language (which also supports inheritance and offers a WITH statement similar to Simula's "inspect when"). Also Pascal variant records are similar to sum types (even if Wirth didn't use this term); variant records have an explicit tag field, though Pascal doesn't enforce tag nor exhaustiveness checking. Wirth improved this in Oberon, which can be used to meet both key guarantees of sum types.

zeckalpha•3mo ago
> ALGOL-68 would later implement both of them but also be a curious dead end in language history; it would have little impact on modern programming languages.

I chuckled at this one because I consider most modern languages to be homomorphic to Algol-68.

AnimalMuppet•3mo ago
To all of Algol-68? Or just to a subset of it?

I think that there was a part of Algol-68 that took over the world. That part has been table stakes for a "real" language ever since. But, if I understand correctly, Algol-68 had some weird corners, too, and I'm not sure that other languages kept those.

voidhorse•3mo ago
Nice write up! Ahistorically, if you know some category theory the ideas map directly to what are called sums and products in category theory, and the "category of algebras" is just the special category in which much of the semantics of programming takes place (which is just an abstraction where we have operations just like sum and multiplication, but we can use any set, not just the numbers)—hence types are "algebraic" products and sums.
ks2048•3mo ago
> Sum types are relatively rare in modern programming languages, outside functional programming and some places like Rust.

Is that true? I guess it depends on what "modern" means. But, for popular languages less that ~20 years old seem to all have them AFAIK, except Go, I think.

Swift being one I've used which I like a lot (Swift enum).

armchairhacker•3mo ago
Sum types are effectively implemented in Java, Scala, and Kotlin, via sealed classes and (Java “record”, Scala “case class”, Kotlin “data class”)es; and in TypeScript via discriminated unions (https://www.typescriptlang.org/docs/handbook/unions-and-inte...).

By “effectively” I mean you can construct and pattern-match these exactly like sum types, with compile-time exhaustiveness checking. Sure, you can do extra things with them (like share one variant between multiple types or compare instances by pointer), so some may argue they aren’t “real” sum types. But there’s nothing you can do with “real” sum types that you can’t with them, so I think they’re just a superset.

thesz•3mo ago
The list of papers miss this one from 1970: https://personal.cis.strath.ac.uk/conor.mcbride/FVMcB-PhD.pd...

This is thesis of Frederick McBride, father of Connor McBride, who does significant work in dependent types' circles [1]. The thesis describes symbolic computation algorithms, applies them to expression derivative calculation with simplification, and provides not only definition and construction of algebraic types, but also pattern matching over their values.

[1] https://personal.cis.strath.ac.uk/conor.mcbride/

hwayne•3mo ago
Since writing this I've been informed of some gaps (mostly through email and a lobsters [1] thread). Some of the main ones:

- McCarthy's "Direct Union" is probably conflating "disjoint union" and "direct sum".

- ML probably got the sum/product names from Dana Scott's work. It's unclear if Scott knew of McCarthy's paper or was inspired by it.

- I called ALGOL-68 a "curious dead end" but that's not true: Dennis Ritchie said that he was inspired by 68 when developing C. Also, 68 had exhaustive pattern matching earlier than ML.

- Hoare cites McCarthy in an earlier version of his record paper [2].

Also I kinda mixed up the words for "tagged unions" and "labeled unions". Hope that didn't confuse anybody!

[1] https://lobste.rs/s/ppm44i/very_early_history_algebraic_data...

[2] https://dl.acm.org/doi/10.5555/1061032.1061041