Size: a a a

2021 January 17

YP

Yuriy Pachin in Haskell
Пасиб, гляну.
источник

к

кана in Haskell
Yuriy Pachin
А это шутка такая, что ормолу из длинного data A | B | C | D | … делает высоченный столб?
ормолу переносит на новую строку только если ты сам перенес

собственно сделал намеренно в одной строке - ормолу в одной строке и оставит, сделал несколько строк - ормолу уже сам разнесет эту ноду на несколько строк как считает нужным
источник

YP

Yuriy Pachin in Haskell
У меня несколько длинных строк, да.
источник

IR

IC Rainbow in Haskell
IC Rainbow
data Collection a = Collection
 { thingFoo :: a
 , thingBar :: a
 }
 deriving stock (Show, Functor, Foldable, Traversable, Generic, Generic1)
 deriving Applicative via (Co Collection)

instance Distributive Collection where
 collect = genericCollect

instance Representable Collection
убрать бы теперь все эти портянки под ондин ньютайп...
источник

к

кана in Haskell
ну Distributive и Representable можно тоже засунуть в дерайвинг (Distributive через via, Representable это anyclass). Вроде anyclass для пустых инстансов и нужен
источник

к

кана in Haskell
но список инстансов явных при этом офк не уменьшится, только если какой-нибудь из них не нужен для другого инстанса и не более
источник

IR

IC Rainbow in Haskell
Distributive через что?
источник

IR

IC Rainbow in Haskell
говорят там надо прописывать руками коллект потому что оба метода имеют дефолты друг через друга
источник

к

кана in Haskell
IC Rainbow
Distributive через что?
GenericDistributive

newtype GenericDistributive g a = GenericDistributive (g a)


instance (Generic1 g, GDistributive (Rep1 g)) => Distributive (GenericDistributive g) where
 collect = coerce (genericCollect @... @...)

что-то такое наверное

data X a
 deriving Distributive via GenericDistributive X
источник

к

кана in Haskell
пример с дефолтами через друг друга
источник

AV

Andrei V in Haskell
Какая-то страная фигня со Stack под windows.  Пытаюсь запустить приложение в виде stack exec -- my-exe и приложение закрывается мгновенно, как будто первая инструкция return 0. Если запускать то же приложение через консоль, то получаю корректную работу + сообщения в консоль. Все каким-то образом связано с зависимостью на cairo, которую я ставил через стаковскую версию mingw: stack exec -- pacman -S bla-bla-bla-cairo
источник

AV

Andrei V in Haskell
если убрать toFile то все работает корректно
источник

AV

Andrei V in Haskell
ощущение, что не хватает dll, но я не понимаю как в stack организован path для вызова stack exec, и еще не понимаю почему все завершается без какого-нибудь сообщения об ошибке
источник

AV

Andrei V in Haskell
проверял на linux, там все исполняется корректно
источник

IR

IC Rainbow in Haskell
Andrei V
ощущение, что не хватает dll, но я не понимаю как в stack организован path для вызова stack exec, и еще не понимаю почему все завершается без какого-нибудь сообщения об ошибке
если ничего не сообщается, то может не заказана консоль?

ghc-options: -optl-mconsole
источник

IR

IC Rainbow in Haskell
кана
пример с дефолтами через друг друга
так прокатывает, а для дистрибутива нет:

   • Couldn't match representation of type ‘f (WrapCollection
                                                 Collection a)’
                              with that of ‘f (Collection a)’
       arising from the coercion of the method ‘distribute’
         from type ‘forall (f :: * -> *) a.
                    Functor f =>
                    f (WrapCollection Collection a) -> WrapCollection Collection (f a)’
           to type ‘forall (f :: * -> *) a.
                    Functor f =>
                    f (Collection a) -> Collection (f a)’
     NB: We cannot know what roles the parameters to ‘f’ have;
       we must assume that the role is nominal
   • When deriving the instance for (Distributive Collection)
  |
31 |   deriving Distributive via (WrapCollection Collection)
  |            ^^^^^^^^^^^^
источник

к

кана in Haskell
нужно репрезентабл ньютайп-дерайвнуть похоже еще
источник

IR

IC Rainbow in Haskell
кана
нужно репрезентабл ньютайп-дерайвнуть похоже еще
type role WrapCollection representational nominal

так всё ещё не знает роль
источник

AV

Andrei V in Haskell
IC Rainbow
если ничего не сообщается, то может не заказана консоль?

ghc-options: -optl-mconsole
не, самостоятельно вполне работает
источник

AV

Andrei V in Haskell
IC Rainbow
если ничего не сообщается, то может не заказана консоль?

ghc-options: -optl-mconsole
Может так понятнее будет
источник