Home liberachat/#haskell: Logs Calendar

Logs on 2023-02-04 (liberachat/#haskell)

00:04:36 jakalx parts (~jakalx@base.jakalx.net) ()
00:06:07 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
00:06:31 × brettgilio quits (~brettgili@x-irc.gq) (Ping timeout: 252 seconds)
00:06:50 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
00:07:23 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
00:08:08 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
00:11:01 × kassouni quits (~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8) (Quit: My Mac has gone to sleep. ZZZzzz…)
00:11:37 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
00:13:40 kenaryn joins (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
00:21:51 kassouni joins (~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8)
00:26:14 × tessier quits (~treed@98.171.210.130) (Ping timeout: 260 seconds)
00:27:48 tessier joins (~treed@98.97.142.157)
00:35:35 Guest57 joins (~Guest57@a109-51-125-39.cpe.netcabo.pt)
00:35:56 × Guest57 quits (~Guest57@a109-51-125-39.cpe.netcabo.pt) (Client Quit)
00:38:42 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
00:38:57 × kassouni quits (~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8) (Quit: My Mac has gone to sleep. ZZZzzz…)
00:45:02 falafel joins (~falafel@2607:fb91:143f:e47f:6cd4:3764:846a:ef34)
00:47:43 × acidjnk_new3 quits (~acidjnk@p200300d6e715c4384c61433e25d9b335.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
00:51:10 × kenaryn quits (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
00:57:49 × xff0x quits (~xff0x@2405:6580:b080:900:e7c5:c7:8d46:6e81) (Ping timeout: 252 seconds)
00:58:26 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
00:58:52 × enthropy quits (~enthropy@66.7.90.250) (Quit: Client closed)
00:59:43 × falafel quits (~falafel@2607:fb91:143f:e47f:6cd4:3764:846a:ef34) (Ping timeout: 248 seconds)
00:59:45 xff0x joins (~xff0x@178.255.149.135)
01:01:27 emmanuelux joins (~emmanuelu@user/emmanuelux)
01:01:58 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:02:37 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
01:03:40 califax joins (~califax@user/califx)
01:03:49 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
01:04:03 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds)
01:04:49 × _leo___ quits (~emmanuelu@user/emmanuelux) (Ping timeout: 252 seconds)
01:05:29 chexum joins (~quassel@gateway/tor-sasl/chexum)
01:08:15 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:09:13 × xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 252 seconds)
01:09:46 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
01:09:46 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
01:09:46 wroathe joins (~wroathe@user/wroathe)
01:10:29 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:10:57 xff0x joins (~xff0x@2405:6580:b080:900:e7c5:c7:8d46:6e81)
01:11:36 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
01:12:34 talismanick joins (~talismani@campus-119-100.ucdavis.edu)
01:16:35 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:19:27 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 252 seconds)
01:20:38 enthropy joins (~enthropy@66.7.90.250)
01:22:14 × tessier quits (~treed@98.97.142.157) (Ping timeout: 260 seconds)
01:23:09 × troydm quits (~troydm@user/troydm) (Ping timeout: 268 seconds)
01:23:55 tessier joins (~treed@98.171.210.130)
01:26:03 freeside joins (~mengwong@103.252.202.170)
01:30:27 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 252 seconds)
01:33:59 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
01:34:28 <segfaultfizzbuzz> "abstract away too little and you're doing something the computer ought to be doing for you" - this is a good quote
01:35:25 <smol-hors> Downloading the latest package list from hackage.haskell.org
01:35:32 <smol-hors> does this usually take a fairly long time?
01:35:47 <segfaultfizzbuzz> smol-hors: what kind of dialup are you using
01:35:57 <smol-hors> no
01:35:59 <segfaultfizzbuzz> do you have at least a 14400 baud modem?
01:36:16 <smol-hors> well it's been there for like 5 minutes
01:36:19 <segfaultfizzbuzz> what about at least a pentium?
01:36:50 <monochrom> Ugh please don't mock.
01:37:27 <smol-hors> should I just ^C and try again?
01:37:31 <monochrom> But it usually don't take 5 minutes.
01:37:49 <monochrom> I don't know. I would try that.
01:37:56 <segfaultfizzbuzz> i'm just joking around ;-)
01:39:45 <smol-hors> ok it worked, thanks monochrom
01:40:15 <enthropy> is there a better name than generalizing the instance head for the following: `instance C (Either a a)` -> `instance a ~ b => C (Either a b)`?
01:43:23 cheater_ joins (~Username@user/cheater)
01:44:43 <c_wraith> Name for it? dunno. "making it work right?" :P
01:45:55 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
01:45:59 cheater_ is now known as cheater
01:46:05 freeside joins (~mengwong@103.252.202.170)
01:48:07 kassouni joins (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
01:48:25 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
02:00:15 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Ping timeout: 260 seconds)
02:01:58 × hounded_woodstoc quits (~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Quit: Leaving)
02:01:58 × hounded quits (~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Quit: Leaving)
02:02:43 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
02:07:05 slack1256 joins (~slack1256@186.11.59.217)
02:08:25 ddellacosta joins (~ddellacos@146.70.166.170)
02:16:55 azimut joins (~azimut@gateway/tor-sasl/azimut)
02:20:34 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
02:21:00 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
02:24:20 × kassouni quits (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
02:24:50 thongpv joins (~thongpv87@2402:9d80:3b2:62da:2b21:8460:5472:b842)
02:26:55 Cadey joins (~cadey@tailscale/xe)
02:28:27 × Xe quits (~cadey@tailscale/xe) (Quit: WeeChat 3.5)
02:32:58 Cadey is now known as Xe
02:33:37 razetime joins (~Thunderbi@117.193.5.54)
02:34:28 × enthropy quits (~enthropy@66.7.90.250) (Quit: Client closed)
02:36:54 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
02:36:54 × cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 260 seconds)
02:37:07 cods joins (~fred@82-65-232-44.subs.proxad.net)
02:44:29 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
02:46:24 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
02:46:35 × talismanick quits (~talismani@campus-119-100.ucdavis.edu) (Ping timeout: 260 seconds)
02:55:54 gmg joins (~user@user/gehmehgeh)
02:58:41 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 255 seconds)
02:59:08 freeside joins (~mengwong@103.252.202.170)
02:59:48 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
03:04:31 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
03:09:13 × td_ quits (~td@i5387090B.versanet.de) (Ping timeout: 268 seconds)
03:10:38 td_ joins (~td@i53870930.versanet.de)
03:11:19 × jero98772 quits (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) (Remote host closed the connection)
03:13:35 × bilegeek quits (~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e) (Remote host closed the connection)
03:13:56 bilegeek joins (~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e)
03:15:33 bilegeek_ joins (~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e)
03:16:10 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
03:18:40 × bilegeek quits (~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e) (Ping timeout: 260 seconds)
03:20:23 × slack1256 quits (~slack1256@186.11.59.217) (Remote host closed the connection)
03:21:38 freeside joins (~mengwong@103.252.202.170)
03:26:15 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 260 seconds)
03:31:51 falafel joins (~falafel@2607:fb91:143f:e47f:6cd4:3764:846a:ef34)
03:32:44 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
03:34:24 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
03:36:06 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
03:37:21 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:37:21 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:37:21 finn_elija is now known as FinnElija
03:42:04 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat)
03:42:04 × tomku quits (~tomku@user/tomku) (Read error: Connection reset by peer)
03:42:18 tomku joins (~tomku@user/tomku)
03:43:24 terrorjack joins (~terrorjac@2a01:4f8:1c1e:4e8c::)
03:45:58 × falafel quits (~falafel@2607:fb91:143f:e47f:6cd4:3764:846a:ef34) (Ping timeout: 252 seconds)
03:48:46 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
03:50:11 × rekahsoft quits (~rekahsoft@bras-base-orllon1122w-grc-05-174-88-194-86.dsl.bell.ca) (Ping timeout: 256 seconds)
03:56:35 Guest75 joins (~Guest75@178.141.147.162)
03:57:31 × razetime quits (~Thunderbi@117.193.5.54) (Ping timeout: 252 seconds)
04:08:07 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
04:08:51 × tessier quits (~treed@98.171.210.130) (Ping timeout: 252 seconds)
04:09:32 irrgit_ joins (~irrgit@146.70.27.218)
04:10:32 tessier joins (~treed@98.97.142.157)
04:10:44 irrgit__ joins (~irrgit@89.47.234.26)
04:13:37 × irrgit quits (~irrgit@86.106.90.226) (Ping timeout: 252 seconds)
04:14:43 × irrgit_ quits (~irrgit@146.70.27.218) (Ping timeout: 252 seconds)
04:24:38 × thongpv quits (~thongpv87@2402:9d80:3b2:62da:2b21:8460:5472:b842) (Remote host closed the connection)
04:24:44 razetime joins (~Thunderbi@117.193.5.54)
04:26:08 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
04:33:08 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
04:35:13 freeside joins (~mengwong@103.252.202.170)
04:39:27 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
04:44:55 freeside joins (~mengwong@103.252.202.170)
04:46:47 falafel joins (~falafel@172.58.187.198)
04:51:25 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 252 seconds)
04:53:44 thongpv joins (~thongpv87@123.31.161.115)
04:56:05 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
04:58:43 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
05:07:09 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
05:11:43 × gawen_ quits (~gawen@user/gawen) (Quit: cya)
05:13:04 gawen joins (~gawen@user/gawen)
05:13:10 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 268 seconds)
05:14:42 mechap_ joins (~mechap@user/mechap)
05:15:24 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
05:15:24 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
05:15:24 wroathe joins (~wroathe@user/wroathe)
05:16:09 × tessier quits (~treed@98.97.142.157) (Ping timeout: 260 seconds)
05:17:39 laalyn joins (~laalyn@c-73-241-126-7.hsd1.ca.comcast.net)
05:17:54 × mechap quits (~mechap@user/mechap) (Ping timeout: 260 seconds)
05:22:47 tessier joins (~treed@98.171.210.130)
05:23:02 × falafel quits (~falafel@172.58.187.198) (Ping timeout: 268 seconds)
05:23:02 × dolio quits (~dolio@130.44.134.54) (Ping timeout: 268 seconds)
05:23:21 dolio joins (~dolio@130.44.134.54)
05:29:58 × opticblast quits (~Thunderbi@172.58.82.233) (Read error: Connection reset by peer)
05:30:11 opticblast joins (~Thunderbi@172.58.86.236)
05:38:54 × thongpv quits (~thongpv87@123.31.161.115) (Ping timeout: 260 seconds)
06:06:56 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
06:08:07 theproffesor joins (~theproffe@2601:282:8800:3f30::d2a1)
06:08:07 × theproffesor quits (~theproffe@2601:282:8800:3f30::d2a1) (Changing host)
06:08:07 theproffesor joins (~theproffe@user/theproffesor)
06:08:36 czy joins (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net)
06:11:15 varoo joins (~varoo@117.203.246.41)
06:15:18 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:15:41 czy parts (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) (ERC 5.4 (IRC client for GNU Emacs 28.2))
06:28:14 jakalx joins (~jakalx@base.jakalx.net)
06:28:55 × tessier quits (~treed@98.171.210.130) (Ping timeout: 252 seconds)
06:29:35 tessier joins (~treed@98.171.210.130)
06:31:18 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
06:44:20 × bilegeek_ quits (~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e) (Quit: Leaving)
06:46:12 × Feuermagier_ quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
06:50:26 Feuermagier joins (~Feuermagi@user/feuermagier)
06:51:11 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
06:57:13 talismanick joins (~talismani@2601:200:c181:4c40::1be2)
07:03:45 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
07:05:14 freeside joins (~mengwong@103.252.202.170)
07:08:15 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
07:17:52 × roconnor quits (~quassel@coq/roconnor) (Ping timeout: 248 seconds)
07:19:25 gurkenglas joins (~gurkengla@dynamic-046-114-179-193.46.114.pool.telefonica.de)
07:21:36 thongpv joins (~thongpv87@2402:9d80:3bd:3161:3524:4b7d:4e21:676)
07:32:47 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
07:41:38 freeside joins (~mengwong@103.252.202.170)
07:42:48 kassouni joins (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
07:42:58 Feuermagier_ joins (~Feuermagi@user/feuermagier)
07:43:00 × Feuermagier_ quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
07:44:52 × opticblast quits (~Thunderbi@172.58.86.236) (Ping timeout: 268 seconds)
07:45:15 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 260 seconds)
07:47:19 × phma quits (~phma@2001:5b0:210d:59b8:b6b0:7ecf:e3da:b5e5) (Read error: Connection reset by peer)
07:48:03 phma joins (~phma@host-67-44-208-10.hnremote.net)
07:57:12 × gurkenglas quits (~gurkengla@dynamic-046-114-179-193.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
08:01:06 × razetime quits (~Thunderbi@117.193.5.54) (Read error: Connection reset by peer)
08:01:31 razetime joins (~Thunderbi@117.193.5.54)
08:05:35 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
08:05:51 × razetime quits (~Thunderbi@117.193.5.54) (Ping timeout: 248 seconds)
08:08:29 × eruditass quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
08:10:57 Lycurgus joins (~juan@user/Lycurgus)
08:13:08 × Guest75 quits (~Guest75@178.141.147.162) (Ping timeout: 260 seconds)
08:13:22 Tuplanolla joins (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
08:13:50 × thongpv quits (~thongpv87@2402:9d80:3bd:3161:3524:4b7d:4e21:676) (Ping timeout: 260 seconds)
08:14:30 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
08:15:24 Feuermagier joins (~Feuermagi@user/feuermagier)
08:20:17 thongpv joins (~thongpv87@123.31.161.115)
08:20:40 razetime joins (~Thunderbi@117.193.5.54)
08:28:30 <Inst> curious about Haskell syntax
08:28:57 <Inst> would Haskell have better syntax if, say, you could have a name be an operator by default by including a non-reserved symbol in it?
08:29:32 <Inst> actually, if it starts with a symbol, it's an operator, if it starts with a character or underscore, it's a name binding or function
08:29:38 <Inst> =is
08:30:21 <mauke> that's already how it works
08:39:52 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
08:40:04 <freeside> Inst: are you saying you want to be able to define something like (<p>) in the same way you can define (<+>)
08:40:47 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
08:41:59 <Inst> ya
08:42:19 <Inst> "parse error on put )
08:42:32 <Inst> input, it's not how it already works
08:42:45 <Inst> I want to be able to use =is and get default operator without backticks
08:42:47 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
08:42:50 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
08:43:37 kuribas joins (~user@ptr-17d51eoxqxns4cyal2u.18120a2.ip6.access.telenet.be)
08:43:58 Feuermagier_ joins (~Feuermagi@user/feuermagier)
08:44:03 × Feuermagier quits (~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
08:48:01 <mauke> ah, you want to change the tokenizer to produce new kinds of symbols, not change how existing symbols are interpreted
08:49:41 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
08:55:37 Feuermagier joins (~Feuermagi@user/feuermagier)
08:58:53 × Feuermagier_ quits (~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds)
09:13:47 × kassouni quits (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
09:16:52 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
09:17:13 × Athas quits (~athas@sigkill.dk) (Quit: ZNC 1.8.2 - https://znc.in)
09:18:05 Athas joins (~athas@2a01:7c8:aaac:1cf:70d2:94d:d702:e8d6)
09:27:33 viktorvalen joins (~viktorval@pool-98-116-90-86.nycmny.fios.verizon.net)
09:32:01 acidjnk_new3 joins (~acidjnk@p200300d6e715c439d991e45717e1c302.dip0.t-ipconnect.de)
09:37:41 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
09:38:48 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
09:46:12 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad) (Remote host closed the connection)
09:46:59 <freeside> I have been browsing the IntertubeOverflow24DaysWikiBook but the closest thing I've found is PostfixOperators.
09:51:42 mc47 joins (~mc47@xmonad/TheMC47)
09:51:47 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
09:53:17 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
09:53:29 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
09:56:04 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
10:06:08 × varoo quits (~varoo@117.203.246.41) (Remote host closed the connection)
10:06:24 varoo joins (~varoo@117.203.246.41)
10:07:04 × acidjnk_new3 quits (~acidjnk@p200300d6e715c439d991e45717e1c302.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
10:08:56 × varoo quits (~varoo@117.203.246.41) (Client Quit)
10:09:08 varoo joins (~varoo@117.203.246.41)
10:09:29 Feuermagier joins (~Feuermagi@user/feuermagier)
10:12:23 × Feuermagier quits (~Feuermagi@user/feuermagier) (Client Quit)
10:14:00 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
10:14:40 acidjnk joins (~acidjnk@p200300d6e715c439801b1c59a37bf11b.dip0.t-ipconnect.de)
10:14:47 × cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds)
10:14:59 cods joins (~fred@82-65-232-44.subs.proxad.net)
10:20:51 irrgit_ joins (~irrgit@86.106.90.226)
10:22:20 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
10:23:28 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
10:23:57 × irrgit__ quits (~irrgit@89.47.234.26) (Ping timeout: 252 seconds)
10:24:57 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
10:31:16 thongpv87 joins (~thongpv87@123.31.161.115)
10:33:07 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds)
10:33:36 × thongpv quits (~thongpv87@123.31.161.115) (Ping timeout: 248 seconds)
10:38:57 mechap_ is now known as mechap
10:45:58 danza joins (~francesco@151.37.157.83)
10:46:40 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad)
10:46:49 <razetime> i'm trying to use cabal repl in a package and it rebuilds the whole project even after i do cabal build. what do i do?
10:47:39 mastarija joins (~mastarija@2a05:4f46:e03:6000:d6e5:35ff:2a87:b1b7)
10:52:21 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad) (Ping timeout: 256 seconds)
10:54:28 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:57:00 × varoo quits (~varoo@117.203.246.41) (Remote host closed the connection)
10:57:18 varoo joins (~varoo@117.203.246.41)
10:59:51 caef^ joins (~caef@c-24-30-76-89.hsd1.ga.comcast.net)
11:03:58 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
11:16:08 <freeside> based on my experiences with 'stack build' followed by 'stack ghci', i believe this is expected behaviour.
11:16:38 <freeside> what do i do? i make tea. you may prefer coffee.
11:20:18 <razetime> sigh, I guess I will go out for a walk.
11:21:16 × mastarija quits (~mastarija@2a05:4f46:e03:6000:d6e5:35ff:2a87:b1b7) (Quit: WeeChat 3.7.1)
11:22:07 × razetime quits (~Thunderbi@117.193.5.54) (Quit: See You Space Cowboy)
11:23:06 tabaqui joins (~root@88.231.63.172)
11:24:01 <freeside> this may be helpfuL: in my .ghcid, I have --test=":main --rerun-all-on-success" --warn
11:24:39 <freeside> and in my .ghci I have :set -isrc and :l test/Spec.hs
11:25:11 <freeside> in combination, when i run ghcid, it runs a watch on my src dir, automatically reloads upon change, and runs tests
11:30:44 × haskl quits (~haskl@user/haskl) (Read error: Connection reset by peer)
11:33:15 haskl joins (~haskl@user/haskl)
11:37:33 gurkenglas joins (~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
11:45:34 × hpc quits (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 252 seconds)
11:47:11 hpc joins (~juzz@ip98-169-35-163.dc.dc.cox.net)
11:50:06 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
11:56:28 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
12:04:54 × danza quits (~francesco@151.37.157.83) (Read error: Connection reset by peer)
12:07:02 santiagopim joins (~user@90.167.66.131)
12:12:34 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
12:16:54 × Angelz quits (Angelz@Angelz.oddprotocol.org) (Quit: IRCNow and Forever!)
12:18:51 × talismanick quits (~talismani@2601:200:c181:4c40::1be2) (Ping timeout: 255 seconds)
12:19:21 danza joins (~francesco@151.57.102.160)
12:21:19 × biberu quits (~biberu@user/biberu) (Ping timeout: 252 seconds)
12:24:06 biberu joins (~biberu@user/biberu)
12:34:35 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
12:35:04 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
12:37:06 Midjak joins (~Midjak@82.66.147.146)
12:42:25 Guest75 joins (~Guest75@178.141.147.162)
12:53:31 <jean-paul[m]> is there something like Data.Binary.Put that admits the possibility of failure?
12:56:06 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:59:03 × biberu quits (~biberu@user/biberu) (Quit: ZNC - https://znc.in)
13:00:04 biberu joins (~biberu@user/biberu)
13:02:13 <danza> it might be possible to add a Put instance for MonadFail
13:02:25 × biberu quits (~biberu@user/biberu) (Client Quit)
13:02:46 <freeside> the changelog https://github.com/kolmodin/binary/blob/master/changelog.md#binary-0870 is intriguing
13:03:24 biberu joins (~biberu@user/biberu)
13:04:27 kassouni joins (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
13:06:42 × kassouni quits (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Client Quit)
13:10:45 kassouni joins (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
13:11:36 <danza> i am trying to write some classes and the complexity of errors escalated quickly. This is code that provides Read and Show instances to types that have a simple string representation: https://paste.tomsmeding.com/8snVgg1C. When trying to compile, i get this error: https://paste.tomsmeding.com/beffCrGJ. I do not see how overlapping instances could come out of an usage of toEnum here, and i am unfamiliar with tags so the reported syntax looks
13:11:36 <danza> inscrutable. As an aside question, i have been a bit surprised by having to add FlexibleInstances and UndecidableInstances for such simple relationships among classes: are those needed or am i doing something wrong?
13:11:40 <jean-paul[m]> Get has a MonadFail instance so maybe that's what the changelog is referring to
13:16:12 L29Ah joins (~L29Ah@wikipedia/L29Ah)
13:19:07 razetime joins (~Thunderbi@117.193.5.54)
13:21:50 <danza> solved. The code revealed that Simple was isomorphic to Show, so i realised that i just need Show. Semantics are clearer now: we get an `instance (Show e, Enum e) => Read e` in this new version paste.tomsmeding.com/tftQmt8O, to easily define custom show-read isomorphisms. Simpler and neat, although we still seem to need the pragmas
13:22:41 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
13:23:13 × kassouni quits (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
13:27:14 elevenkb joins (~elevenkb@105.224.35.82)
13:32:33 × Athas quits (~athas@2a01:7c8:aaac:1cf:70d2:94d:d702:e8d6) (Quit: ZNC 1.8.2 - https://znc.in)
13:32:43 Athas joins (~athas@sigkill.dk)
13:32:59 <[Leary]> danza: `instance ... => C e` is universal; there's no structure in the instance head, so it overlaps with any other conceivable instance for `C`. Haskell98/2010 don't support such instances, hence the pragmata. Rather than a `Read` instance, you probably want to write an ordinary function `parseEnum :: (Enum a, Bounded a, Show a) => String -> Maybe a`.
13:37:37 <danza> thanks for the explanation Leary. The idea of writing an ordinary function is appealing, but having a read instance i can easily use these types side by side with any other type derived from (Show, Read)
13:39:52 <elevenkb> Is there any way to save marks, etc. in a PDF view document?
13:42:01 <elevenkb> i meant `pdf-tools` sorry.
13:42:07 <elevenkb> just saw that there might be something helpful
13:42:32 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
13:46:30 <[exa]> elevenkb: "marks"? I'm normally adding annotations/comments/highlighting with evince, does that count?
13:46:43 <[Leary]> danza: I doubt that. Merely having that instance in scope effectively breaks the `Read` class, as you'll get overlap errors trying to use any other instance.
13:46:58 <elevenkb> [exa] sorry about this, completely the wrong channel.
13:47:03 <elevenkb> meant to post in #emacs.
13:47:44 kassouni joins (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
13:48:51 <danza> you guessed right Leary, i am getting those errors. So does `instance (Show e, Enum e) => Read e` not produce Read instances only for types with a `Show, Enum` constraint? Maybe i am using the wrong syntax for what i mean. Happy to read on some doc to learn better
13:49:17 <[exa]> elevenkb: ah :D ok, marks explained
13:49:29 × razetime quits (~Thunderbi@117.193.5.54) (Quit: See You Space Cowboy)
13:52:45 <tomsmeding> danza: no, that creates an instance for _all_ types e; that instance, when used, then introduces Show e and Enum e constraints in scope
13:52:47 <[Leary]> danza: That means "for any type `e`, we have `Read` (but you must supply `Show` and `Enum` to use it)".
13:52:53 <tomsmeding> instance resolution is not depth-first search, it's greedy
13:54:43 <danza> i see, that is not what i was trying to achieve. Might have more luck with an ordinary function. Cheers!
13:56:34 freeside joins (~mengwong@103.252.202.170)
13:56:59 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
13:58:23 <tomsmeding> danza: you can see why what you were expecting would be hard to specify completely in general; for example, what if someone else writes `instance (Show e, Ord e) => Read e`? Which instance should be picked for some type which implements Show, Enum and Ord?
13:58:58 <tomsmeding> You could disallow such an additional instance, but then it becomes a non-trivial problem just to decide which instance declarations are valid
13:59:22 <tomsmeding> (and instance resolution would be really slow because you have a proper logic programming language at that point)
14:00:57 <danza> in that case there would be overlapping ones, i guess, while in many other cases there could not be. But sure, this might make compiling hard, i cannot tell
14:02:19 <tomsmeding> harder, not impossible. I guess it's not a strong argument for the current system. But in any case the current system is as it is :p
14:02:41 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
14:03:06 × oldfashionedcow quits (~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.8)
14:05:57 <danza> :)
14:09:35 <geekosaur> it's just an incoherent instance, you can get that in other ways now
14:10:55 <geekosaur> the real problem is you need a runtime witness to "this type has these instances", the compiler can't prove it in all cases at compile time
14:12:22 <geekosaur> in ghc's case that is a typeclass dictionary, but it'd come up in other ways with other implementations
14:15:34 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
14:17:17 kjak joins (~kjak@pool-72-66-75-40.washdc.fios.verizon.net)
14:20:41 × elevenkb quits (~elevenkb@105.224.35.82) (Quit: Ping timeout (120 seconds))
14:28:07 Feuermagier joins (~Feuermagi@user/feuermagier)
14:40:37 × ddellacosta quits (~ddellacos@146.70.166.170) (Ping timeout: 252 seconds)
14:53:57 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
14:58:35 Midjak joins (~Midjak@82.66.147.146)
14:59:07 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 260 seconds)
14:59:35 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
15:06:15 × danza quits (~francesco@151.57.102.160) (Ping timeout: 260 seconds)
15:16:25 × kimiamania quits (~65804703@user/kimiamania) (Quit: PegeLinux)
15:16:47 freeside joins (~mengwong@103.252.202.170)
15:17:39 kimiamania joins (~924ba01c@user/kimiamania)
15:17:44 × inversed quits (~inversed@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
15:18:41 inversed joins (~inversed@bcdcac82.skybroadband.com)
15:21:49 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
15:22:08 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
15:22:24 × kassouni quits (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
15:22:33 freeside joins (~mengwong@103.252.202.170)
15:22:50 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
15:24:13 ubert joins (~Thunderbi@p200300ecdf13018dd908b28f61036a98.dip0.t-ipconnect.de)
15:24:17 × opqdonut quits (opqdonut@pseudo.fixme.fi) (Ping timeout: 268 seconds)
15:24:54 × edwtjo quits (~edwtjo@fsf/member/edwtjo) (Ping timeout: 268 seconds)
15:25:12 edwtjo joins (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se)
15:25:12 × edwtjo quits (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) (Changing host)
15:25:12 edwtjo joins (~edwtjo@fsf/member/edwtjo)
15:26:37 opqdonut joins (opqdonut@pseudo.fixme.fi)
15:26:37 ubert1 joins (~Thunderbi@p200300ecdf13018d0f8ce183c4b5c4af.dip0.t-ipconnect.de)
15:27:27 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
15:29:11 titibandit1 joins (~titibandi@xdsl-85-197-0-96.nc.de)
15:32:36 Guest72 joins (~Guest72@2607:fea8:e0a2:2600:b113:ae71:51cc:4765)
15:32:39 ub joins (~Thunderbi@p548c8ef0.dip0.t-ipconnect.de)
15:32:47 × ubert quits (~Thunderbi@p200300ecdf13018dd908b28f61036a98.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
15:32:48 ub is now known as ubert
15:32:48 ubert is now known as 068AAD9K6
15:32:48 ubert1 is now known as 048AAGB9P
15:37:38 × Guest72 quits (~Guest72@2607:fea8:e0a2:2600:b113:ae71:51cc:4765) (Ping timeout: 260 seconds)
15:41:44 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
15:41:47 freeside joins (~mengwong@103.252.202.170)
15:47:13 <segfaultfizzbuzz> does anyone know "how" achronix fpgas are programmed? as in, what language(s) are used? do common programming language abstractions break when the timing possibilities become more complicated?
15:48:08 emmanuelux joins (~emmanuelu@user/emmanuelux)
15:49:18 enthropy joins (~enthropy@66.7.90.250)
15:49:43 <[exa]> segfaultfizzbuzz: do you know verilog?
15:52:14 roconnor joins (~quassel@coq/roconnor)
15:52:24 roconnor parts (~quassel@coq/roconnor) ()
15:53:14 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
15:56:13 <juri_> segfaultfizzbuzz: if you're interested, clash is an interesting FPGA programming system, written in haskell.
15:56:17 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
15:56:46 <segfaultfizzbuzz> i have seen clash
15:57:01 infinity0 joins (~infinity0@pwned.gg)
15:57:13 <segfaultfizzbuzz> i don't know verilog, i am interested in the more fundamental question around whether clocks and synchrony are tied to programming languages
15:59:32 <[exa]> yeah my point was that I don't know any other programming language that would be close to hardware timing of stuff. Except maybe if you're programming in some ISAs where you need to make sure to fit into specific time constraints so that e.g. a hardware component works
16:00:03 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
16:00:04 × oak- quits (~oak-@2001:470:69fc:105::fcd) (Quit: You have been kicked for being idle)
16:00:33 <[exa]> especially on embedded architectures the instruction count is a valid high-precise timing mechanism.
16:00:55 <segfaultfizzbuzz> on the one hand there is timing precision and on the other there is the asynchronicity (ultra-large timing possibility space, i guess?)
16:01:52 <segfaultfizzbuzz> i sense that the design of haskell should be *less* dependent on synchronicity as compared to uh, C or something, but i don't know how to continue that thought
16:02:46 <geekosaur> hard realtime languages exist; I programmed in one (a dialect of BASIC, of all things) for a while
16:03:26 <geekosaur> more common is EDSLs that generate code in such languages: Clash is such an EDSL that generates Verilog
16:03:51 <geekosaur> oh, I see someone already mentioned it
16:04:05 Angelz joins (Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973)
16:04:18 <geekosaur> but yes, Haskell would make a poor HRT language
16:04:24 <segfaultfizzbuzz> HRT?
16:04:29 <segfaultfizzbuzz> realtime hardware?
16:04:33 <geekosaur> hard realtime
16:05:00 <segfaultfizzbuzz> and i can't quite tell the difference between a thread and like independent temporally parallel paths on a chip
16:05:12 <geekosaur> guaranteed response within some small number of microseconds
16:05:27 <geekosaur> neither can Intel (see hyperthreading) 🙂
16:08:41 × inversed quits (~inversed@bcdcac82.skybroadband.com) (Quit: Connection error?!)
16:09:08 <[exa]> geekosaur: we might generalize that none of the platforms directly supported by haskell currently make a good RT platform. :D
16:11:22 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
16:12:59 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
16:15:19 freeside joins (~mengwong@103.252.202.170)
16:15:59 × gurkenglas quits (~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
16:17:52 inversed joins (~inversed@bcdcac82.skybroadband.com)
16:18:30 thongpv joins (~thongpv87@2402:9d80:3bd:3161:8bb6:af59:3726:3ab4)
16:18:56 razetime joins (~Thunderbi@117.193.5.54)
16:19:02 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
16:20:34 × thongpv87 quits (~thongpv87@123.31.161.115) (Ping timeout: 260 seconds)
16:21:30 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
16:23:46 Midjak joins (~Midjak@82.66.147.146)
16:27:23 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
16:32:01 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
16:34:24 Midjak joins (~Midjak@82.66.147.146)
16:35:11 <segfaultfizzbuzz> i was asking about achronix fpgas in particular by the way because they are asynchronous, so whatever they do with timing presumably needs to be as loose (not realtime?) as possible (??)
16:35:37 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
16:41:26 <tomsmeding> segfaultfizzbuzz: https://www.achronix.com/sites/default/files/docs/ACE_User_Guide_UG070_7.pdf
16:41:49 <tomsmeding> > This guide is a reference manual for the Achronix CAD Environment (ACE), used for placing, routing, configuring, and debugging Achronix FPGAs.
16:42:25 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
16:42:29 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze)
16:42:54 <tomsmeding> product of a few mins of searching, I know zero about fpgas
16:42:54 <enthropy> evaluation order is less important in haskell because of laziness. At the beginning they were selling it as being good for a future computer architecture that would or could evaluate things in parallel. Mentally I don't commit to an evaluation order, since I want to get the right answer and then solve the stack overflow. I don't think this
16:42:55 <enthropy> difference influences their suitability for circuits in the same way that "a shallow embedding" can make haskell better for writing interpreters
16:43:26 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
16:43:46 Midjak joins (~Midjak@82.66.147.146)
16:45:50 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
16:45:50 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
16:47:26 Midjak joins (~Midjak@82.66.147.146)
16:47:47 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 246 seconds)
16:52:06 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad)
16:53:21 econo joins (uid147250@user/econo)
16:55:00 mastarija joins (~mastarija@2a05:4f46:e03:6000:7b59:e06e:5bb0:7fe8)
16:56:15 <mastarija> So, I get this message when I try to add the `amdgpu-pro` kernel module:
16:56:19 <mastarija> modprobe: FATAL: Module amdgpu-pro not found in directory /nix/store/14hqyjn2hrwbk0xxqlvnd2df8341n8nr-linux-6.1.9-modules/lib/modules/6.1.9
16:56:33 <mastarija> Two relevant lines:
16:56:36 <mastarija> boot.extraModulePackages = with pkgs.linuxPackages_latest; [ amdgpu-pro ];
16:56:43 <mastarija> boot.initrd.kernelModules = [ "amdgpu-pro" ];
16:56:43 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad) (Ping timeout: 248 seconds)
16:57:33 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
16:57:45 <mastarija> I've checked in repl, and `pkgs.linuxPackages_latest.amdgpu-pro` exists, so I'm not sure what's going on here.
16:58:39 <mastarija> Oops. Wrong channel.
17:02:31 × mvk quits (~mvk@2607:fea8:5caa:ac00::f944) (Ping timeout: 252 seconds)
17:05:25 Feuermagier_ joins (~Feuermagi@user/feuermagier)
17:05:30 × Feuermagier_ quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
17:08:01 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds)
17:10:20 ddellacosta joins (~ddellacos@146.70.166.170)
17:13:43 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
17:15:49 <segfaultfizzbuzz> " i want to get the right answer and then solve the stack overflow" - lol this is a great quote
17:16:15 <segfaultfizzbuzz> enthropy: yes the evaluation order consideration was why i was bringing up asynchronicity
17:18:21 Midjak joins (~Midjak@82.66.147.146)
17:18:38 <segfaultfizzbuzz> tomsmeding: "The Achronix implementation flow uses an industry standard RTL synthesis flow " - so i guess they are writing things i "raw" RTL...?
17:20:36 nunggu joins (~q@user/nunggu)
17:26:46 <segfaultfizzbuzz> it seems like the best thing to do would be to allow everything to be as lazy and asynchronous as possible and then to explicitly annotate "points of synchronization", and then minimize those points of synchronization as much as possible
17:29:30 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
17:29:45 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
17:31:26 Midjak joins (~Midjak@82.66.147.146)
17:31:32 × thongpv quits (~thongpv87@2402:9d80:3bd:3161:8bb6:af59:3726:3ab4) (Ping timeout: 246 seconds)
17:37:41 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
17:38:45 ozkutuk53 joins (~ozkutuk@176.240.174.60)
17:40:15 Midjak joins (~Midjak@82.66.147.146)
17:40:16 × razetime quits (~Thunderbi@117.193.5.54) (Remote host closed the connection)
17:42:35 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze)
17:43:57 × Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer)
17:45:50 Midjak joins (~Midjak@82.66.147.146)
17:47:00 danza joins (~francesco@151.43.83.147)
17:53:15 × Vajb quits (~Vajb@2001:999:404:9516:d621:6cbe:c71e:5686) (Remote host closed the connection)
17:53:25 Vajb joins (~Vajb@2001:999:404:9516:d621:6cbe:c71e:5686)
17:57:55 × dolio quits (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
18:01:16 dolio joins (~dolio@130.44.134.54)
18:01:19 × Midjak quits (~Midjak@82.66.147.146) (Ping timeout: 265 seconds)
18:04:05 × dolio quits (~dolio@130.44.134.54) (Client Quit)
18:07:04 nunggu_ joins (~q@user/nunggu)
18:07:07 × nunggu quits (~q@user/nunggu) (Remote host closed the connection)
18:09:30 dolio joins (~dolio@130.44.134.54)
18:14:49 × titibandit1 quits (~titibandi@xdsl-85-197-0-96.nc.de) (Remote host closed the connection)
18:17:14 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
18:19:09 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
18:21:19 Midjak joins (~Midjak@82.66.147.146)
18:22:45 × mastarija quits (~mastarija@2a05:4f46:e03:6000:7b59:e06e:5bb0:7fe8) (Quit: WeeChat 3.7.1)
18:23:49 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
18:27:57 safinaskar joins (~quassel@212.73.77.98)
18:28:05 <safinaskar> look here! https://godbolt.org/z/fToj3M1eY
18:28:17 <safinaskar> i implemented red black trees using GADTs!!
18:28:33 cheater_ joins (~Username@user/cheater)
18:28:39 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
18:28:47 <safinaskar> i embedded into red black tree invariant "heights of both subtrees should match" using GADTs!
18:29:09 <safinaskar> i implemented "insert" and this invariant is checked during compile time!
18:29:22 <safinaskar> feel free to steal the code and blog somewhere
18:29:51 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 252 seconds)
18:29:59 mechap_ joins (~mechap@user/mechap)
18:30:43 <segfaultfizzbuzz> safinaskar: we have submitted a nobel prize nomination for you
18:31:40 <juri_> insufficient comments. cool looking code, tho. ;)
18:31:45 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
18:31:51 cheater_ is now known as cheater
18:31:57 × mechap_ quits (~mechap@user/mechap) (Client Quit)
18:32:34 <safinaskar> segfaultfizzbuzz: :)
18:33:04 × mechap quits (~mechap@user/mechap) (Ping timeout: 248 seconds)
18:33:12 <safinaskar> juri_: just open wikipedia article with colorful images. everything will be clear
18:33:15 mechap joins (~mechap@user/mechap)
18:33:48 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
18:33:52 <segfaultfizzbuzz> safinaskar: what about actually running it, some demo code which fills the tree and runs some queries
18:34:03 <segfaultfizzbuzz> and what are the advantages and disadvantages of doing it this way?
18:34:23 × enthropy quits (~enthropy@66.7.90.250) (Ping timeout: 260 seconds)
18:34:55 <safinaskar> segfaultfizzbuzz: red black tree has invariant: children of a given node should have same "black height". i implemented the tree using GADTs and thus this invariant is checked in compile time!!
18:35:20 <safinaskar> segfaultfizzbuzz: "Node h" is type of valid subtrees with black height "h", where "h" is encoded as Peano number
18:36:07 <safinaskar> segfaultfizzbuzz: so more properties are checked in compile time as opposed to non-GADT version. and i see no disadvantages
18:37:14 <safinaskar> also, if you want to, say, read red black tree from stdin, you will also need existential types
18:38:24 × acidjnk quits (~acidjnk@p200300d6e715c439801b1c59a37bf11b.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
18:38:27 <safinaskar> segfaultfizzbuzz: "what about actually running it" - i don't want, i'm too lazy. :) but GADTs are so good, so i'm 100% sure the code is correct :)
18:38:41 <segfaultfizzbuzz> safinaskar: i suppose it's interesting that you don't need dependent type theory to do this (?)
18:39:03 <segfaultfizzbuzz> safinaskar: so what you are saying basically is that you have created the code and not actually tried it? lol ;-)
18:39:12 <segfaultfizzbuzz> err that was supposed to be a knuth quote
18:39:59 <safinaskar> segfaultfizzbuzz: my code needs dependent types. dependent types means that types can depend on values. in my code type "Node" depends on values of type "PA", so, yes, this is dependent types
18:40:22 <segfaultfizzbuzz> does compile time code need to be total? why is code which executes at compile time any different at all from code which executes at runtime? why not just wrap compile-time code in an annotation which says that it is compile-time code
18:40:40 <segfaultfizzbuzz> safinaskar: oh, i thought haskell didn't have those
18:40:54 <geekosaur> you can simulate them in various ways
18:41:03 <geekosaur> see the `singletons` package, in particular
18:41:54 <geekosaur> and in this case it's not so much that the code is compile time, but that it's encoded as types which get typechecked at compile time
18:42:12 <geekosaur> so if the program typechecks, the "code" should be correct
18:42:45 <segfaultfizzbuzz> understood, i meant more fundamentally, why not just say at_compile_time { ...my_code... }
18:42:57 <geekosaur> (assuming of course that your types correctly describe the problem you're trying to solve)
18:43:02 <geekosaur> that's template haskell
18:43:12 <segfaultfizzbuzz> i see
18:43:20 <geekosaur> it solves a different problem
18:43:25 freeside joins (~mengwong@103.252.202.170)
18:43:59 opticblast joins (~Thunderbi@172.58.80.152)
18:44:08 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
18:47:16 <geekosaur> anyway, here the point is to make the typechecker prove as much as it can, which means the associated failures can't happen at runtime
18:47:17 × nunggu_ quits (~q@user/nunggu) (Ping timeout: 255 seconds)
18:48:06 <geekosaur> that's what strict typing is about in general, but sometimes you need types that depend on values to prove invariants based on those values at type level
18:50:23 <segfaultfizzbuzz> yeah hmm
18:50:49 nunggu_ joins (~q@user/nunggu)
18:53:12 <safinaskar> some time ago i asked in #haskell are GADTs useful for type checking and provers only. now i see that they are also useful for red black trees! :))
18:53:51 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
19:00:11 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
19:01:39 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
19:02:13 Jadeitits[m] is now known as jadey[m]
19:02:44 × ddellacosta quits (~ddellacos@146.70.166.170) (Ping timeout: 260 seconds)
19:06:14 × Heffalump quits (~ganesh@urchin.earth.li) (Remote host closed the connection)
19:10:11 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:4054:34b8:499a:7d46) (Remote host closed the connection)
19:10:30 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
19:20:45 × varoo quits (~varoo@117.203.246.41) (Ping timeout: 252 seconds)
19:21:42 varoo joins (~varoo@117.203.246.41)
19:23:19 varoo_ joins (~varoo@117.203.246.41)
19:24:04 gurkenglas joins (~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
19:26:23 × varoo quits (~varoo@117.203.246.41) (Ping timeout: 248 seconds)
19:26:35 acidjnk joins (~acidjnk@p200300d6e715c402e54e919fb479e010.dip0.t-ipconnect.de)
19:30:51 random-jellyfish joins (~random-je@user/random-jellyfish)
19:34:21 × Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
19:34:47 Batzy joins (~quassel@user/batzy)
19:36:55 × Batzy quits (~quassel@user/batzy) (Client Quit)
19:38:11 Batzy joins (~quassel@user/batzy)
19:42:23 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
19:45:41 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 252 seconds)
19:48:48 × gurkenglas quits (~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de) (Ping timeout: 248 seconds)
19:55:56 jakalx parts (~jakalx@base.jakalx.net) ()
19:57:32 Hammdist joins (~Hammdist@67.169.114.135)
19:59:14 <Hammdist> main = do x <- 7 putStrLn (show x)      doesn't work. how do I get a Num saved into a variable to pass to show?
19:59:17 freeside joins (~mengwong@103.252.202.170)
20:00:39 <geekosaur> you only need `let` there, not `<-`
20:01:08 <geekosaur> % do {let {x = 7}; putStrLn (show x) }
20:01:09 <yahb2> 7
20:01:29 <geekosaur> (extra braces because it's all on one line; `let` uses layout too)
20:02:37 <geekosaur> you could also say `x <- return 7` but it's pretty pointless
20:03:30 <Hammdist> ah I got the `return` one to work. thanks
20:03:59 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 260 seconds)
20:04:14 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
20:04:24 × danza quits (~francesco@151.43.83.147) (Read error: Connection reset by peer)
20:04:43 freeside joins (~mengwong@103.252.202.170)
20:07:50 enthropy joins (~enthropy@66.7.90.250)
20:08:33 kassouni joins (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
20:11:32 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
20:11:34 × bhall quits (~brunohall@138.199.22.101) (Ping timeout: 260 seconds)
20:11:51 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
20:11:52 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
20:15:11 × kassouni quits (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
20:17:25 <mauke> main = putStrLn (show 7)
20:18:08 <geekosaur> I don't think I want to know how "but it's pretty pointless" turned into "use this please"
20:18:18 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:18:23 <mauke> main = putStrLn "7"; main = putChar '7' >> putChar '\n' >> return (); main = (\x -> putStrLn (show x)) 7; main = putStrLn (show x) where x = 7
20:19:43 <mauke> main = let x = 7 in putStrLn (show x); main = do let x = do 7 in do putStrLn (show x)
20:20:13 <mauke> I mean (do show x)
20:20:26 danza joins (~francesco@151.35.121.27)
20:22:07 <Hammdist> data Thing = Thing [Thing] is there a better way to express this that makes Thing a type alias of list and can be pattern matched? (while keeping the constraint that it can only contain Thing)
20:22:33 × Athas quits (~athas@sigkill.dk) (Quit: ZNC 1.8.2 - https://znc.in)
20:22:56 Athas joins (~athas@sigkill.dk)
20:22:57 <geekosaur> if it is a type alias for list then it can not contain only Thing
20:23:12 <Hammdist> I suspected that
20:23:31 <Hammdist> I guess I can still pattern match I just need to indicate the constructor Thing a lot
20:23:50 <geekosaur> that said a bidirectional pattern synonym *might* give you something like what you want
20:23:56 <mauke> type aliases use simple substitution; they can't be recursive
20:24:20 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
20:24:23 malte_ joins (~malte@mal.tc)
20:24:33 × malte quits (~malte@mal.tc) (Read error: Connection reset by peer)
20:24:37 malte_ is now known as malte
20:26:10 <enthropy> data Thing looks isomorphic to Data.Tree.Tree ()
20:27:22 kassouni joins (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
20:28:49 Midjak2 joins (~Midjak@2a01:e0a:247:a560:78ac:cb5d:38a5:235b)
20:29:31 × Midjak quits (~Midjak@82.66.147.146) (Ping timeout: 260 seconds)
20:30:03 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
20:32:57 Midjak joins (~Midjak@2a01:e0a:247:a560:e0c4:fecf:1d0:ece3)
20:34:08 × Midjak2 quits (~Midjak@2a01:e0a:247:a560:78ac:cb5d:38a5:235b) (Ping timeout: 248 seconds)
20:35:41 ardell joins (~ardell@user/ardell)
20:38:49 gurkenglas joins (~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
20:47:39 mastarija joins (~mastarija@2a05:4f46:e03:6000:c2b4:d7d0:e727:fcbd)
20:48:05 <mastarija> can you recommend any good minimal haskell nix example project?
20:50:29 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:51:25 <dmj`> mastarija: https://github.com/Gabriella439/haskell-nix
20:53:17 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
20:56:07 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
20:56:42 <mastarija> dmj`: thx
20:58:35 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
20:58:40 talismanick joins (~talismani@2601:200:c181:4c40::1be2)
21:05:55 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:08:43 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad)
21:11:39 × kjak quits (~kjak@pool-72-66-75-40.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
21:11:43 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
21:11:43 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
21:11:43 wroathe joins (~wroathe@user/wroathe)
21:15:08 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8)
21:15:52 mechap joins (~mechap@user/mechap)
21:16:23 × mechap quits (~mechap@user/mechap) (Client Quit)
21:17:14 mechap joins (~mechap@user/mechap)
21:17:44 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
21:18:23 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
21:20:19 × ardell quits (~ardell@user/ardell) (Quit: Konversation terminated!)
21:20:48 <tomsmeding> segfaultfizzbuzz: you spoke about Haskell-Rust interoperability yesterday iirc; there'll be a talk at FOSDEM on the topic tomorrow, just FYI in case you're interested https://fosdem.org/2023/schedule/event/haskell_rust_interop/
21:21:50 <enthropy> recently ghci's :info started to print the RHS of type family instances. I want to make a type search like https://github.com/ocaml/merlin/blob/master/doc/features.md which will know about type families. The hoogle/haddock .txt file doesn't have it. I'm not sure about the HIE file. I vaguely recall work on a data structure with keys being types and
21:21:51 <enthropy> lookup finding one that unifies with. All the options I see now are like `Map TypeRep` in that there are no type variables.
21:22:19 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 248 seconds)
21:30:57 freeside joins (~mengwong@103.252.202.170)
21:31:39 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
21:37:53 pavonia joins (~user@user/siracusa)
21:41:26 Sgeo joins (~Sgeo@user/sgeo)
21:42:22 × caef^ quits (~caef@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection)
21:46:05 <mastarija> So, I've been following this haskell nix tutorial: https://github.com/Gabriella439/haskell-nix
21:46:15 <mastarija> And got stuck on the first chapter / project
21:46:22 <mastarija> 0th actually
21:47:03 <mastarija> running `nix-build release0.nix` works nicely, and I get my result in the `result/bin` folder.
21:47:45 <mastarija> but if I want to start the shell like this `nix-build --attr project0 release2.nix` I get an error
21:48:06 <mastarija> error: cannot evaluate a function that has an argument without a value ('mkDerivation')
21:49:26 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
21:50:45 <mastarija> Here's a paste of relevant files
21:50:47 <mastarija> https://paste.tomsmeding.com/eE8XAXOO
21:51:29 <talismanick> How much does -XBlockArguments complicate parsing? I recall Kmett saying that the rule for "cap off whitespace blocks upon syntax error" rules out monoidal layout parsing - is this similar?
21:52:23 L29Ah joins (~L29Ah@wikipedia/L29Ah)
21:52:43 <talismanick> something about "if m /= 0 and parse_error(t)"
21:55:52 <talismanick> Is it worth enabling it by default? I make those errors all the time - not prefixing `do` with `$`, etc - but the editor is quick to respond. If this pulls more blocks into a failed parse, though, will it make the error messages illegible?
21:56:46 <Hammdist> what is the recommended way to install and use quickcheck these days? does it ship by default?
21:57:38 <mastarija> Hammdist: I usually just include it as a library in my project
21:57:52 <mastarija> I'm assuming you want to install it globally?
21:58:00 <Hammdist> so cabal? (sorry I'm rather new to haskell)
21:58:08 <Hammdist> yes globally
21:58:29 <mastarija> I wouldn't recommend it, but I think you can do something like cabal install --lib haddock
21:58:50 × kuribas quits (~user@ptr-17d51eoxqxns4cyal2u.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
21:59:15 <talismanick> Hammdist: I usually create a test suite in the .cabal file, and import it there along with hspec
21:59:27 <Hammdist> I'm not using a .cabal file
21:59:41 <Hammdist> so I would prefer global installation - I'm largely using docker for things
21:59:53 <geekosaur> these days installing globally is considered a bad idea; consider what happens if a new version comes out
21:59:55 <talismanick> Like, if my project is foo, in foo/foo.cabal
21:59:56 <mastarija> Do keep in mind that if `haddock` requires some library X of version Y, and you want to install another package globally that requires version Z of library X you won't be able to do it.
22:00:24 <Hammdist> ... and wth is the relation between `haddock` and `quickcheck`?
22:00:33 <talismanick> I'd highly recommend using a cabal file and confining everything to a directory. It's easier for everyone involved.
22:00:38 __monty__ joins (~toonn@user/toonn)
22:00:40 <mastarija> quickcheck can generate random tests
22:00:43 <talismanick> haddock generates documentation
22:00:52 <geekosaur> basically, you can do it but if it breaks you get to keep all the pieces because there won't necessarily be a fix other than nuking and reinstalling ghc and starting over from scratch
22:01:02 <mastarija> and I somehow mixed up haddock and quickcheck
22:01:07 <mastarija> sorry about that
22:01:21 <talismanick> hspec is a testing framework, in which you can specify what outputs should come from which expressions. It also lets you turn those unit tests into property tests with Quickcheck
22:01:25 <Hammdist> so `cabal install QuickCheck` right? do I need --lib on it?
22:01:29 <talismanick> haddock generates documentation
22:01:53 <mastarija> If you leave out --lib, you will just download the library, but it won't be available in the repl
22:02:04 <Hammdist> ah ok will always add --lib then
22:02:11 <mastarija> So it won't be of any use to you.
22:02:18 <geekosaur> cabal no longer does global installs. --lib does an exported install, by creating an environment file for ghc. without it, it will be installed only to cabal's internal store
22:02:50 <geekosaur> Hammdist, on your own head be it
22:03:08 <sm> cabal doesn't break your global package db any more, so what's the problem when a new version comes out ?
22:03:22 <geekosaur> they want to defeat that
22:03:27 <geekosaur> they want global installs
22:03:28 <talismanick> Hammdist: https://cabal.readthedocs.io/en/3.8/nix-local-build.html#how-it-works
22:03:44 <mastarija> But again, if you install `quickcheck` v1.2 that requires some library `X` v.1.0 and you also want to install another library globaly that requires `X` v.2.0 you will have a conflict
22:04:00 <geekosaur> and bring back "cabal hell"
22:04:06 <mastarija> Because all globally installed packages have to be on the same page.
22:04:08 <talismanick> Hammdist: It really will make everything easier if you just create the cabal file
22:04:09 × viktorvalen quits (~viktorval@pool-98-116-90-86.nycmny.fios.verizon.net) (Quit: viktorvalen)
22:04:30 <mastarija> Regarding my nix/haskell question
22:04:32 <talismanick> Say you want to name your project "foodcalculator"
22:04:40 <mastarija> Can someone offer some assistance
22:04:42 <talismanick> then run `cabal init foodcalculator` in your shell
22:04:46 freeside joins (~mengwong@103.252.202.170)
22:04:54 <mastarija> I don't understand this: https://paste.tomsmeding.com/eE8XAXOO
22:04:56 <sm> geekosaur: yes, I'm saying you can install globally, and when a new version comes out, do it again
22:04:58 <talismanick> and it wil; guide you through setting up the file
22:05:12 <talismanick> It's super easy
22:05:16 <sm> resolving conflicts somehow, I forget what exactly happens these days
22:05:52 <sm> (it used to break some installed packages, and you had to ghc-pkg unregister those and reinstall them, but that worked fine. Surely it's smoother now)
22:06:25 <geekosaur> you don't. if you install two libraries, one linking against one version and one the other, if they;re in the global db ghc will happily use them together and you will get errors
22:06:41 <geekosaur> this is whystack and modern cabal refuse to do that any more
22:06:46 <sm> will it not refuse to install globally in that situation ?
22:07:01 <geekosaur> if you use `--;ob` you are overriding that
22:07:05 <geekosaur> `--lib`
22:07:08 <sm> so to install globally, you might have to manually uninstall some stuff first
22:07:20 <sm> ok, I dunno how cabal works
22:07:27 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
22:07:31 <geekosaur> and there;s no real uninstall (there is unregister but it leaves the stuff still in place)
22:07:43 <mastarija> someone? :(
22:07:47 <geekosaur> I'm talking about ghc-pkg, which is what is relevant for global installs
22:07:55 wroathe joins (~wroathe@50.205.197.50)
22:07:55 × wroathe quits (~wroathe@50.205.197.50) (Changing host)
22:07:55 wroathe joins (~wroathe@user/wroathe)
22:08:12 <geekosaur> cabal just wraps ghc-pkg in that case
22:09:11 <geekosaur> mastarija, I don't know nix so can't help
22:09:32 <mastarija> sure, I'm looking for someone who knows :)
22:09:36 <monochrom> --lib still preserves consistency in the environment file by being conservative i.e. it blocks newer versions later.
22:11:37 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
22:11:54 ubert joins (~Thunderbi@p200300ecdf1301b122a4f37be5c9cfb5.dip0.t-ipconnect.de)
22:11:57 safinaskar parts (~quassel@212.73.77.98) ()
22:12:15 × 048AAGB9P quits (~Thunderbi@p200300ecdf13018d0f8ce183c4b5c4af.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
22:12:22 <monochrom> But you can unblock that by erasing the environment file and running --lib again.
22:12:55 <sm> then what happens ? :)
22:13:17 <monochrom> And that still upholds consistency. It just means you have old orphaned stuff taking up disk space in $HOME/.cabal/store
22:13:27 <monochrom> "it works" happens.
22:13:51 <sm> this is fine, what's all the fuss then
22:13:52 <monochrom> This is why I cannot agree with the scaremongering against --lib.
22:14:21 <mastarija> It's ok, but for beginners it might be overwhelming
22:14:33 <mastarija> They need to know which file to purge
22:14:48 <monochrom> Except possibly scaremongering based on "people don't know where is the environment file and/or how to erase a file".
22:14:51 <mastarija> And we are essentially creating a global "project" of sorts
22:15:04 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
22:15:19 <mastarija> monochrom: I have to google for its location every time I want to purge that file
22:15:40 sm uploaded an image: (242KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/GBBldhjSVUchGjWjRfZAjOdf/image.png >
22:16:01 <monochrom> If you have an environment file at the default location, then every time you launch ghci, it prints out the path.
22:17:07 <monochrom> But people are blind, sure.
22:17:39 <monochrom> ghcup prints out all kinds of messages that users swear they never see.
22:18:21 <mastarija> lol, nice
22:18:27 <mastarija> I've never noticed that
22:18:32 <monochrom> Likewise every so often when I give a correct answer here, lots of people claim they don't see it either.
22:19:06 <monochrom> or at least s/claim/behave like/
22:19:12 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:19:50 <mastarija> well, I appreciate your answer if that means anything :)
22:20:05 nehsou^ joins (~nehsou@c-24-30-76-89.hsd1.ga.comcast.net)
22:22:03 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
22:22:55 jero98772 joins (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c)
22:23:49 × kassouni quits (~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
22:41:05 bhall joins (~brunohall@212-8-253-140.hosted-by-worldstream.net)
22:41:32 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:42:47 takuan joins (~takuan@178-116-218-225.access.telenet.be)
22:43:46 × [exa] quits (~exa@user/exa/x-3587197) (Remote host closed the connection)
22:44:38 × enthropy quits (~enthropy@66.7.90.250) (Ping timeout: 260 seconds)
22:47:48 × mastarija quits (~mastarija@2a05:4f46:e03:6000:c2b4:d7d0:e727:fcbd) (Quit: WeeChat 3.7.1)
22:48:47 × jero98772 quits (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 264 seconds)
22:49:25 × varoo_ quits (~varoo@117.203.246.41) (Ping timeout: 252 seconds)
22:51:59 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
22:53:36 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:55:22 merijn joins (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
22:56:28 kassouni joins (~kassouni@c-73-223-27-190.hsd1.ca.comcast.net)
22:57:01 Sinbad joins (~Sinbad@user/sinbad)
23:00:00 × merijn quits (~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
23:00:24 jero98772 joins (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb)
23:03:39 × int-e quits (~noone@int-e.eu) (Remote host closed the connection)
23:04:24 int-e joins (~noone@int-e.eu)
23:05:38 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
23:06:20 lambdabot joins (~lambdabot@silicon.int-e.eu)
23:06:20 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
23:06:20 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
23:07:12 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
23:11:03 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
23:12:57 × gurkenglas quits (~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
23:14:45 oldfashionedcow joins (~Rahul_San@user/oldfashionedcow)
23:18:59 × Sinbad quits (~Sinbad@user/sinbad) (Quit: WeeChat 3.8)
23:19:58 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:19:59 freeside joins (~mengwong@103.252.202.170)
23:23:56 Midjak2 joins (~Midjak@82.66.147.146)
23:24:40 × freeside quits (~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
23:25:35 × Midjak quits (~Midjak@2a01:e0a:247:a560:e0c4:fecf:1d0:ece3) (Ping timeout: 260 seconds)
23:27:13 × Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
23:28:06 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
23:32:39 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad) (Remote host closed the connection)
23:35:21 <Hammdist> I've run into the <<loop>> problem. not sure what to do to narrow it down. the function I'm invoking from main doesn't seem to loop, it always seems to be called with a shorter and shorter list
23:36:04 <darkling> Just guessing: Does it terminate correctly if the list is empty?
23:36:57 <EvanR> https://i.imgur.com/AzKhq99.png
23:36:57 int-e likes to sprinkle code with Debug.Trace.trace calls to see what gets called. (A neat pattern is to add a line f x y | traceShow ("f",x,y) False = undefined to a candidate function `f`. You don't have to change any of the actual definitions.)
23:37:21 × kassouni quits (~kassouni@c-73-223-27-190.hsd1.ca.comcast.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
23:37:27 <byorgey> ooh, that is a nice trick
23:37:41 <monochrom> Yeah use Debug.Trace to check your assumptions.
23:37:54 <monochrom> I think we got that trick from dons.
23:38:04 freeside joins (~mengwong@103.252.202.170)
23:38:07 <monochrom> http://www.vex.net/~trebla/haskell/tracing.html
23:38:07 × opticblast quits (~Thunderbi@172.58.80.152) (Ping timeout: 248 seconds)
23:38:21 × nunggu_ quits (~q@user/nunggu) (Remote host closed the connection)
23:38:26 <int-e> yeah, it's an adaptation of the f x y | x `seq` y `seq` False = undefined pattern from ByteString.
23:38:45 <int-e> Before ghc had BangPatterns.
23:39:19 × random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed)
23:39:27 <Hammdist> 1) it still hangs with an empty list. the base case is clearly alright in the code 2) I tried trace, it didn't output anything
23:39:33 nunggu_ joins (~q@user/nunggu)
23:39:56 <int-e> the tracing line has to be first. but maybe the loop isn't happening where you think it's happening
23:40:05 <darkling> My question was more about whether the empty list was the thing that caused the loop.
23:40:20 <int-e> @paste if you share code we might have concrete ideas
23:40:20 <lambdabot> A pastebin: https://paste.debian.net/
23:40:24 <int-e> hmm
23:40:27 <int-e> @where paste
23:40:27 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
23:40:37 <int-e> (that one is preferred)
23:40:40 <mauke> `<<loop>>` is more about recursive (value) definitions than recursive function calls
23:40:57 <int-e> > let x = x in x :: ()
23:40:58 <mauke> that is, you have a value that somehow depends on itself
23:40:59 <lambdabot> *Exception: <<loop>>
23:41:30 <int-e> > let f x = f (x+1) in f 0 -- no loop will be detected
23:41:36 <lambdabot> mueval-core: Time limit exceeded
23:42:02 <mauke> > let x = x + 1 in x
23:42:05 <lambdabot> *Exception: <<loop>>
23:42:16 <int-e> One possible source of this is accidentally reusing a variable name resulting in a recursive binding.
23:43:04 <Hammdist> oh really? I did reuse a variable
23:44:28 <geekosaur> common beginner trap: `f x = … let x = x + 1 in …` expecting it to use the outer definition of `x`
23:44:33 <Hammdist> hmm, that wasn't the cause. I will try to put together a mwe
23:46:14 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
23:47:20 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad)
23:49:19 <Hammdist> error: parse error on input ‘Show’ <-- do I need an import to derive Show?
23:49:44 <Hammdist> ah it needed indent nvm
23:54:01 <sm> I think fluent use of trace is an essential haskell tool and should be prominently covered in books
23:54:49 <darkling> Not sure I can manage "fluent". Does "plentiful" work? :)
23:55:43 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
23:58:23 <sm> I think you're ahead of most !
23:59:33 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)

All times are in UTC on 2023-02-04.