1
나는Scalaz Applicative를 구현하는 방법은 무엇입니까?
type QueryResult[A] = A org.scalactic.Or One[Error]
여러 쿼리를하고, 나는 List[QueryResult[A]]
을받을 수있는 고객 유형 QueryResult
을 가지고,하지만 난 QueryResult[List[A]]
를 원한다. List
에 대해 sequence
메소드를 구현할 수 있지만 좀 더 일반적인 것을 원합니다. 그래서 Scalaz로 생성하려고했습니다.
def sequence2[A, T[_]: Traverse](traversable: T[QueryResult[A]])
(implicit app: Applicative[QueryResult]): QueryResult[T[A]] = {
app.sequence(traversable)
}
이것은 작동하는 것 같다 있지만 Applicative[QueryResult]
에 대한 암시 적 매개 변수 app
이 없기 때문에 컴파일되지 않습니다.
어떻게 만들 수 있습니까? Scalaz가 어떻게해서든지 '마술처럼'생성 할 수 있습니까?