在Data.Time.Clock的文档中,我看到:
转换函数会将其视为秒.它的精度为10 ^ -12 s
什么功能会把它NominalDiffTime
变成一个Double
?没有运气哄骗它
您需要更加关注该类型的实例列表.其中一个列出的例子是Real NominalDiffTime
.这允许您使用realToFrac :: (Real a, Fractional b) :: a -> b
转换为Double
,因为Double
是一个实例Fractional
.
既然NominalDiffTime
有一个Real
实例,并且Double
有一个Fractional
实例,你可以使用realToFrac
它就好像它有类型签名一样NominalDiffTime -> Double
.当然,realToFrac
比这更具多态性,因此您可能需要准确地给它提示您有时要转换的类型.但它确实能够进行转换,如果它可以找出类型.