By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Read a Validation's failure only where it accumulates base, mtl and transformers fix the argument order of Either, Except, ExceptT and MonadError, so matching those names is matching the types we think they are. Nothing fixes Validation: it is a name several packages define, and one that put its success first would read the same way here, so a bare String in the first argument was as likely to be a success as a failure. The rule had no way to tell and no way to say so. What tells the orders apart is that this one accumulates. A container of prose in the first argument is not something a success-first type would have, so only a list or a NonEmpty of prose is read as prose there. The recall that costs is recall over code nobody writes, since a Validation that does not accumulate is an Either with more syllables: over nix-ci8, smos, salsa, kronor, sydtest, validity and graphql-engine the findings are the same 1531 as before, and all eight Validation findings among them were already written as Validation (NonEmpty Text). good.hs holds the silence so it stays a decision.
Total
1m00s
Created Started Finished
| Time to Start | Worker time | Duration | Time to finish | Idle | |
|---|---|---|---|---|---|
| Config | 5s | 0s | 0s | 6s | 5s |
| Eval | 6s | 37s | 37s | 44s | 0s |
| Build | 23s | 0s | 42s | 1m06s | 21s |
| Suite | 5s | 38s | 1m00s | 1m06s | 27s |