def of[F[_]](globalThing: GlobalThing[F]): (Service[F], Context[F])
}
То есть на каждый новый экземпляр Service[F] я хочу отдавать какой-то интерфейс, который относится к нему, но совершенно необязательно имеет подмножество его фукнциональнсости (напирмер Context[F] умеет удалять Service[F] из глобального хранилища в GlobalThing[F], про которое Service[F] сам ничего не знает).
Есть ли какие-то готовые способы это делать кроме как тупо возвращать два типа? Какие-то идеи у меня есть, но не хочу изобрести велосипед.
Возвращать Service[F] with Context[F]?
А ещё если задачей стоит контроль цикла жизни сервиса, то стоит глянуть в сторону Resource[F, Service[F]]
Обсуждают сегодня