Как СПЕЦИАЛИЗИРОВАТЬ для типа 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