TypeScript types can run DOOM
Michigan TypeScript1 HN recommender · recommended in 1 month, 2025–2025
demo · general · evergreen · 2025–2025 on HN
The Michigan TypeScript group shows the Doom engine running entirely inside the TypeScript type system. It is open source, and two follow-up videos cover why and how they did it.
HN commenters link it as a delightful example of how far TypeScript types can be pushed, since they are Turing complete.
Up next
3 mo on HNC++Now 2018: Matt Godbolt “What Else Has My Compiler Done For Me Lately?”
CppNow
3 HN recommender · 2018–2020
6 mo on HNCppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”
CppCon
7 HN recommender · 2018–2022
11 mo on HN"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
12 HN recommender · 2014–2024
2 mo on HNThe economics of open source by C J Silverio | JSConf EU 2019
JSConf
2 HN recommender · 2019–2020
3 mo on HNWhat is in a Lucene index? Adrien Grand, Software Engineer, Elasticsearch
LuceneSolrRevolution
3 HN recommender · 2019–2020
16 mo on HNHow Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!
15 HN recommender · 2017–2025
12 mo on HNWhy Isn't Functional Programming the Norm? – Richard Feldman
Metosin
12 HN recommender · 2019–2025
11 mo on HNMaybe Not - Rich Hickey
ClojureTV
14 HN recommender · 2018–2025
10 mo on HNConway's Game Of Life in APL
Dyalog
11 HN recommender · 2010–2024
9 mo on HNLecture 1A | MIT 6.001 Structure and Interpretation, 1986
MIT OpenCourseWare
11 HN recommender · 2012–2024
10 mo on HNCrockford on JavaScript - Volume 1: The Early Years
YUI Library
10 HN recommender · 2013–2022
10 mo on HNGrowing a Language, by Guy Steele
Bill Pugh
11 HN recommender · 2014–2026
3 comments from Hacker News
For those not familiar with this kind of computing challenges, I must link this wonderful video about TypeScript types running... DOOM. ▶ this video
Typescript types (and Idris) are Turing complete. You can actually get typescript types to run doom. ▶ this video Idris on the other hand is SPECIFICALLY designed so types and the program live in the same language. See the documentation intro: link THe powerful thing about these languages is that they can prove your program correct. For testing you can never verify your program to be correct. Testing is a statistical sampling technique. To verify a program as correct via tests you have to test every possible input and output combination of your program, which is impractical. So instead people write tests for a subset of the possibilities which ONLY verifies the program as correct for that subset. Think about it. If you have a function: def add(x: int, y: int) -> int How would you verify this program is 100% correct? You have to test every possible combination of x, y and add(x, y). But instead you test like 3 or 4 possibilities in your unit tests and this helps with the overall safety of the program because of statistical sampling. If a small sample of the logic is correct, it says something about the entire population of the logic.. Types on the other hand prove your program correct. def add(x: int, y: int) -> int: return x + y If the above is type checked, your program is proven correct for ALL possible types. If those types are made more advanced via being programmable, then it becomes possible for type checking to prove your ENTIRE program correct. Imagine: def add<A: addabl
I'd like to see if it makes a difference to the version of DOOM that runs in the TypeScript type system. link ▶ this video