@haskellru

Страница 1340 из 1551
A64m
15.07.2018
17:59:30
> :{ | min' :: Ord a => Maybe a -> Maybe a -> Maybe a | min' = coerce $ (<>) @(Maybe(Min a)) | :} <interactive>:54:34: error: Not in scope: type variable `a'

Владислав
15.07.2018
18:00:44
это применение параметра типа, как foo<T> foo @T
не понятно. Где об этом почитать?

Антон
15.07.2018
18:02:22
не понятно. Где об этом почитать?
https://ghc.haskell.org/trac/ghc/wiki/TypeApplication

A64m
15.07.2018
18:03:52
не понятно. Где об этом почитать?
https://ghc.readthedocs.io/en/latest/glasgow_exts.html#visible-type-application

Google
Владислав
15.07.2018
18:04:12
thanks!

Pineapple
15.07.2018
19:46:19
сто лет уж коерс есть, нет, все фмапы лепят
Фмапы можно лепить в бессознательном состоянии

A64m
15.07.2018
19:47:03
а написать тип какой надо для подбора словарей и потом какой надо для использования нельзя что ли?

Pineapple
15.07.2018
19:47:51
Можно, но это надо говлову включить

A64m
15.07.2018
19:52:21
ну тут вроде надо головы как минимум одинаково, чтоб придумать что надо моноид для Maybe (Min a) дальше уже не надо

Yuriy
15.07.2018
20:09:53
@qnikst к тебе комментарий https://www.youtube.com/watch?v=K4gDf1jCJEM&lc=Ugwd_kJRREezGu-P7ZZ4AaABAg

dimiii
15.07.2018
20:21:55
Фмапы можно лепить в бессознательном состоянии
Обколются своими стероидами и давай лепить фмапы в бессознательном состоянии

Андрей
15.07.2018
21:07:15
функторами же

Lev
16.07.2018
05:03:17
“Haskell is very simple. Everything is composed of Functads which are themselves a Tormund of Gurmoids, usually defined over the Devons. All you have to do is stick one Devon inside a Tormund and it yields Reverse Functads (Actually Functoids) you use to generate Unbound Gurmoids.” (c) @niftierideology

Dmitry
16.07.2018
05:09:52
И ведь правда, я именно так и программирую.

IC
16.07.2018
09:09:19
как сделать функцию (или класс) вида Not (Show a) => a -> ()?

Google
Aleksey
16.07.2018
09:11:22
Т.е. ты хочешь расконстреинт?

"освобождение"

или "попущение"

Alexander
16.07.2018
09:11:43
гарантию отсутствия инстанса

я знаю как для конкретных типов такое сделать

и.е. придется явно перечислить

A64m
16.07.2018
09:12:22
никак без потенциально очень больших проблем

Pineapple
16.07.2018
09:12:23
Как?

Alexander
16.07.2018
09:12:46
через closed type family TypeError

у серокелей в predule их было что-то такое чтобы Exception запрещать

или в гайдах IOHK

Ilya
16.07.2018
09:14:13
C QuantifiedConstraints и если ввести контрейнт False, для которого нельзя сделать инстанс, наверное можно будет написать традиционное (Show a => False) => a -> ()

только часть a -> () как-то не особо осмысленно выглядит, в чистом языке это изоморфно ()

kana
16.07.2018
09:18:33
жаль хаскель не чистый и там это имеет смысл

IC
16.07.2018
09:18:40
это не важно

а с тайпклассами такое прокатит?

instance (Show a => False, Show b, Show c => False) => Foo a b c where foo :: b -> String

ну и чтобы гхц сам выбрал подходящий

Ilya
16.07.2018
09:23:29
я хз, я QuantifiedConstraints еще не пробовал

Alexander
16.07.2018
09:24:57
я думаю не взлетит

Google
Alexander
16.07.2018
09:25:07
но я не пробовал

Ilya
16.07.2018
09:25:40
Да и про добавление специального констрейнта False я ничего не слышал, так что сорри, если дал надежду, мой комент выше был в большей степени умозрительным

IC
16.07.2018
09:26:58
https://hackage.haskell.org/package/constraints-0.10.1/docs/Data-Constraint.html хм...

Ilya
16.07.2018
09:29:39
а, ок, Bottom уже есть

IC
16.07.2018
09:30:04
но будет ли им пользоваться солвер? просто кинуть typeerror не интересно

Alexander
16.07.2018
09:31:11
не будет это имхо нормально работать

хотя с QuantifiedConstraints шансы увеличиваются, надо б его помучать

IC
16.07.2018
09:32:13
есть класс с тремя аргументами и к нему есть ровно три инстанса - выбирай первый аргумент, второй, третий.

хочется чтобы оно без аннотаций само выбирало какой из них подходит. потому что с аннотациями проще просто три функции написать.

Alexander
16.07.2018
09:33:42
можно попробовать, но мне кажется что игра свечь не стоит

а какой алгоритм выбора?

A64m
16.07.2018
09:35:16
вообще-то предполагается, что написание кода, поведение которого меняется от добавления инстанса в хаскеле делается только с помощью багов и дыр, которые компрометируют работоспособность тайпклассов

IC
16.07.2018
09:35:21
Show для примера. на самом деле там скорее instance (???) => Foo [a] b c where — "найди список"

Alexander
16.07.2018
09:35:32
а если Show есть у первого и второго?

IC
16.07.2018
09:35:49
а если Show есть у первого и второго?
тогда можно смело тайперрор кидать

пользовательский

Alexander
16.07.2018
09:36:16
так, а откуда список появился?

kana
16.07.2018
09:36:18
Да и про добавление специального констрейнта False я ничего не слышал, так что сорри, если дал надежду, мой комент выше был в большей степени умозрительным
ну такой сделать можно, True ~ False, просто хаскель не выведет, что это пустой констрейт, и что Void => Void положительный он тоже не выведет, ведь его нужно будет сконструировать

IC
16.07.2018
09:36:55
Google
Alexander
16.07.2018
09:37:18
ну поиск списка это проще чем отрицательный констрецнт

особенно обобщенный

IC
16.07.2018
09:41:35
куда копать?

A64m
16.07.2018
10:31:48
> I'm disappointed that Michael's concerns regarding multiple public libraries were completely disregarded опять нехорошие кабалисты фичи добавляют не послушав сноймана

Гонзалес не хочет в рулевой комитет выдвигаться - повезло!

Index
16.07.2018
10:48:54
где это читать

A64m
16.07.2018
10:52:40
https://www.reddit.com/r/haskell/comments/8yz92h/a_year_into_backpack_inside_2455d/

Leonid
16.07.2018
10:53:49
это поди опять тот самый тролль

Admin
ERROR: S client not available

A64m
16.07.2018
11:01:25
сейчас что-то весело комментарии против стека плюсовать стали

> So fpco decided to reinvent cabal-install instead of contributing to its development and now they're realizing the costs of NIH? Too bad! плохо придется правда хаскелистам вообще а не стекоразработчикам. им теперь можно плевать на все, заметное число твсе равно будет стеком пользоваться, а значит нормального распространения бекпак не получит, ведь особых перспектив поддержки в стеке нету

так что снойман фактически удушил модули в колыбели, отличная работа!

Leonid
16.07.2018
11:11:40
у бекпака UX так себе в любом случае

A64m
16.07.2018
11:12:32
для энкодинга тайпклассов или чего-то вроде да, для того, для чего он планировался - норм.

Index
16.07.2018
11:13:12
сейчас, наткнувшись на баг в Бэкпеке, узнал, какой бардак с package id в GHC

я-то думал там красиво всё сделали, а вот нет

A64m
16.07.2018
11:13:21
но понятно что всегда захотят использовать не для того, для чего фича планировалась, так что конечно надо нормальный синтаксис для хаскельных файлов делать

по крайней мере недовольных тем, что его нет в обсуждении полно

Google
Ignat
16.07.2018
11:23:16
и в крестах можно

вот и обнаружены 2 языка с лучшими системами типов

Yuriy
16.07.2018
11:27:23
и в крестах можно
неправда, туда классы ещё не завезли

Ignat
16.07.2018
11:28:08
ну всяческих type_traits можешь написать каких душе угодно

Дед Пегас
16.07.2018
11:34:15
Правда, выглядить это будет просто адова.

A64m
16.07.2018
11:39:33
но, конечно, довольно забавно, что (потенциальные) пользователи первой практической имплементации (недо) миксинов жалуются на UX по сравнению с функторами, хотя миксины как раз придумывались для улучшения UX функторов.

Антон
16.07.2018
11:39:40
а в Расте можно ?
Так там вроде это только на Send и Sync распространяется

Dmitry
16.07.2018
12:11:01
у серокелей в predule их было что-то такое чтобы Exception запрещать
В universum нет ничего про запрещение констрейнтов. Были обсуждения в cardano-sl касательно запрещения Exception. Вот в этом посте кто-то тогда спрашивал: * https://www.reddit.com/r/haskell/comments/7xcfkk/defining_a_negative_type_constraint/

Timofey
16.07.2018
12:11:16
А вообще появились вменяемые тьюторилы по бакпаку? Когда его только анонсировали, была куча восторженных бессмысленных постов, но ни один даже и не попытался ответить, зачем бакпак нужен и какую проблему он решает

A64m
16.07.2018
12:13:40
не понимаю, о каких постах речь

Timofey
16.07.2018
12:15:02
я тогда гуглил этот бакпак, попадал только на всякие "о да, я буду это юзать" на реддите и в личных стандалоун-бложиках

Dmitry
16.07.2018
12:17:20
А вообще появились вменяемые тьюторилы по бакпаку? Когда его только анонсировали, была куча восторженных бессмысленных постов, но ни один даже и не попытался ответить, зачем бакпак нужен и какую проблему он решает
Я понял хорошо use-case бэкпака и зачем он нужен после выступления @int_index на митапе Serokell. Хотя да, было бы неплохо иметь полноценный туториал с собирающимся примером...

Dmitry
16.07.2018
12:19:52
A64m
16.07.2018
12:20:10
есть мотивация в пропозале https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst#motivation

есть туториал в янговском диссере https://github.com/ezyang/thesis/releases/download/rev20170925/main.pdf

Dmitry
16.07.2018
12:20:23
Хотя я что-то припоминаю про слайды, надо @int_index спросить...

Index
16.07.2018
12:21:43
Вроде я нарисовал какие-то слайды пока ехал на поезде в Петербург, а потом перерисовывал их от руки на вайтборд

Исходников у меня не сохранилось точно

Евгений
16.07.2018
12:27:11
Меня в бекпаке беспокоит только одно — как чётко отделить юзкейсы бекпака от тайпклассов? По наличию законов?

Страница 1340 из 1551