Skip to content

Conversation

@aspiwack
Copy link
Owner

The API is much nicer. Type families in the Eval type class were getting in the way of derivation (derivation isn't done yet). It just created a lot of boiler place. Both at call sites where we had to wrap random values in a newtype all the time, and when defining Eval instances (which may be used just once, which was entirely unnecessary), since the instances were almost entirely boilerplate.

This actually deletes lines of code, so even the implementation is simpler really. I don't need some special support for the strict-wrapper library: just use the seq strategy.

This is looking quite good.

Closes #7.
Closes #17.

aspiwack added 2 commits May 17, 2025 10:46
The API is much nicer. Type families in the `Eval` type class were
getting in the way of derivation (derivation isn't done yet). It just
created a lot of boiler place. Both at call sites where we had to wrap
random values in a newtype all the time, and when defining `Eval`
instances (which may be used just once, which was entirely
unnecessary), since the instances were almost entirely boilerplate.

This actually deletes lines of code, so even the implementation is
simpler really. I don't need some special support for the
`strict-wrapper` library: just use the `seq` strategy.

This is looking quite good.

Closes #7.
Closes #17.
This was referenced May 17, 2025
@aspiwack aspiwack marked this pull request as ready for review May 17, 2025 03:46
@aspiwack
Copy link
Owner Author

It seems to work well.

@aspiwack aspiwack merged commit 091e3b1 into master May 17, 2025
4 checks passed
@aspiwack aspiwack deleted the strat-redesign branch May 17, 2025 03:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider introducing an Evaluation monad Auto-derive SeqIsEval for Generic type

2 participants