如何为hsc2hs类型专门化?

时间:2015-09-22 22:54:33

标签: haskell ghc hsc2hs

我正在尝试将SPECIALIZE pragma用于我通过hsc2hs #type获得的类型。

我试过这样的事情:

{-# SPECIALIZE someFn :: #{type DWORD} -> #{type DWORD} -> Bool #-}
someFn :: Eq a => a -> a -> Bool

该尝试失败,parse error on input '#'(在第一个#{type DWORD}上)。

我已经找到了一个我发现有效的答案,但我真的希望有更清洁的东西 - 或者更确切地说:这些东西不会影响整个模块的代码。

1 个答案:

答案 0 :(得分:4)

可以使用#type声明委派type

type SDWORD = #{type DWORD}
{-# SPECIALIZE someFn :: SDWORD -> SDWORD -> Bool #-}
someFn :: Eq a => a -> a -> Bool