haskell / haskell/transformers

Strictness testing of transformers

Open
#123 20 comments 0 reactions 1 assignee Claimed by @ynishiza View on GitHub
enhancement good first issue help wanted
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.