There’s no denying that our shared dialogue as a community has taken a nose-dive in the last few months. If this change of tone becomes established as a norm, I believe it will corrode our common life, perhaps permanently, and harm our shared purpose. I would be heartbroken if that happened.
The result is a sequel to my original post, which consists of a newly-minted, tricked-out recommendation for architecting modern functional programs, along with new ways of thinking about the structure of this architecture.
Sharing conduit values leads to memory leaks. Make sure to disable the full laziness optimization in the module with your top-level calls to
$$). Similar considerations apply to other streaming libraries and indeed any Haskell code that uses lazy data structures to drive computation.
After watching talks or videos of Propositions as Types, folk ask me how they can get their own Lambdaman t-shirt. CustomInk has agreed to print the design as a Booster. Sign up now, order will be printed on October 15. Any profits go to Bootstrap, an organisation run by Shriram Krishnamurthi, Matthias Felleisen, and the PLT group that teaches functional programming to middle and high school students.
With the addition of the new hackage-security metadata files to our S3 mirror, one nice benefit is that the FP Complete mirror is now an official Hackage mirror, and can be used natively by cabal-install without having to modify any configuration files.
Conduit borrowed the operator syntax of
$=from enumerator, and it made sense at the beginning of its lifecycle. However, for quite a while now conduit has evolved to the point of having a unified type for
Sinks, and the disparity of operators adds more confusion than it may be worth.