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.

3 Likes

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:
1 Like

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)

:pray:

1 Like