Size: a a a

2021 January 25

ЗП

Зигохистоморфный Пре... in Haskell
зашибись) если хочешь чтобы работало используй в конце, но такое мне нафиг не впилось, ибо там есть и другие типы для которых нужен Project инстанс
https://gitlab.haskell.org/ghc/ghc/-/issues/19257#note_326502
источник
2021 January 26

АК

Анатолий Кот... in Haskell
Добрый день, подскажите есть ли в хаскеле возможность получить представление типа функции в виде значения?
Те что-то подобное псевдокоду:
reprOf (:) = Function (Tp "a1") (Function (Tp "a2") (Tp "a2"))
источник

YS

Yan Shkurinskiy in Haskell
Возможно что-то типа TypeRep из Typeable?
источник

к

кана in Haskell
Анатолий Кот
Добрый день, подскажите есть ли в хаскеле возможность получить представление типа функции в виде значения?
Те что-то подобное псевдокоду:
reprOf (:) = Function (Tp "a1") (Function (Tp "a2") (Tp "a2"))
источник

к

кана in Haskell
ты такое делал
источник

к

кана in Haskell
прям с переменными
источник

R

Roman in Haskell
кана
ты такое делал
не помню такого. Когда?
источник

R

Roman in Haskell
а, пардон
источник

R

Roman in Haskell
не заметил слово "типа"
источник

R

Roman in Haskell
Анатолий Кот
Добрый день, подскажите есть ли в хаскеле возможность получить представление типа функции в виде значения?
Те что-то подобное псевдокоду:
reprOf (:) = Function (Tp "a1") (Function (Tp "a2") (Tp "a2"))
можно с адскими хаками: https://github.com/effectfully/sketches/tree/master/poly-type-of-saga/part2-enumerate-type-vars

(но имена я там из воздуха беру)
источник

JS

Jerzy Syrowiecki in Haskell
Анатолий Кот
Добрый день, подскажите есть ли в хаскеле возможность получить представление типа функции в виде значения?
Те что-то подобное псевдокоду:
reprOf (:) = Function (Tp "a1") (Function (Tp "a2") (Tp "a2"))
да

Prelude Data.Typeable> data A
Prelude Data.Typeable> typeOf ((:) @A)
A -> [ A ] -> [ A ]
источник

R

Roman in Haskell
по идее еще можно через GHC API как-нибудь
источник

к

кана in Haskell
Jerzy Syrowiecki
да

Prelude Data.Typeable> data A
Prelude Data.Typeable> typeOf ((:) @A)
A -> [ A ] -> [ A ]
а тут без типопеременных
источник

АК

Анатолий Кот... in Haskell
Jerzy Syrowiecki
да

Prelude Data.Typeable> data A
Prelude Data.Typeable> typeOf ((:) @A)
A -> [ A ] -> [ A ]
мне нужно чтобы с дженериками работало
источник

JS

Jerzy Syrowiecki in Haskell
кана
а тут без типопеременных
а в вопросе не было
источник

JS

Jerzy Syrowiecki in Haskell
а, уже появилось уточнение
источник

к

кана in Haskell
reprOf (:) = Function (Tp "a1") (Function (Tp "a2") (Tp "a2"))

да вот прям пример кода из примера
источник

YS

Yan Shkurinskiy in Haskell
Анатолий Кот
мне нужно чтобы с дженериками работало
Дженерики хаскелёвые или то что понимают во всех остальных языках?
источник

к

кана in Haskell
с конкретной функцией и типопеременными
источник

к

кана in Haskell
правда там неправильный пример
источник