У меня есть тип клиента QueryResult
, который
type QueryResult[A] = A org.scalactic.Or One[Error]
При выполнении нескольких запросов я получаю List[QueryResult[A]]
, но мне нужен QueryResult[List[A]]
. Я могу реализовать метод sequence
для List
s, но мне нужен более общий, поэтому я попытался создать его с помощью Scalaz.
def sequence2[A, T[_]: Traverse](traversable: T[QueryResult[A]])
(implicit app: Applicative[QueryResult]): QueryResult[T[A]] = {
app.sequence(traversable)
}
Кажется, это работает, но не компилируется, потому что нет неявного параметра app
для Applicative[QueryResult]
.
Как его создать? Или Scalaz может как-то «волшебным образом» сгенерировать его?