54,302 blogs · [ { "id": "01a08c55-9901-7374-91f3-8975a44271c5", "title": "Compiler Education Deserves a Revolution", "url": "https://thunderseethe.dev/posts/compiler-education-deserves-a-revoluation/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a512346c", "title": "How to Choose Between Hindley-Milner and Bidirectional Typing", "url": "https://thunderseethe.dev/posts/how-to-choose-between-hm-and-bidir/", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a5f5f63a", "title": "Making an LSP for great good", "url": "https://thunderseethe.dev/posts/lsp-base/", "published_at": "2026-01-21T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a6d8a5e0", "title": "Resolving Names Once and for All", "url": "https://thunderseethe.dev/posts/nameres-base/", "published_at": "2025-12-27T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a70d2ffb", "title": "Desugaring the Relationship Between Concrete and Abstract Syntax", "url": "https://thunderseethe.dev/posts/desugar-base/", "published_at": "2025-12-02T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a7639408", "title": "Reproachfully Presenting Resilient Recursive Descent Parsing", "url": "https://thunderseethe.dev/posts/parser-base/", "published_at": "2025-11-12T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a7ea2f97", "title": "Pushing Past the First Error During Type Inference", "url": "https://thunderseethe.dev/posts/types-base/", "published_at": "2025-11-10T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a7f554b8", "title": "Wasm Does not Stand for WebAssembly", "url": "https://thunderseethe.dev/posts/wasm-not-webassembly/", "published_at": "2025-07-15T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a841e421", "title": "Skipping the Backend by Emitting Wasm", "url": "https://thunderseethe.dev/posts/emit-base/", "published_at": "2025-06-13T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a86991bd", "title": "Closure Conversion Takes the Function out of Functional Programming", "url": "https://thunderseethe.dev/posts/closure-convert-base/", "published_at": "2025-05-14T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a8ad11ec", "title": "Casting out Polymorphism with Monomorphization", "url": "https://thunderseethe.dev/posts/monomorph-base/", "published_at": "2025-05-11T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a8e149c3", "title": "Back to Basics by Simplifying our IR", "url": "https://thunderseethe.dev/posts/simplify-base/", "published_at": "2025-04-30T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a95af591", "title": "Function Application Needs to Grow a Spine Already", "url": "https://thunderseethe.dev/posts/function-application-grow-a-spine/", "published_at": "2025-03-31T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a9731d6f", "title": "Lowering Top Level Items", "url": "https://thunderseethe.dev/posts/lowering-items/", "published_at": "2025-03-04T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a9b4c509", "title": "The Heart of Lowered Rows", "url": "https://thunderseethe.dev/posts/lowering-rows-ast/", "published_at": "2025-02-26T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975a9e5ee56", "title": "The Types of Lowered Rows", "url": "https://thunderseethe.dev/posts/lowering-rows-ty/", "published_at": "2025-02-18T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975aaad534c", "title": "Lowering Row Types, Evidently", "url": "https://thunderseethe.dev/posts/lowering-rows-intro/", "published_at": "2025-02-11T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975ab597348", "title": "Escaping the Typechecker, an Implementation", "url": "https://thunderseethe.dev/posts/lowering-base-impl/", "published_at": "2025-02-04T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975ab5b4b7c", "title": "Lowering our AST to Escape the Typechecker", "url": "https://thunderseethe.dev/posts/lowering-base-ir/", "published_at": "2025-01-28T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975ac4737e3", "title": "DeBruijn Indices: Picking Equatable Names", "url": "https://thunderseethe.dev/posts/debruijn-indices/", "published_at": "2025-01-23T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975ad1954d9", "title": "Traits are a Local Maxima", "url": "https://thunderseethe.dev/posts/traits-are-a-local-maxima/", "published_at": "2024-11-18T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975ad5f60e9", "title": "Checking Types of Top Level Functions", "url": "https://thunderseethe.dev/posts/check-top-level-items/", "published_at": "2024-07-05T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975ae24bde3", "title": "I'm Betting on Call-by-Push-Value", "url": "https://thunderseethe.dev/posts/bet-on-cbpv/", "published_at": "2024-03-09T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975aeeb48a4", "title": "In Search of the Perfect Fold", "url": "https://thunderseethe.dev/posts/in-search-of-the-perfect-fold/", "published_at": "2023-11-27T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975af3aa27d", "title": "Rowing Afloat Datatype Boats", "url": "https://thunderseethe.dev/posts/row-types/", "published_at": "2023-10-21T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975afb6205b", "title": "What's in a Module?", "url": "https://thunderseethe.dev/posts/whats-in-a-module/", "published_at": "2023-07-31T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975b002d6b8", "title": "Tying up Type Inference", "url": "https://thunderseethe.dev/posts/unification/", "published_at": "2023-07-01T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975b014496e", "title": "Turning our AST Into Type Constraints", "url": "https://thunderseethe.dev/posts/bidirectional-constraint-generation/", "published_at": "2023-06-24T00:00:00+00:00" }, { "id": "01a08c55-9901-7374-91f3-8975b0e3100a", "title": "Typechecking a Language Without a Parser", "url": "https://thunderseethe.dev/posts/type-inference/", "published_at": "2023-06-17T00:00:00+00:00" } ] posts Claim your blog
Back to thunderseethe.dev
Blog · corpus.blog/blogs/thunderseethe.dev/posts

thunderseethe.dev

thunderseethe.dev

2026

2025

2024

2023