- How to read inference rules 28 July 2023
- Polymorphic variant inference that beats OCaml 29 May 2023
- How to implement effect handlers 02 October 2023
- If there is one piece of advice about type inference I think everyone should hear it's absolutely this 27 July 2023
- Apparently Polaris' constraint solver is non-confluent 27 August 2023
- Closed Type Classes 22 March 2023
- Passing closures to programs 15 August 2023
- Trees that Grow 29 September 2023
- I really don't like let generalization 03 November 2023
- The Vega Programming Language 29 September 2023
- It's wild how easily imperative languages leak implementation details 24 September 2023
- Rebuild Patterns 15 January 2023
- Higher rank polymorphism despite monomorphization 26 June 2023
- Functional programming languages should be so much better at mutation than they are 29 July 2024
- Type systems should be consistent (and probably dependently typed) 12 June 2024
- Flora's effect handlers 03 June 2024
- Function coloring is good actually 11 February 2024
- I don't think people appreciate the tradeoffs they're making with algebraic data types 09 March 2024
- Haskell's tuples should behave like multi-element newtypes 22 November 2023
- Namespaced De Bruijn indices for duplicate record fields 07 May 2024
- I feel like noone ever mentions a massive advantages of direct-style effects 05 July 2024
- How is Racket the only serious "multi-paradigm" programming language 26 August 2024
- (==) is overrated 06 September 2024
- It's honestly kind of strange that the conventional wisdom is "you don't need types for one-off scripts" 22 August 2023
- TemplateHaskell crimes 24 November 2022