解决方法ghc 7.6缺少NegativeLiterals

时间:2014-10-13 18:45:15

标签: haskell ghc

我的代码依赖于:

case x of
    (-32768) -> Nothing
    otherwise -> Just x

xInt16,其范围为-32768到+32767。

适用于GHC 7.8的NeativeLiterals扩展名。我找不到Redhat RHEL6的GHC 7.8,所以我试图让它与GHC 7.6一起工作。问题是NegativeLiterals在7.8中是新的。

有没有人知道解决方法?

1 个答案:

答案 0 :(得分:2)

你可以使用警卫:

编辑:好的,所以我需要明确打字。这应该是显而易见的。所以修改后的解决方案是:

foo :: Int16 -> Maybe Int16
foo x =
  case x of
    y | y == fromIntegral (-32768) -> Nothing
      | otherwise                  -> Just x