Size: a a a

Scala User Group

2020 May 14

АР

Андрей Романов... in Scala User Group
еее
источник

K

Kai in Scala User Group
Хмм, а может наоборот в дотти баг.
источник

K

Kai in Scala User Group
Хотя наверное все верно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Kai
Хмм, а может наоборот в дотти баг.
Ну сам подумай ковариантных типов меньше, чем инвариантных, каждый ковариантный сойдёт за инвариантый.
Значит тайпконструкторов, которые принимают инвариантные типы(т.е. те и другие), меньше, чем тех, которые только ковариантные
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Т.е. аргумент тайпконструктора - это контравариантная позиция
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Как и аргумент функции
источник

Oℕ

Oleg ℕizhnik in Scala User Group
только в кайндах
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Я пытался сконструировать ансаунднесс, но пока не смог
источник

K

Kai in Scala User Group
Тоже не могу, короче вроде все верно.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Kai
Тоже не могу, короче вроде все верно.
в скале 2?
источник

K

Kai in Scala User Group
В дотти
источник

Oℕ

Oleg ℕizhnik in Scala User Group
т.е. нужно ругаться на baz а не на quux , т.е. нельзя в конструктор, требующий ковариантный параметр передавать инвариантный
источник

AS

Aλeχander Semenov in Scala User Group
@odomontois а обязательно ли Local наследовать Context? Если мне нужно только назначить контекст, но не читать его.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Aλeχander Semenov
@odomontois а обязательно ли Local наследовать Context? Если мне нужно только назначить контекст, но не читать его.
Не задумывался ни разу о такой абстракции. Не могу придумать типа, который абстрагировался бы ей, разделяющего локал и контекст
источник

AS

Aλeχander Semenov in Scala User Group
Oleg ℕizhnik
Не задумывался ни разу о такой абстракции. Не могу придумать типа, который абстрагировался бы ей, разделяющего локал и контекст
ну вот у меня контекст выставляется в веб ресурсах при авторизации, соответственно мне не нужно его там читать
источник

Oℕ

Oleg ℕizhnik in Scala User Group
и чем грозит использование Local в текущей форме?
источник

AS

Aλeχander Semenov in Scala User Group
Oleg ℕizhnik
и чем грозит использование Local в текущей форме?
Это часть большей проблемы, давай я лучше зайду с другой стороны, т.к. возможно подтупливаю. ) Контекст создается во время веб запроса, то есть при старте аппа его нету. Должен ли тогда быть тип контекста Option[Ctx] или каким-то ADT? Но тогда мне в веб ресурсе нужен F WithLocal Option[Ctx]. Это ок. Но сервис слою нужен F WithContext Ctx, как мне к нему прийти из F WithLocal Option[Ctx]?
источник

AD

Apache DOG™ in Scala User Group
λesha ƒomkin
Скала 3 не нужна
Завези безскобочный синтаксис и стейджед программинг и возможно да.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Aλeχander Semenov
ну вот у меня контекст выставляется в веб ресурсах при авторизации, соответственно мне не нужно его там читать
Я могу представить такую абстракцию
trait Consider[F[_], C]{
 def consider[A](c: C, fa ; F[A]): F[A]
}


и сделать
type WithSpecify[F[_], C] = Consider[F, C => C]

trait WithLocal[F, C] extends WithContext[F, C] with WithSpecify[F, C] { ... }
}
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Aλeχander Semenov
Это часть большей проблемы, давай я лучше зайду с другой стороны, т.к. возможно подтупливаю. ) Контекст создается во время веб запроса, то есть при старте аппа его нету. Должен ли тогда быть тип контекста Option[Ctx] или каким-то ADT? Но тогда мне в веб ресурсе нужен F WithLocal Option[Ctx]. Это ок. Но сервис слою нужен F WithContext Ctx, как мне к нему прийти из F WithLocal Option[Ctx]?
Ну ты собственно и подошёл к той проблеме, по которой у большинства инициализирующих что-то абстракций стоит в результате I[Foo[F]]
А также то, зачем вообще нужен Unlift приоритетно
источник