Size: a a a

2021 April 06

JS

Jerzy Syrowiecki in Haskell
Simon Peyton Jones @simonpj · 6 months ago
Developer

Yes, currently this behaviour is by-design --- it's not a bug. Given
A data type T
A record field name f then
(e :: T).f should have just one type -- the type of the field f in data type T. I don't think we have any plans -- or even motivation -- to change this design, which seems quite reasonable to me.

https://gitlab.haskell.org/ghc/ghc/-/issues/18737#note_301827
источник

A

Aleksandr Khristenko in Haskell
That's true, I think it would be reasonable to permit such datatype declarations if you dropped record selection/update/HasField and supported construction and pattern-matching only. It needs a new ghc-proposal though, and I don't currently see a strong motivation for it when you could just use distinct names.
источник

AA

A64m AL256m qn<co... in Haskell
с тех пор, кстати, стал ожидаться пропозал гендри с полиморфным хэзфилдом
источник

AA

A64m AL256m qn<co... in Haskell
так что если кому это важно, может будет возможность это пропихнуть
источник

A

Aleksandr Khristenko in Haskell
Не, я решил что я в таких случаях типы суммы просто как теги использую, а внутри  уже другой тип с данными
источник
2021 April 07

ЖК

Жук Короед in Haskell
Думаю я понял, почему в pandoc нет walkA.
Потому что многие Walkable типы рекурсивны (например Inline), а функцию Applicative f => (a -> f a) -> a -> f a для рекурсивного типа a вроде как не сделаешь, чтобы a -> f a применилось к a на всех уровнях.
источник

AK

Aleksey Kislitsa in Haskell
Вроде делали рекурсивный Applicative для дерева к примеру. Другое дело что это в плане эффективности
источник

а

а это кто in Haskell
Applicative f => (a -> f a) -> a -> f a
Можно обобщить до
(a -> b) -> a -> b

Другое дело что a должно быть Foldable
источник

а

а это кто in Haskell
иначе как по нему проходить
источник

[

[BRM]White Rabbit in Haskell
спам-атака?
источник

ЖК

Жук Короед in Haskell
Окей.

data Foo = Next Int Foo | Stop

foo :: Applicative f => (Foo -> f Foo) -> Foo -> f Foo
foo f Stop = f Stop
foo f (Next x xs) = g f (foo f xs)
   where
   g :: Applicative f => (a -> f b) -> f a -> f b
   g = error "applicative has no 'bind' method"
источник

Y

Yuuri in Haskell
Типы не сходятся же
источник

Y

Yuuri in Haskell
И вообще если слева f a, а справа a, то это должен быть скорее CoApplicative (`Theoretical`?), который умеет dirty :: f a -> a 🤔
источник

ЖК

Жук Короед in Haskell
А, извиняюсь. Очепятка. Ща поправлю
источник

ЖК

Жук Короед in Haskell
На выходе f Foo должно быть
источник

ЖК

Жук Короед in Haskell
В Foldable t => t a можно проходить по a, что было бы
(Applicative f, Foldable t) =>
(a -> f a) -> t a -> t (f a)

А речь идет о
Applicative f => (a -> f a) -> a -> f a
где если Foldable t => а ~ t _, то:
(Applicative f, Foldable t) =>
(t a -> f (t a)) -> t a -> f (t a)
источник

[

[BRM]White Rabbit in Haskell
почему после обращения по индексу лист не был вычислен до вида _ : _ : _ : _ : _ : 6 : _ ???
источник

[

[BRM]White Rabbit in Haskell
Вопрос закрыт, это в принципе не работает
источник

к

кана in Haskell
работает
источник

к

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