Falsify是一个受Hypothesis启发的Haskell属性测试库,它提供“内部”收缩功能,避免了QuickCheck手动收缩和Hedgehog集成收缩的局限性,尤其是在monadic bind中。它利用无限样本树,不同于Hypothesis的线性流,从而实现更可预测的收缩和通过选择性函子对生成器独立性的更大控制。Falsify的方法能够跨越monadic bind进行收缩,因为它收缩的是底层样本而不是生成器。该库提供了常用数据类型的生成器、用于控制数据分布的倾斜范围以及受QuickCheck启发的函数生成/收缩功能。`testShrinkingOfGen`和`testMinimum`等工具允许测试生成器收缩行为。Falsify还提供了与QuickCheck和Hedgehog收缩风格的兼容性。