Data.Text.ICU.Regex - 如何获取查找函数的I16值?

时间:2014-01-12 07:34:12

标签: regex haskell

我正在尝试使用Data.Text.ICU.Regex模块中的find函数,我发现它的第二个参数需要Data.Text.Foreign模块中定义的I16数据类型

但是,基于Data.Text.Foreign中的此模块定义

module Data.Text.Foreign
    (
    -- * Interoperability with native code
    -- $interop
      I16

似乎是I16 newtype

的构造函数
-- | A type representing a number of UTF-16 code units.
newtype I16 = I16 Int
    deriving (Bounded, Enum, Eq, Integral, Num, Ord, Read, Real, Show)

不会由Data.Text.Foreign模块导出。

如果我无法构建find类型的值,如何使用I16函数?

1 个答案:

答案 0 :(得分:0)

非常感谢@shachaf说明帮助我弄明白的主要想法。

I16NumIntegral类型类的实例,因此我最终使用fromIntegral函数“强制转换”Int这样I16

fromIntegral 10

另一方面,将I16转换为Int

fromIntegral someI16Value

可能需要添加:: Int类型注释,因此它变为:

fromIntegral someI16Value :: Int

@Yogesh Sajanikar也是正确的10 :: I16将起作用;我刚刚在GHCI上尝试过,但上面是我最终在我的代码中使用的内容。