HasCallStack
considered harmful
Using HasCallStack
it is possible to write
myInt :: HasCallStack => Int
that has a “different value” depending on where in your program it is called. This seems undesirable!
https://github.com/NorfairKing/haskell-dangerous-functions/issues/17
Bluefin streams finalize promptly, more complex example
Prompted by elaforge, an example of mixing streams with prompt finalization
Bluefin streams don’t leak space
Unlike lazy lists or the streaming library, Bluefin streams don’t leak space
https://github.com/haskell-streaming/streaming/issues/110#issuecomment-1518988421
Bluefin OO article
Ömer Sinan Ağacan wrote an article explaining the benefits of object oriented design. He started explaining a Haskell-based solution but didn’t take it far enough. The job can be finished using Bluefin.
Scrap your fold combinators
Confused about fold combinators? Then just use for_
and save
yourself a headache.
foldl
? Just use for_
. foldl'
? Just use for_
. foldM
? Just
use for_
. mapAccumL
? Just use for_
. mapAccumLM
? Just use
for_
. concatMap
? Just use for_
. mapMaybe
? Just use
for_
. loop
? Just use for_
.
Internal versus external streams in Bluefin
Looking at the iterator dichotomy of “push/internal” vs “pull/external” through a Bluefin lens.
https://medium.com/@pateldhruv020/pull-vs-push-system-ab95a65b0938