(ahem) …speaking for myself here: I wasn’t so much “sneering” at (the use of) entities like deepseq
, but a prevailing impression that they (unfortunately) seem to accentuate:
-
that laziness/non-strict semantics are now more of an impediment than being of ongoing benefit to Haskell,
-
and little if anything would be lost if Haskell were strict by default.
(Again, this is merely how I’m perceiving the current situation).
So it is to that impression that I say:
-
did someone solve the halting problem?
-
or is Haskell going to eventually be total as well as dependent?
Because without either of those, being strict by default generally means more programs won’t produce a useful result at all. Therefore definitions like deepseq
(or compel
, as I mentioned here) along with other “strictness modifiers” should ideally be considered “features of last resort” because of their potential for non-termination.
So how can we get to that ideal? This looks promising:
…if the multi-threaded RTS does have to be overhauled to solve the “N > 4” problem observed by @chreekat and others, can any of Robert Ennal’s research be reused as well, so that comments like:
…don’t end up being treated as basic advice when using Haskell?