Top all-time · #1301
Matt Parsons
Personal blog · parsonsmatt.orgprogramming
Matt Parsons's personal blog at parsonsmatt.org covers programming. Since 2016, 57 different Hacker News readers have linked it 67 times, most often “Type Safety Back and Forth (2017)”. It is still writing: the last post was on 2026-03-10, and you can follow it by feed.
A series of articles on practical functional programming in Haskell
Most-linked posts?
- Type Safety Back and Forth (2017)7 people · 7 mentions · first linked 2020-06-27
- /2018/03/22/three_layer_haskell_cake.html6 people · 6 mentions · first linked 2019-01-28
- Names do not transmit meaning6 people · 6 mentions · first linked 2019-08-31
- Sum Types in SQL4 people · 4 mentions · first linked 2019-03-20
- Write Junior Code3 people · 3 mentions · first linked 2019-12-28
- Basic Type-Level Programming in Haskell3 people · 3 mentions · first linked 2017-04-26
- The Magic of Folds2 people · 2 mentions · first linked 2016-03-25
- An Elegant FizzBuzz2 people · 2 mentions · first linked 2016-03-06
- Haskell Proposal: Simplify Deriving2 people · 2 mentions · first linked 2020-11-13
- Three Layer Haskell Cake2 people · 2 mentions · first linked 2018-04-20
What Hacker News says?
> If you take FP to its logical conclusion, FP is a slippery slope that eventually leads to Monad-Transformer centric designs. I don't understand what you mean by this, and I write production haskell for a living. We don't have teetering towers of transformers, and the best advice I've seen is often "put away the shiny tools and just use functions", https://lukepalmer.wordpress.com/2010/01/24/haskell-antipatt... . S…
Comment linking /2018/03/22/three_layer_haskell_cake.html
on “Towards Scala 3”Submitted Write Junior Code as a story · 173 points
HN discussion> "simplest way to do BasicAuth" The simplest way to do BasicAuth in Haskell isn't Servant. I feel like you're intentionally misinterpreting what I'm saying. As for resources, here's a great intro to type-level Haskell: http://www.parsonsmatt.org/2017/04/26/basic_type_level_progr... > For some reason, functions that operate on types are called type families. That's the kind of thing you need to know. I doubt the ave…
Comment linking /2017/04/26/basic_type_level_programming_in_haskell.html
on “Elm in Production: 25K Lines Later”Submitted Exploratory Haskell (2015) as a story · 140 points
HN discussionNo idea how common it is. It's never been my main work language but I've been using it at work for prototyping/scripting/automation/analysis etc for at least ten years now. It looks like what I've done is most similar to https://www.parsonsmatt.org/2018/03/22/three_layer_haskell_c... And I think this was the post that proposed tagless-final over free-monads: https://markkarpov.com/post/free-monad-considered-harmful.…
Comment linking /2018/03/22/three_layer_haskell_cake.html
on “OCaml as my primary language”Submitted Basic Type-Level Programming in Haskell as a story · 120 points
HN discussionA response to the common proposal of “we should call functors Mappables instead”: Names Do Not Transmit Meaning, https://www.parsonsmatt.org/2019/08/30/why_functor_doesnt_ma...
Comment linking /2019/08/30/why_functor_doesnt_matter.html
on “Functors and Monads for People Who Have Read Too Many “Tutorials””Submitted Names do not transmit meaning as a story · 51 points
HN discussionThe best resource for me has been Matt Parsons' blog: https://www.parsonsmatt.org/
Comment linking /
on “Learning Haskell is no harder than learning any other programming language”Submitted Spooky Masks and Async Exceptions as a story · 6 points
HN discussion> Thank you, I've read the links, but without an example of Haskell/Scala code the benefits for any particular real problem are not clear to me. Do you have cases where you've used AOP/reflection/metaclasses/decorators/macros or similar "magic"? (Exceptions or mutable variables sort of work as examples, but most people don't have experience of working on codebases that don't have them). It's hard to give simple exam…
Comment linking /2018/03/22/three_layer_haskell_cake.html
on “D is being used for autonomous driving research – Audi and Mercedes”Submitted Incremental API Takeover with Haskell Servant as a story · 6 points
HN discussionEngineer vs mathematician. Haskell is the schizophrenic product. > If I come to an existing OCaml project, the worst thing previous developers could do to it is have poor variable names, minimal documentation, and 200+ LOC functions. That’s fine, nothing extraordinary, I can handle that. > > If I come to an existing Haskell project, the worst thing previous developer>s could do… Well, my previous 8 years of Haskell…
Comment linking /2019/12/26/write_junior_code.html
on “8 months of OCaml after 8 years of Haskell in production (2023)”Submitted Haskell Proposal: Simplify Deriving as a story · 4 points
HN discussionGetData is `Maybe a` (what means it's not a function). GetMoreData is `a -> Maybe b`. And so on. What means that those variables do not do what their names are claiming they do. It's a case of an example that lost its meaning once carried to a too different context. By the way, if you are wondering how functions that actually get data would look, there's a great architecture here: http://www.parsonsmatt.org/2016/11/…
Comment linking /2016/11/18/clean_alternatives_with_maybet.html
on “Escaping Hell with Monads (2017)”Submitted Basic Type Level Programming in Haskell as a story · 4 points
HN discussionI thought the first example in this blog post on TH was an interesting idea: https://www.parsonsmatt.org/2015/11/15/template_haskell.html
Comment linking /2015/11/15/template_haskell.html
on “Haskell Fan Site”Submitted The Magic of Folds as a story · 4 points
HN discussionServant. It takes a while to pick it up but it's well worth the effort. You end up with an automatically documented type safe API and you can even generate client functions for other languages using Swagger based on the spec. It has excellent documentation too, the only hard part really is figuring out the handler pattern. As for the SQL story, that's more fragmented. I'm still trying to figure out the best next ste…
Comment linking /2016/07/08/servant-persistent_updated.html
on “A Dead-Simple Web Stack in Haskell”Submitted Proving with Types as a story · 4 points
HN discussionAt first sight I’ve read “an object-oriented Haskell book”. [brief pause for contemplating the thought] Naturally, someone went there: https://www.parsonsmatt.org/tutorials/
Comment linking /tutorials/
on “Learn Haskell by building a blog generator – a project-oriented Haskell book”Submitted Haskell Proposal: Simplify Deriving as a story · 3 points
HN discussionSo totally different function, I meant by double to turn [1,2] into [2,4], however that's a really neat example. I hadn't seen the family extension in Haskell before. You're right there is a ton more to type systems than I was aware of. I was following some links in this thread and found this as well: https://www.parsonsmatt.org/2017/10/11/type_safety_back_and_... . I was less than impressed with type systems becaus…
Comment linking /2017/10/11/type_safety_back_and_forth.html
on “Six Years of Professional Clojure”Submitted How do Haskell's type classes differ from interfaces? as a story · 3 points
HN discussionThe capability pattern that Data Has implements is definitely used in other projects[1], and notably is endorsed by RIO[2]. [1] https://github.com/input-output-hk/cardano-sl [2] https://github.com/commercialhaskell/rio#monads Elaboration: https://www.parsonsmatt.org/2018/03/22/three_layer_haskell_c...
Comment linking /2018/03/22/three_layer_haskell_cake.html
on “Haskell in Production”Submitted The Magic of Folds (2016) as a story · 3 points
HN discussionThree techniques for sum types in SQL (absorption, separation, and partition): https://www.parsonsmatt.org/2019/03/19/sum_types_in_sql.html Also, here is a relational database system with native support for sum types (and also no "NULL" nonsense, which is also not part of pure relational algebra): https://github.com/agentm/project-m36
Comment linking /2019/03/19/sum_types_in_sql.html
on “Old, Good Database Design”Submitted Why 'Functor' Doesn't Matter (2019) as a story · 2 points
HN discussionIf you are curious this is a good read: https://www.parsonsmatt.org/2017/01/07/how_do_type_classes_d...
Comment linking /2017/01/07/how_do_type_classes_differ_from_interfaces.html
on “Dependent Haskell Is the Future (2018)”Submitted Type Safety Back and Forth as a story · 2 points
HN discussion