The Curious Engineer

All blogs / Haskell

parsonsmatt.org

parsonsmatt.org

A series of articles on practical functional programming in Haskell

Haskell

Posts
116 from 21 Jun 2014 to 10 Mar 2026
Posting
now and then (2 in the last year)
Kind
personal blog
Feed
https://www.parsonsmatt.org/feed.xml

2026 1

  1. Teaching Claude to Be Lazy

2025 2

  1. The Subtle Footgun of TVar (Map _ _)
  2. Making My Life Harder with GADTs

2024 1

  1. Persistent Models are Views

2023 5

  1. The Meaning of Monad in MonadTrans
  2. Yamaha vs NS Design Electric Cellos
  3. Working with Haskell CallStack
  4. Garmin Fenix 6 Pro vs Apple Watch SE
  5. Production Haskell Complete

2022 6

  1. Haddock Performance
  2. Break Gently with Pattern Synonyms
  3. Spooky Masks and Async Exceptions
  4. Femoroacetabular Impingement
  5. Dynamic Exception Reporting in Haskell
  6. Moving the Programming Blog

2021 9

  1. RankNTypes via Lambda Calculus
  2. Deferred Derivation
  3. Family Values
  4. Designing New
  5. Stealing Impl from Rust
  6. Hspec Hooks
  7. Template Haskell Performance Tips
  8. Global IORef in Template Haskell
  9. Async Control Flow

2020 10

  1. Haskell Proposal: Simplify Deriving
  2. Plucking In, Plucking Out
  3. Unpack your Existentials
  4. Production Haskell Alpha Release
  5. Quick Memory Trick
  6. On PVP + Restrictive Bounds
  7. Evolving Import Style For Diff Friendliness
  8. Effectful Property Testing
  9. Mirror Mirror: Reflection and Encoding Via
  10. Plucking Constraints

2019 8

  1. Write Junior Code
  2. Splitting Persistent Models
  3. Keeping Compilation Fast
  4. Why 'Functor' Doesn't Matter
  5. Extending the Persistent QuasiQuoter
  6. Return a Function to Avoid Effects
  7. Sum Types In SQL
  8. Implementing Union in Esqueleto I

2018 11

  1. 2018 Retrospective
  2. Laziness Quiz
  3. The Trouble with Typed Errors
  4. Capability and Suitability
  5. TChan vs TQueue: What's the difference?
  6. Keep your types small...
  7. ghcid for the win!
  8. Transforming Transformers
  9. Stealing Where from Rust
  10. Three Layer Haskell Cake
  11. Servant Route Smooshing

2017 17

  1. 2017 Retrospective
  2. Haskell Performance Debugging
  3. MonadBaseControl in Five Minutes
  4. Contributing to GHC
  5. LambdaConf 2017 Talk
  6. Type Safety Back and Forth
  7. What does Free buy us?
  8. Debugging Types: A Stream of Thought
  9. Using GHC CallStacks
  10. Invert Your Mocks!
  11. On Naming Things: Library Design
  12. Exceptional Servant Handling
  13. Basic Type Level Programming in Haskell
  14. Maybe? Use a type parameter!
  15. OOPH: Data Inheritance
  16. Object Oriented Programming in Haskell
  17. How do type classes differ from interfaces?

2016 12

  1. 2016 Retrospective
  2. Servant in Yesod - Yo Dawg
  3. Clean Alternatives with MaybeT
  4. Grokking Fix
  5. Rank 'n Classy Limited Effects
  6. servant-persistent updated
  7. Incremental API Takeover with Haskell Servant
  8. The Magic of Folds
  9. An Elegant Fizzbuzz
  10. Proving With Types
  11. Hardware Simulation in Idris I
  12. ANN: QuickLift

2015 26

  1. 2015 Retrospective
  2. Exploratory Haskell
  3. An Intuition on Context II
  4. An Intuition on Context I
  5. Template Haskell Is Not Scary
  6. Using purescript-routing with purescript-halogen
  7. Elm Architecture in PureScript IV: Effects
  8. Elm Architecture in PureScript III
  9. Elm vs PureScript II
  10. Elm vs PureScript I
  11. Recursion Excursion
  12. Unix Is The IDE
  13. Announcing Squirrell
  14. servant-persistent
  15. Perscotty Pt III
  16. Perscotty Pt II
  17. Scotty and Persistent
  18. Educational Frustrational
  19. Written with Haskell!
  20. Haskell progressions
  21. On Github Pages
  22. From Rails to Yesod I
  23. Rails, Ajax, and you!
  24. Announcing MelodyScout!
  25. Nested Forms in Rails
  26. If Ruby Had...

2014 8

  1. OkFilter
  2. So MEAN
  3. Vagrant, Windows, and Phonegap: A tale of woe
  4. Protecting my Javascript
  5. Postfix Arithmetic in Javascript
  6. What I've been listening to lately
  7. A New Position
  8. My first post