The use of Software Transactional Memory makes concurrent programming almost trivial. Here's an example of a FIFO queue that can be understood even if you don't know Haskell. I'll narrate the code...
@BartoszMilewski this is cool! However, I feel like any functional code that does anything useful (non leetcode basically) is monadic, which seems unfortunate for the functional idiom. Do you have any thoughts on this?
Also I only learned haskell a year ago, self taught, (mostly via your category theory videos which were awesome!) so I'm no expert in any of this :)