Кстати, что скажете про Ivory? Оно живо? Какие-то подводные камни кроме того, что там скоуп замыканий не контролируется?
@electrosnail я вот читаю про категорию Hask, и она определяется так, что объекты в ней - типы, а стрелки - (->). Я рассуждаю так, что если co-X, это X, где все стрелки развёр...
MonadThrow и liftEither ещё не предлагали?
Где можно найти гетерогенный JSON Object тип, и чтобы из коробки Aeson.From/ToJSON были? Что-то такое хочу: jcons @"foo" 56 (jcons @"bar" "Tajikistan" jnil) :: JsonObject '[...
А откуда вообще он взялся? Я даже не могу найти сообщение, о котором @cheese_hs спросил 👀
type Truth = Enum () :: Constraint data KBool = 'KTrue | 'KFalse type family Default (flag :: KBool) (a :: k) (b :: k) :: k type instance Default 'KTrue a _ = a type insta...
Сколько в среднем занимает путь уверенного джуна-хаскелиста в мидлы?
Какие есть общепринятые "приёмы"/методы/"лучшие практики" безболезненного написания хорошего, общего, полиморфного кода, с тайпклассами? (Так, чтобы без больших проблем с Und...
Эта штука не подлежит tail call optimization go acc | acc /= stop = f acc <|> go (next acc) .......| otherwise = Nothing А эта подлежит, верно? go acc .....| acc /= stop = ....
class Foo a where type FooType a q foo :: a -> FooType a q instance Num n => Foo [x] where type FooType [x] g = g foo xs = fromIntegral $ length xs :: FooType...
Допустим, есть такой вот тип с HKD data Foo f = Foo { _foo :: HKD f Float , _bar :: HKD f Int , _baz :: HKD f String } Можно ли как-то при помощи магии линз сделать фу...
А возможно ли сделать что-то вроде дизъюнкции констрейнтов? Например: instance Or (ISO a b) (ISO b a) => MyClass a b where
А так не сработает? [minBound ..]
Не нашел в либе reactive ни одной сигнатуры с IO, торчащей наружу, IO только в Internals. При это есть Copointed у тамошних монад. Значит ли это, что она неявно делает IO "по...
Товарищи, вот в начальный объект есть морфизм только у самого начального объекта. В теории типов начальному объекту соответствует пустой тип, так? Но в хаскеле я могу сделать ...
А с каких пор ООП - это только динамический диспатч? Потому что Боб так сказал? 🤔
О, продублирую старый вопрос: Исходники каких проектов можно почитать, как образец идиоматического, чистого хаскельного кода, с которого нужно брать пример?
Пытаюсь понять DerivingVia, но что-то непонятное происходит: data Rad n where Rad :: (Coercible Double n, RealFloat n) => n -> Rad n deriving RealFloat via Double GHC жалует...
Товарищи, а можно ли как-то обойтись без Proxy и сделать вместо foo :: MyClass a b => Proxy b -> a -> Bar Вот так: foo :: MyClass a b => a -> Bar? Чтоб просто нужно было тип я...
Как можно сделать лаконичнее traverse ((*>) . f <*> g)? Может есть какие-то удобные комбинаторы с типом наподобие Applicative f => (a -> f b) -> (a -> f c) -> a -> f c в haske...