假设你有一个你知道是安全的模块。
您想使用{-# LANGUAGE Safe #-}
模块本身或Extensions: Safe
cabal 文件中的内容将其标记为 Safe Haskell。不幸的是,做这些中的任何一个都会破坏向后兼容性(即模块不会建立在 GHC < 7.2 上)。
如果整个库是安全的,您可以像这样将扩展指令包装在 cabal 文件中:
if impl(ghc >= 7.2)
Extensions: Safe
但这仅适用于整个图书馆。
如何以向后兼容的方式将单个模块标记为 Safe Haskell?