Feedback on a blog post draft


I looked into the Dhall language last weekend and was so :heart_eyes: with what I saw that I wrote a blog post about it and some Dhall code. I want to avoid making any false claims, assumptions or statements about the language though. I understand that I’m asking for quite a lot here but it would be incredible if someone could quickly skim the post and just give me some feedback before I post this anywhere else. I’m good at dealing with criticism so feel free to tear it apart :pray:

Something I didn’t mention explicitly in the post but almost all examples should be runnable as is without making any changes or any hidden imports.


Thank you for writing this! My main comments are:

  • You might to note that Dhall supports ASCII syntax, too, since some people might be mistakenly think that the language requires Unicode
  • The handleRec example might be too advanced for a newcomer to the language
  • For the section on “Records”, newer versions of the language supported nested overrides using the with keyword. For example: someRecord with a.b = 1 won’t accidentally delete any a.c field
  • For the section on “Ergonomics and tooling” you might want to mention dhall repl for people who prefer the command-line approach
  • For the renderBinding example, it might be worth starting with the simpler implementation of convertModifiers using let and then show the alternative version using Prelude.Function.compose afterwards
  • Instead of { mods, action = b.action, key = b.key } you can do { mods } // b.{ action, key }. This also answers your question from footnote 1 :slightly_smiling_face:


Thank you so much, excellent feedback! It’s slightly embarrassing that I did indeed overlook the with expression part at the bottom of “Records #2”. I’ll update the post with all your suggestions.

  • Mentioned unicode/ascii thing
  • Switched the two versions of convertModifiers so the easier one comes first
  • Mentioned dhall repl
  • Added info about with, projections and dot operator
  • Added a simpler first example for union types
  • Disclaimer about post not being entirely made for beginners (it actually just kind of evolved in a way that I kept adding more info for people not familiar with FP)