有没有办法在我的 Hackage 包中启用 'assert'?

Is there a way to leave 'assert' enabled in my Hackage package?

我有一个 Haskell 包,我在其中使用 assert 执行一些检查,但是当我的包是在客户的机器上构建时,这些通常是 - because of, I gather, optimizations - 变成无操作。

有什么办法可以让我的Hackage包在别人的机器上安装时assert不受影响?或者我可以使用具有相同效果的替代方法?

如果需要,可以指定-fno-ignore-asserts。这可能最好按文件完成,并附有编译指示:

{-# OPTIONS_GHC -fno-ignore-asserts #-}

您真的不应该在任何可能在紧密循环中使用断言的模块中保持断言处于活动状态。