The Curious Engineer

All blogs / Compilers

Considerations on Codecrafting

blog.polybdenum.com

Programming, math, and other things gratuitously nerdy. Opinions are my own.

CompilersRustFunctional / PL theoryOther languages

Posts
52 from 19 Sep 2016 to 5 Apr 2026
Posting
now and then (2 in the last year)
Kind
personal blog
Feed
https://blog.polybdenum.com/feed.xml

2026 1

  1. 1SubML: Plan vs Reality

2025 10

  1. PolySubML is broken
  2. X Design Notes: Pattern Matching II
  3. X Design Notes: Pattern Matching I
  4. X Design Notes: GADTs
  5. X Design Notes: Parameterized Types and Higher Kinded Type Inference
  6. X Design Notes: Nominal Types, Newtypes, and Implicit Coercions
  7. X Design Notes: Unifying OCaml Modules and Values
  8. Why You Need Subtyping
  9. The problem with type aliases
  10. Designing type inference for high quality type errors

2024 3

  1. Four limitations of Rust's borrow checker
  2. The Inconceivable Types of Rust: How to Make Self-Borrows Safe
  3. Identifying Rust's collect::<Vec<_>>() memory leak footgun

2023 4

  1. How I came second out of 999 in the Salem Center prediction market tournament without knowing anything about prediction markets, and what I learned along the way - Part 2
  2. How I came second out of 999 in the Salem Center prediction market tournament without knowing anything about prediction markets, and what I learned along the way - Part 1
  3. Tokio, FuturesUnordered, and the Thundering Herd Problem
  4. Fixing the Next 10,000 Aliasing Bugs

2022 3

  1. Fixing the Next Thousand Deadlocks: Why Buffered Streams Are Broken and How To Make Them Safer
  2. An Unfortunate Experience with Rust
  3. When Type Annotations Are Code Too

2021 4

  1. Implicit Overflow Considered Harmful (and how to fix it)
  2. When Zero Cost Abstractions Aren't Zero Cost
  3. How I Hacked Google App Engine: Anatomy of a Java Bytecode Exploit
  4. An experiment in automatic syntax error correction

2020 16

  1. Subtype Inference by Example Part 15: Monomorphic Type Annotations
  2. Subtype Inference by Example Part 14: Type Annotations— What are they good for?
  3. Subtype Inference by Example Part 13: Conditional Flow Constraints, Presence Polymorphism, and Type Level Computation
  4. Subtype Inference by Example Part 12: Flow Typing and Mixed Comparison Operators
  5. Subtype Inference by Example Part 11: The Value Restriction and Polymorphic Recursion
  6. Subtype Inference by Example Part 10: Let Polymorphism
  7. Subtype Inference by Example Part 9: Match Wildcards, Record Extension and Row Polymorphism
  8. Subtype Inference by Example Part 8: Mutability
  9. Subtype Inference by Example Part 7: Spanned Error Messages
  10. Subtype Inference by Example Part 6: Numeric Types and Operators
  11. Subtype Inference by Example Part 5: Incremental Reachability
  12. Subtype Inference by Example Part 4: The Typechecker Core
  13. Subtype Inference by Example Part 3: The Typechecker Frontend
  14. Subtype Inference by Example Part 2: Parsing and Biunification
  15. Subtype Inference by Example Part 1: Introducing CubiML
  16. Improving compile speed: the dark arts

2018 2

  1. Solution to the besquare crypto challenge
  2. Ref patterns, destructuring, and invisible borrows

2017 8

  1. How ES6 classes really work and how to build your own
  2. Solving the Traveling Pacman Problem
  3. Rust is self driving C++
  4. Generating 64 bit hash collisions to DOS Python
  5. How copying an int made my code 11 times faster
  6. Optimizing Rc memory usage in Rust
  7. Parallelizing Enjarify in Go and Rust
  8. Rust makes implicit invariants explicit

2016 1

  1. My experience rewriting Enjarify in Rust