如何使用注释自定义HLint并将Haskell软件包标记为安全?

时间:2018-10-23 18:13:42

标签: haskell

my package中,我有several annotations可以帮助自定义我对hlint的使用:

{-# ANN module ("HLint: ignore Use infix"::String) #-}
{-# ANN module ("HLint: ignore Use mappend"::String) #-}
{-# ANN module ("HLint: ignore Use fmap"::String) #-}
{-# ANN module ("HLint: error Redundant $"::String) #-}
{-# ANN module ("HLint: ignore Use ."::String) #-}

但是当我尝试将我的包裹标记为“安全”时,

{-# LANGUAGE Safe #-}

我知道

    • Annotations are not compatible with Safe Haskell.
      See https://ghc.haskell.org/trac/ghc/ticket/10826
    • In the annotation:
        {-# ANN module ("HLint: ignore Use ." :: String) #-}
   |
80 | {-# ANN module ("HLint: ignore Use ."::String) #-}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

在删除注释的同时,我可以安全地构建并测试,没有错误。

是否有另一种自定义Hlint的方式,可以将我的包裹标记为安全?

1 个答案:

答案 0 :(得分:1)

除了使用ANN编译指示外,您还可以使用以下任何一种方式:

{-# HLINT ignore "Use mappend" #-}

或:

{- HLINT ignore "Use mappend" -}

前者将触发GHC发出有关未知杂物的警告。

另请参阅:

https://github.com/ndmitchell/hlint#ignoring-hints