Как СПЕЦИАЛИЗИРОВАТЬ для типа hsc2hs?

Я пытаюсь использовать прагму SPECIALIZE для типа, который я получаю через hsc2hs #type,

Я попробовал что-то вроде этого:

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

Эта попытка терпит неудачу с parse error on input '#' (во-первых #{type DWORD}).

Я поставил ответ, который мне помог, но я действительно надеюсь на что-то более чистое - или, точнее, на то, что не влияет на весь код модуля.

1 ответ

Можно делегировать #type используя type объявление:

type SDWORD = #{type DWORD}
{-# SPECIALIZE someFn :: SDWORD -> SDWORD -> Bool #-}
someFn :: Eq a => a -> a -> Bool
Другие вопросы по тегам