haskell / haskell/transformers
Strictness testing of transformers
- Dominant language
- Haskell
- Stars
- 5
- Forks
- 10
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 1
Description
It would be good to assert the strictness properties of various transformers.
The transformers to test would be StateT.{Lazy,Strict}, WriterT.{Lazy,Strict,CPS}, and RWST.{Lazy,Strict,CPS}.
Tests would include setting values to undefined to see when an exception is thrown (if at all).
Different base monads should be used such as `Identity` and `IO` to test strictness with regards to base monad.
Tests should be of varying complexity, from the basic (enter transformer, bind value, leave transformer), to complex (enter transformer, perform various operations, possibly include other transformers or monads in the stack).
We don't currently use a testing framework like tasty (@sjshuck has found that they don't compile for some reason), so this will likely have to be a bit basic. If you do get something working with compilation/CI, all the better!
This should cover the tests I was worried about for https://github.com/haskell/transformers/pull/122#pullrequestreview-4442665554.
[StrictCheck](https://hackage-content.haskell.org/package/StrictCheck-0.4.0) may be useful but we may not be able to use it.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.