@simonpj that all sounds good to me. I agree the paper should mention these things. Not only would I want to taking that citation of “architecture of open source programs” on the origin of dyn flags and expanded it as you say, I think it would be good to move it up and make a key part of the first history/background half.
Following up on our discussion with @simonpj on modularity “behind” per-component configuration records, I opened Draft: Separate C-- building in general from STG -> C-- in particulare (!8237) · Merge requests · Glasgow Haskell Compiler / GHC · GitLab which internal to a single component (a C-- “builder” monad, used by each of the the C-- parser and the STG → C-- pass) uses Has*
classes to do more fine-grained modularity without either a profusion of “subset” records or a profusion of (positional) arguments.
I am curious what anyone has to say about such a second step beyond just breaking up DynFlags
!
ditto this regards most Haskell documentation. for a novice haskell student (which is the only level i can speak to) reading the documentation is so lacking in clear, simple and progressively more advance example code that one is always forced into the source code to try and grasp the unknown jargon, abstract concepts and links to more of the same in the prose documentation. this experience of code and linking to dependencies and hyperlinked terms/haskell concepts it readily opens a rabbit warren of choices to continue down in trying to understand the initial question.
(or consult an AI code engine which as we all know is not going to produce canonical Haskell code every time, but is relatively benevolent in comparison to docs if you aren’t an intermediate or advanced Haskell programmer)
i’d love to see some kind of example code base docs for Prelude and all the libraries in Hackage that are still worth using. to say the example code in libraries tends to be scant is an understatement of my experience and frankly utter frustration at times. i’d be happy to help project manage it, i’m not capable of producing canonical code at this point other than the absolutely most basic of Prelude functions.
one expected the learning curve for Haskell to be challenging always and very difficult at times, but one didn’t expect the documentation to be so impenetrable for beginners so much of the time.