Где мои юникодные инфиксные конструкторы? Когда я уже смогу сделать data a × b = a × b?
А куда переползли juick'о-хаскелисты?
blog.discus-lang.org — интересно они серьёзно переименовали дисциплину или это затянувшееся первое апреля?
github.com — вот мы и дожили до того, что стали появляться проекты которые без стакана не соберёшь.
Внезапно, после очередного обновления всё сломалось. Оказалось поломали API MonadMask в exceptions: ввели обобщённый bracket и выразили через него небо и аллах. В целом идея хорошая. Непонятно только почему для него не написали дефолтную имплементацию.
У меня проблема. Мне почему-то кажется, что если для типа t можно сделать (а -> b) -> t a -> t b, то и Applicative f => (a -> f b) -> t a -> f (t b) тоже можно и любой Functor — всенепременно Traversable.
А тип data T cxt f g = T (forall a. f a -> cxt (g a)) мне приснился или где-то широко используется?
В догонку к #2891329. Ах да! Я же прибил гвоздями `t`, а его надо как-то вычислять из `b`. Ну или наоборот.
Алсо недавно обнаружил что у ассоциированных с классом типофамилий могут быть параметры отличные от параметров класса. Жить сразу стало заметно легче.
А кто-нибудь уже написал генератор линз с полиморфным апдейтом на генериках? С мономорфными легко. gist.github.com — вот например вариант, который зажёвывает Proxy t и возвращает линзы в виде гетеросписка. Тут есть несколько решённых и нерешённых проблем (особенно мне нравятся отдельные инстансы для Applicative и для Functor), но в целом речь не об этом. gist.github.com — попытка проделать это же с полиморфными линзами проваливается где-то в районе инстанса для f :*: g. А всё потому что тип полученного произведения типов зависит от того какой «множитель» мы меняем. Где-то на этом месте фантазия моя подиссякла.
ghc.haskell.org — Внимание! В вашем хаскеле обнаружена рекурсия! Медленно уберите руки с клавиатуры и положите их на стол. За вами выехали.
ghc.haskell.org — Еее! Наконец-то мозгоебля про «что это у вас <*> не тождественен `ap`» закончится.
А что из типов у нас гарантированно не выводится? Кроме полиморфизма второго ранга.
gist.github.com — предлагаю небольшую игру. Суть игры в том, что вы будете пытаться доказать мне что реализация легковесных регионов по ссылке неполноценна и надо взять regions, а я буду вносить правки в gist и делать вид что так и было.
docs.google.com — всё так
Положим у меня есть тип data T f = T (forall a. f a -> a) и линза вида Lens (f x) (f x) x x, где f — полиморфный контейнер фиксированного размера. Могу я как-нибудь при помощи второго наполнить первое?
Почему и Arrow, и Profunctor в итоге позволяет создать объект из произвольной функции? Я хочу bondage & discipline, а тут такая жопа.
А можно посмотреть где кметтолинзы используют для более другого профунктора нежели фунция?
Как принято оформлять всякие автогенерированные модули в cabal-файле? Навроде Paths_package_name и других штук.
За сколько еды вы готовы писать на хаскеле примерно год?