我有一个客户类型QueryResult
是
type QueryResult[A] = A org.scalactic.Or One[Error]
进行多个查询时,我得到一个List[QueryResult[A]]
,但我想要一个QueryResult[List[A]]
. 我可以sequence
为 s 实现一个方法,List
但我想要一个更通用的方法,所以我尝试用 Scalaz 创建一个。
def sequence2[A, T[_]: Traverse](traversable: T[QueryResult[A]])
(implicit app: Applicative[QueryResult]): QueryResult[T[A]] = {
app.sequence(traversable)
}
这似乎可行,但无法编译,app
因为Applicative[QueryResult]
.
如何创建一个?或者 Scalaz 能否以某种方式“神奇地”生成一个?