【发布时间】:2012-11-27 18:55:39
【问题描述】:
我有一个具有以下类型签名的函数
{-# LANGUAGE FlexibleContexts #-}
dataLat :: Load r DIM1 Double
=> (Array r DIM1 Double -> Array U DIM1 Double, Array U DIM1 Double)
Array、U 和 DIM1 来自 Repa 库。 dataLat 创建稍后作为元组传递给其他函数的数据。在某一时刻r 类型变量与D 类型统一(这又来自Repa),但稍后r 也应该与L 类型统一(这是我的类型)。问题是已经和D统一了,所以不能和L统一。我最终得到Couldn't match expected type 错误。我认为这应该通过某种形式的更高级别的类型来解决,但我无法弄清楚应该如何写。谁能帮帮我?
【问题讨论】: