Size: a a a

2020 July 20

AO

Artem Ohanjanyan in Haskell
Tel Asc
Мне кажется лично, кажется,что в теории можно сделать при помощи ТН или чего-то ещё сделать для черч-энкодинг типов инстанс в аппликатив...
В смысле автоматически?
источник

TA

Tel Asc in Haskell
Artem Ohanjanyan
В смысле автоматически?
Хотя-бы для функторов.
источник

AO

Artem Ohanjanyan in Haskell
Tel Asc
Хотя-бы для функторов.
Для функторов вроде и так можно
источник

AO

Artem Ohanjanyan in Haskell
источник

ЗП

Зигохистоморфный Пре... in Haskell
Новый тип это всегда какая-то конструкция из старых, а значит имея некий набор можно использовать deriving via
источник

TA

Tel Asc in Haskell
Artem Ohanjanyan
Для функторов вроде и так можно
У меня немного другая задача даже...
Я пытаюсь сделать deriving в Functor обощенный до произвольных стрелок для Чёрч энкодинг типов с произвольными стрелками:

class Arrow a=>AFunctor a f where
  amap :: a b c -> a (f b) (f c)

Ну и парочку типов для этого например:

newtype ArrPair a b c =
   ArrPair (forall pair.a (a b (a c pair)) pair)

newtype ArrId a b  =
 ArrId (forall id.a (a b id) id)
источник

JS

Jerzy Syrowiecki in Haskell
Зигохистоморфный Препроморфизм
Новый тип это всегда какая-то конструкция из старых, а значит имея некий набор можно использовать deriving via
нет, новое поведение не комбинация старых поведений
источник

TA

Tel Asc in Haskell
Jerzy Syrowiecki
нет, новое поведение не комбинация старых поведений
+
Ну, точнее не всегда.
State тот же нельзя сделать при помощи Reader + Writer...
источник

TA

Tel Asc in Haskell
Ну в теории да,но как определить какие-то примитивные типы для построения всего - тоже загадка...
Т.е. как понять что они позволят воплотить практически что угодно,или что угодно...
источник

TA

Tel Asc in Haskell
Как вы думаете,можно ли таким типом(Encoding) описать любой Church Encoding тип с произвольными стрелками вместо (->)?
https://pastebin.com/GYCLcZqN
источник

M

Maks in Haskell
хочу по меркам haskell странного. чтото типа системы плагинов: мапу название -> тип, в рантайме. типы плагины все определены статически
можно конечно написать в отдельном модуле руками функцию, но наверно есть способ лучше?
источник

M

Maks in Haskell
в питоне такое на метаклассах делалось, тут полагаю нужен TH будет
источник

MK

Maxim Koltsov in Haskell
посмотри на пакет typerep-map например
источник

KZ

Kirill Zaborsky in Haskell
Symbol в ключи пихать?
источник

A

Andrey in Haskell
Tagged?
источник

M

Maks in Haskell
Maxim Koltsov
посмотри на пакет typerep-map например
не то, у меня все такие типы будут иметь один и тот же тайп класс, нужно просто получать его по строчке
можно просто поддерживать такую мапу руками, но это как то несистемно
источник

IK

Ilya Kos in Haskell
data SomeType = SomeType { someType :: forall x. Foo x => x }

typeMap :: Map String SomeType
источник

M

Maks in Haskell
да
источник

IK

Ilya Kos in Haskell
где Foo -- тот тайпкласс который ты хочешь
источник

M

Maks in Haskell
хочу чтоб typeMap формировался автоматически
источник