The reason a test failed.

type Reason
= Custom
| Equality String String
| Comparison String String
| ArrayDiff (Array String) (Array String)
| CollectionDiff ({ expected : String, actual : String, extra : Array String, missing : Array String })
| Invalid InvalidReason

The reason a test failed.

Test runners can use this to provide nice output, e.g. by doing diffs on the two parts of an Expect.equal failure.

type InvalidReason
= EmptyArray
| NonpositiveFuzzCount
| InvalidFuzzer
| BadDescription
| DuplicatedName
| DistributionInsufficient
| DistributionBug

The reason a test run was invalid.

Test runners should report these to the user in whatever format is appropriate.