私は顧客タイプを持ってい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 はどういうわけか「魔法のように」それを生成できますか?