There's several reasons I like writing the documentation at https://adrian.geek.nz/docs !
I like reading over that code to exercise my software freedom to audit the code for malfeatures, though I don't trust myself to recognize vulnerabilities.
I want to make sure I comprehend what I'm reading, writing it down helps.
I like learning from how established projects do things, why computers are the way they are from the silicon on up.
And I think you might benefit from that understanding too!
P.S. I've figured out the topics for the next few days as I finish off describing GHC's runtime! This will all be related in some way to the GHCi/Template Haskell interpretor.
1. Symbol tables
2. Linking
3. Function calls
4. The interpretor itself!
Then I'll follow up with a rapid Haskell tutorial & my understanding of decentralized networking before covering Haskell webdev via Happstack!
Sound good?