для тех, кому тоже любопытно: > I'm for open discussions, so will ask here directly without sarcasm/jokes. Why do you have rainbow Haskell Foundation logo? It feels like HF i...
что если вместо data Tape = Tape !Stream !Word8 !Stream использовать newtype Tape = Tape (# !Stream, !Word8, !Stream #) ? (я не очень в курсе)
возьму тогда еще выходной а что думаете по поводу нормального решения с type-changing update? Я не думаю, что то, что Кметт предложил в record-set-field треде, имеет нормальн...
а еще я пописал на строгой System F omega и насладился тем фактом, что надо делать eta-expansion вручную, иначе можно запросто влететь в бесконечный цикл. Например вот этот те...
завтра иохк устраивает дискуссию Haskell, then and now: What is the future for functional programming languages? Prof Simon Peyton-Jones, Prof John Hughes, Prof Philip Wadle...
модификации стейта умышленно такие ленивые?
а в серванте нельзя :> QueryParam' '[Required, Strict] "symbol" Symbol :> QueryParam' '[Required, Strict] "side" Side :> QueryParam' '[Requ...
хм, а ведь по идее есть очень простое решение: вместо QueryParam ввести какое-нибудь QueryData и потом писать QueryData '[Required, Strict] D которое под капотом будет сериа...
type family DeepSeq (x :: a) = (r :: a) | r -> x where DeepSeq (f x) = DeepSeq f (DeepSeq x) DeepSeq x = x выдает мне • Type family equation violates injecti...
хотя теперь вот еще Control.Selective добавился. Им кто-то пользуется в реальном мире?
это работает: embed :: (forall f b. Sig f effs2 => (forall f. Sig f effs1 => f b) -> f b) -> Eff effs1 a -> Eff effs2 a embed weaken (Eff k) = Eff $ \f -> k $ \b ...
когда гхц тайпчекает дефолтный инстанс для чего-то вроде (класс немного другой, но сигнатура похожа) MonadError e m => MonadError e (MaybeT m) а одного из методов этого кла...
в строгих языках типа окамла map поверх списков представлен в двух ипостасях: хвостово-рекурсивный, который разворачивает список, и не хвостово-рекурсивный, который список не ...
у кого-нибудь есть GHC не 8.10.2 под рукой? Вот этот код выдает ошибку: type family Foo k (a :: k) :: * where Foo * a = a ?
спустя несколько часов дебаггинга я выяснил, что у меня генерятся хеши разной длины, хотя все должны быть 64 байта. Либа, которая генерит хеши, — байндинги к сишной либе, так ...
"круто" — это про outside. Я не фанат recursion-schemes. Особенно когда кто-то их использует и при этом все равно явно выписывает все clauses в функции, которую cata/para прин...
почему я могу написать class MonadPretty config m | m -> config instance (MonadReader env m, HasPrettyConfig env config) => MonadPretty config m а написать class (MonadRe...
что думаете про A Quick Look at Impredicativity? Я чет почитал и не понимаю, почему это преподносится как спасение от проблемы импредикативности. По-моему, слишком ad hoc и un...
> сколько еще авторов компиляторов/языков программирования так считают? я в плутусе топил за то, чтобы в блокчейне хранить типизированный код, специально чтобы нельзя было ко...
> You must make sure that the OPTIONS_GHC is applied both to the file where your records are defined, and where the record syntax is used Wat. Это и для record-dot-syntax и r...