concrete functor and monad transformers
#32Add the correct ListT transformer
It would be nice to see a law-abiding list transformer in the transformers
package. Such an implementation exists in the list-transformer package: http://hackage.haskell.org/package/list-transformer-1.0.1/docs/List-Transformer.html
What do you think about porting this to transformers
. It would need to be renamed (probably to something like StreamT), and the existing non-law-abiding ListT could stay as it is.
I think a better option would be to simply remove
transformers
bug-prone implementation - it has no users anyhow because it does not work, so it should be safe to remove it. Hackage had other working implementations around for ages (like that in theList
package)..The problem with adding the "correct" list monad transformer is that there are too many different correct notions of list monad transformer!
What different correct notions of list monad transformers are there? I'm only aware of a single one, which is:
data ListT m a = ListT (m (Maybe (a, ListT m a)))
- status set to closed
ListT is gone