我正在尝试使用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
函数?
答案 0 :(得分:0)
非常感谢@shachaf说明帮助我弄明白的主要想法。
I16
是Num
和Integral
类型类的实例,因此我最终使用fromIntegral
函数“强制转换”Int
这样I16
:
fromIntegral 10
另一方面,将I16
转换为Int
:
fromIntegral someI16Value
可能需要添加:: Int
类型注释,因此它变为:
fromIntegral someI16Value :: Int
@Yogesh Sajanikar也是正确的10 :: I16
将起作用;我刚刚在GHCI上尝试过,但上面是我最终在我的代码中使用的内容。