2023/02/16

2023-02-16 00:04:03 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2023-02-16 00:08:01 +0100pernzs(~pernzs@125.7.37.86)
2023-02-16 00:10:06 +0100kurbus(~kurbus@user/kurbus) (Quit: Ping timeout (120 seconds))
2023-02-16 00:12:15 +0100elevenkb(~elevenkb@105.225.107.107) (Ping timeout: 255 seconds)
2023-02-16 00:12:50 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-02-16 00:22:01 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2023-02-16 00:33:31 +0100czy(~user@host-140-27.ilcub310.champaign.il.us.clients.pavlovmedia.net)
2023-02-16 00:33:57 +0100AlexZenon(~alzenon@178.34.160.79) (Ping timeout: 255 seconds)
2023-02-16 00:33:57 +0100Alex_test(~al_test@178.34.160.79) (Ping timeout: 255 seconds)
2023-02-16 00:36:20 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-16 00:39:59 +0100Alex_test(~al_test@178.34.160.79)
2023-02-16 00:40:59 +0100AlexZenon(~alzenon@178.34.160.79)
2023-02-16 00:41:07 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-02-16 00:47:02 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-02-16 00:47:54 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 00:49:04 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-02-16 00:51:59 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-16 00:57:31 +0100fmlatghor(~lcoogan@c-73-177-167-149.hsd1.va.comcast.net) (WeeChat 3.5)
2023-02-16 00:59:40 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-16 01:00:08 +0100img(~img@user/img)
2023-02-16 01:02:03 +0100pernzs(~pernzs@125.7.37.86) (Ping timeout: 260 seconds)
2023-02-16 01:03:58 +0100img(~img@user/img) (Client Quit)
2023-02-16 01:06:59 +0100img(~img@user/img)
2023-02-16 01:12:58 +0100acidjnk(~acidjnk@p54ad56b7.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-02-16 01:13:44 +0100HandolPark[m](~handol-pa@2001:470:69fc:105::3:1994)
2023-02-16 01:13:57 +0100HandolPark[m](~handol-pa@2001:470:69fc:105::3:1994) ()
2023-02-16 01:13:59 +0100 <dibblego> does there exist a library to diff/merge data types?
2023-02-16 01:17:41 +0100beteigeuze(~Thunderbi@85.247.81.220) (Quit: beteigeuze)
2023-02-16 01:18:42 +0100ec_ec
2023-02-16 01:20:41 +0100 <lyxia> https://hackage.haskell.org/package/tree-diff
2023-02-16 01:22:05 +0100mauke_(~mauke@user/mauke)
2023-02-16 01:23:27 +0100mauke(~mauke@user/mauke) (Ping timeout: 255 seconds)
2023-02-16 01:23:27 +0100mauke_mauke
2023-02-16 01:24:31 +0100larrythecow(~oldfashio@2.120.101.114)
2023-02-16 01:25:52 +0100 <jackdk> dibblego: also https://hackage.haskell.org/package/semialign-extras does it but is potentially inefficient (because it relies on Semialign and Filterable, and knows nothing more about the types); https://hackage.haskell.org/package/patch is from the obsidianverse but doesn't have a diff operation (but see https://github.com/reflex-frp/patch/issues/52 )
2023-02-16 01:26:58 +0100elevenkb(~elevenkb@105.225.107.107)
2023-02-16 01:27:00 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-16 01:27:10 +0100 <jackdk> also torsors/group actions capture the diff/patch idea; https://hackage.haskell.org/package/acts-0.3.1.0/docs/Data-Act.html seems most promising for that
2023-02-16 01:31:41 +0100 <dibblego> thanks
2023-02-16 01:32:32 +0100 <jackdk> dibblego: what are you trying to do?
2023-02-16 01:33:52 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-02-16 01:38:21 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-02-16 01:39:25 +0100elevenkb(~elevenkb@105.225.107.107) (Ping timeout: 252 seconds)
2023-02-16 01:41:28 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 01:42:19 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-02-16 01:42:19 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-02-16 01:42:19 +0100wroathe(~wroathe@user/wroathe)
2023-02-16 01:43:03 +0100larrythecow(~oldfashio@2.120.101.114) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-16 01:43:03 +0100acidjnk(~acidjnk@p200300d6e715c417a5824373cc2115b7.dip0.t-ipconnect.de)
2023-02-16 01:44:02 +0100dcoutts_(~duncan@host86-167-90-212.range86-167.btcentralplus.com) (Ping timeout: 255 seconds)
2023-02-16 01:45:31 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-16 01:50:42 +0100bramhaag(~bramhaag@134.195.121.39)
2023-02-16 01:53:08 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-02-16 01:55:51 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2023-02-16 01:58:42 +0100 <bramhaag> Hi, I'm trying to write a parser for COBOL with megaparsec. For my purposes I don't care about the first 6 characters in every line (they are reserved for punchcard sequence numbers), so I want to skip them. I can of course do this for each of my parsers individually, but is there maybe a more elegant way?
2023-02-16 01:59:16 +0100 <segfaultfizzbuzz> COBOL doesn't need to be shouted
2023-02-16 01:59:49 +0100 <hpc> you can handle it in multiple passes
2023-02-16 02:00:05 +0100 <hpc> one pass that strips the sequence numbers, another that parses the language
2023-02-16 02:01:15 +0100 <dibblego> jackdk: persist values of a data type, preserving history and performance
2023-02-16 02:06:20 +0100 <bramhaag> Good suggestion, thanks hpc!
2023-02-16 02:07:38 +0100 <hpc> bramhaag: protip - the only difference between compilers, interpreters, and parsers is what they output and when they run
2023-02-16 02:07:49 +0100 <hpc> so shamelessly draw from how they are designed when doing this sort of stuff :D
2023-02-16 02:08:23 +0100ddellacosta(~ddellacos@146.70.165.10) (Quit: WeeChat 3.8)
2023-02-16 02:09:36 +0100ddellacosta(~ddellacos@146.70.165.10)
2023-02-16 02:10:54 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-02-16 02:11:28 +0100 <segfaultfizzbuzz> how do the pros do error messages... tbh they sound like the hardest part of a language
2023-02-16 02:13:04 +0100 <hpc> i don't know about getting up to ghc/rustc level of error messages, so i always just make sure it's phrased as where the computer got surprised, not where the mistake was
2023-02-16 02:14:01 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-02-16 02:14:31 +0100 <segfaultfizzbuzz> it's like you need to accumulate all of the errors somehow and then summarize them sensibly, i don't understand what that structure looks like
2023-02-16 02:14:55 +0100gurkenglas(~gurkengla@dynamic-046-114-177-034.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
2023-02-16 02:17:02 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-02-16 02:22:37 +0100mncheck(~mncheck@193.224.205.254) (Ping timeout: 246 seconds)
2023-02-16 02:22:41 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-02-16 02:24:03 +0100acidjnk(~acidjnk@p200300d6e715c417a5824373cc2115b7.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2023-02-16 02:24:22 +0100gpncarl(~gpncarl@210.12.195.6) (Ping timeout: 246 seconds)
2023-02-16 02:24:27 +0100gpncarl_(~gpncarl@210.12.195.6)
2023-02-16 02:27:18 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 02:28:17 +0100johnjaye(~pi@173.209.64.74) (Read error: Connection reset by peer)
2023-02-16 02:31:22 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-16 02:32:15 +0100kee(~~kee@user/wizzwizz4) (Read error: Connection reset by peer)
2023-02-16 02:32:44 +0100kee(~~kee@user/wizzwizz4)
2023-02-16 02:37:20 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-16 02:39:54 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-02-16 02:40:11 +0100jargon(~jargon@184.101.95.90) (Remote host closed the connection)
2023-02-16 02:42:12 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-02-16 02:44:06 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-02-16 02:44:52 +0100xff0x(~xff0x@2405:6580:b080:900:1159:8d59:b148:53e) (Ping timeout: 252 seconds)
2023-02-16 02:45:29 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-02-16 02:48:26 +0100jakalx(~jakalx@base.jakalx.net)
2023-02-16 02:49:36 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 02:54:28 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 246 seconds)
2023-02-16 02:55:52 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-16 02:58:58 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 03:01:37 +0100notzmv(~zmv@user/notzmv)
2023-02-16 03:03:13 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-16 03:08:54 +0100sidy(~sidy@user/sidy)
2023-02-16 03:16:12 +0100 <lyxia> make a list of errors, and print it?
2023-02-16 03:16:36 +0100finnekit(~finnekit@fsf/member/finnekit)
2023-02-16 03:17:16 +0100 <segfaultfizzbuzz> wait does ghc just spit out the error immediately?
2023-02-16 03:23:38 +0100gpncarl(~gpncarl@210.12.195.6)
2023-02-16 03:25:01 +0100gpncarl_(~gpncarl@210.12.195.6) (Ping timeout: 252 seconds)
2023-02-16 03:28:02 +0100sayola(~sayola@ipservice-092-213-087-211.092.213.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2023-02-16 03:30:09 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-02-16 03:37:59 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2023-02-16 03:39:27 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
2023-02-16 03:41:31 +0100werneta(~werneta@70.142.214.115)
2023-02-16 03:43:11 +0100mei(~mei@user/mei) (Remote host closed the connection)
2023-02-16 03:47:15 +0100razetime(~Thunderbi@117.193.6.245)
2023-02-16 03:49:56 +0100falafel(~falafel@2607:fb91:143f:e47f:90f2:454a:343e:a7f7)
2023-02-16 03:51:21 +0100mei(~mei@user/mei)
2023-02-16 03:53:12 +0100sidy(~sidy@user/sidy) (Ping timeout: 255 seconds)
2023-02-16 03:57:07 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-02-16 04:00:13 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8)
2023-02-16 04:03:18 +0100bilegeek(~bilegeek@2600:1008:b0a9:5fa5:52dd:62c7:8c13:f894)
2023-02-16 04:04:12 +0100sidy(~sidy@user/sidy)
2023-02-16 04:05:27 +0100sidy(~sidy@user/sidy) (Read error: Connection reset by peer)
2023-02-16 04:06:09 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-02-16 04:09:56 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-02-16 04:13:26 +0100gehmehgeh(~user@user/gehmehgeh)
2023-02-16 04:19:42 +0100gpncarl(~gpncarl@210.12.195.6) (Quit: WeeChat 3.8)
2023-02-16 04:34:37 +0100brettgilio(~brettgili@x-irc.gq)
2023-02-16 04:35:51 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2023-02-16 04:38:01 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-16 04:39:24 +0100gehmehgeh(~user@user/gehmehgeh)
2023-02-16 04:42:55 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-02-16 04:48:39 +0100thegeekinside(~thegeekin@189.180.97.223) (Ping timeout: 255 seconds)
2023-02-16 04:49:11 +0100anatta(~AdiIRC@h-155-4-132-216.NA.cust.bahnhof.se) (Remote host closed the connection)
2023-02-16 04:52:25 +0100td_(~td@i53870935.versanet.de) (Ping timeout: 246 seconds)
2023-02-16 04:54:34 +0100td_(~td@i5387092D.versanet.de)
2023-02-16 04:57:25 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-02-16 04:57:25 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-02-16 04:57:25 +0100finn_elijaFinnElija
2023-02-16 05:01:50 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-02-16 05:04:14 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2023-02-16 05:12:58 +0100razetime(~Thunderbi@117.193.6.245) (Ping timeout: 268 seconds)
2023-02-16 05:22:24 +0100cheater_(~Username@user/cheater)
2023-02-16 05:25:06 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-02-16 05:25:09 +0100cheater_cheater
2023-02-16 05:37:38 +0100Typedfern(~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2023-02-16 05:38:16 +0100Typedfern(~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net)
2023-02-16 05:41:35 +0100typedfern_(~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net)
2023-02-16 05:44:40 +0100johnw(~johnw@2600:1700:cf00:db0:c50c:6975:4579:9276) (Quit: ZNC - http://znc.in)
2023-02-16 05:44:40 +0100jwiegley(~jwiegley@2600:1700:cf00:db0:c50c:6975:4579:9276) (Quit: ZNC - http://znc.in)
2023-02-16 05:47:25 +0100falafel(~falafel@2607:fb91:143f:e47f:90f2:454a:343e:a7f7) (Ping timeout: 260 seconds)
2023-02-16 05:52:00 +0100ddellacosta(~ddellacos@146.70.165.10) (Quit: WeeChat 3.8)
2023-02-16 05:52:08 +0100jakalx(~jakalx@base.jakalx.net) ()
2023-02-16 05:53:31 +0100Vajb(~Vajb@2001:999:404:9516:d621:6cbe:c71e:5686) (Read error: Connection reset by peer)
2023-02-16 05:53:52 +0100freeside(~mengwong@202.161.55.11)
2023-02-16 05:54:34 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2023-02-16 05:55:55 +0100ddellacosta(~ddellacos@146.70.165.157)
2023-02-16 05:57:54 +0100hounded(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Remote host closed the connection)
2023-02-16 05:57:54 +0100hounded_woodstoc(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Remote host closed the connection)
2023-02-16 06:03:48 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-02-16 06:09:11 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-02-16 06:09:43 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Quit: segfaultfizzbuzz)
2023-02-16 06:12:18 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-16 06:16:29 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2023-02-16 06:17:31 +0100Vajb(~Vajb@2001:999:404:9516:d621:6cbe:c71e:5686)
2023-02-16 06:20:34 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-02-16 06:21:28 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-02-16 06:22:01 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-02-16 06:28:40 +0100razetime(~Thunderbi@117.193.6.245)
2023-02-16 06:43:59 +0100falafel(~falafel@2607:fb91:143f:e47f:622:c482:28d:da7)
2023-02-16 06:45:56 +0100jakalx(~jakalx@base.jakalx.net)
2023-02-16 06:55:55 +0100bilegeek_(~bilegeek@65.sub-174-228-65.myvzw.com)
2023-02-16 06:58:35 +0100bilegeek(~bilegeek@2600:1008:b0a9:5fa5:52dd:62c7:8c13:f894) (Ping timeout: 255 seconds)
2023-02-16 07:02:55 +0100elevenkb(~elevenkb@105.225.107.107)
2023-02-16 07:03:32 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-02-16 07:04:06 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds)
2023-02-16 07:04:35 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-02-16 07:07:11 +0100mbuf(~Shakthi@49.204.119.151)
2023-02-16 07:07:25 +0100kenran(~user@user/kenran)
2023-02-16 07:08:16 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:7d:f047:35eb:a33f) (Remote host closed the connection)
2023-02-16 07:08:55 +0100elevenkb(~elevenkb@105.225.107.107) (Ping timeout: 246 seconds)
2023-02-16 07:09:44 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2023-02-16 07:13:06 +0100motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
2023-02-16 07:13:14 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:7d:f047:35eb:a33f)
2023-02-16 07:19:42 +0100Lycurgus(~juan@user/Lycurgus)
2023-02-16 07:27:12 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2023-02-16 07:27:43 +0100jwiegley(~jwiegley@2600:1700:cf00:db0:b8eb:e4c3:8b35:7cbb)
2023-02-16 07:29:25 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-02-16 07:29:26 +0100Square(~Square4@user/square)
2023-02-16 07:32:22 +0100kee(~~kee@user/wizzwizz4) (Read error: Connection reset by peer)
2023-02-16 07:32:48 +0100k33(~~kee@user/wizzwizz4)
2023-02-16 07:38:11 +0100pwntips(~user@24-113-98-114.wavecable.com)
2023-02-16 07:40:52 +0100bilegeek_(~bilegeek@65.sub-174-228-65.myvzw.com) (Quit: Leaving)
2023-02-16 07:45:55 +0100shapr(~user@net-5-88-239-92.cust.vodafonedsl.it)
2023-02-16 07:47:35 +0100trev(~trev@user/trev)
2023-02-16 07:48:32 +0100opticblast(~Thunderbi@172.58.85.230) (Ping timeout: 255 seconds)
2023-02-16 07:51:13 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-02-16 07:54:54 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:af0b:4d4f:7a12:c449)
2023-02-16 07:59:50 +0100falafel(~falafel@2607:fb91:143f:e47f:622:c482:28d:da7) (Ping timeout: 260 seconds)
2023-02-16 08:01:15 +0100michalz(~michalz@185.246.204.125)
2023-02-16 08:14:18 +0100czy(~user@host-140-27.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Ping timeout: 255 seconds)
2023-02-16 08:15:11 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-02-16 08:16:01 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-02-16 08:17:52 +0100ft(~ft@p3e9bc443.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-02-16 08:26:00 +0100pwntips(~user@24-113-98-114.wavecable.com) ()
2023-02-16 08:26:07 +0100mncheck(~mncheck@193.224.205.254)
2023-02-16 08:35:34 +0100pwntips(~user@24-113-98-114.wavecable.com)
2023-02-16 08:39:25 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-16 08:40:19 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-02-16 08:42:08 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-16 08:42:33 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-02-16 08:44:28 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-02-16 08:45:52 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
2023-02-16 08:47:23 +0100thongpv(~thongpv87@14.172.80.77)
2023-02-16 08:54:30 +0100kaskal(~kaskal@089144220250.atnat0029.highway.webapn.at) (Remote host closed the connection)
2023-02-16 08:59:23 +0100kaskal(~kaskal@089144220250.atnat0029.highway.webapn.at)
2023-02-16 09:01:58 +0100razetime(~Thunderbi@117.193.6.245) (Ping timeout: 246 seconds)
2023-02-16 09:04:41 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-02-16 09:07:38 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-16 09:07:56 +0100akegalj(~akegalj@93-139-168-105.adsl.net.t-com.hr)
2023-02-16 09:12:55 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-02-16 09:13:22 +0100CiaoSen(~Jura@p200300c9570460002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-02-16 09:13:39 +0100phma(phma@2001:5b0:210d:bd78:7d2a:52e1:c274:2d5) (Read error: Connection reset by peer)
2023-02-16 09:14:16 +0100phma(~phma@host-67-44-208-11.hnremote.net)
2023-02-16 09:14:52 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:7d:f047:35eb:a33f) (Remote host closed the connection)
2023-02-16 09:23:58 +0100razetime(~Thunderbi@117.193.6.245)
2023-02-16 09:26:20 +0100mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-02-16 09:26:42 +0100thongpv(~thongpv87@14.172.80.77) (Remote host closed the connection)
2023-02-16 09:27:06 +0100thongpv(~thongpv87@14.172.80.77)
2023-02-16 09:28:28 +0100gpncarl(~gpncarl@210.12.195.6)
2023-02-16 09:29:40 +0100zaquest(~notzaques@5.130.79.72)
2023-02-16 09:37:25 +0100turlando_turlando
2023-02-16 09:48:00 +0100YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2023-02-16 09:50:05 +0100kuribas(~user@ptr-17d51eo29egdbr5f18m.18120a2.ip6.access.telenet.be)
2023-02-16 09:52:29 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-02-16 09:55:33 +0100thongpv(~thongpv87@14.172.80.77) (Ping timeout: 255 seconds)
2023-02-16 09:57:40 +0100thongpv(~thongpv87@2402:9d80:36e:115e:bd33:9174:2078:fce6)
2023-02-16 09:58:20 +0100Alex_test(~al_test@178.34.160.79) (Quit: ;-)
2023-02-16 09:58:53 +0100merijn(~merijn@195.114.232.94)
2023-02-16 09:58:53 +0100AlexZenon(~alzenon@178.34.160.79) (Quit: ;-)
2023-02-16 09:59:19 +0100AlexNoo(~AlexNoo@178.34.160.79) (Quit: Leaving)
2023-02-16 10:00:27 +0100YoungFrog(~youngfrog@2a02:a03f:ca07:f900:98c4:f5a3:bfa9:f8ce)
2023-02-16 10:01:32 +0100shapr(~user@net-5-88-239-92.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2023-02-16 10:03:00 +0100chele(~chele@user/chele)
2023-02-16 10:07:09 +0100hal[m](~halfosswt@2001:470:69fc:105::2:e0ae)
2023-02-16 10:07:20 +0100instagib[m](~instagibm@2001:470:69fc:105::8156)
2023-02-16 10:15:23 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:7d:f047:35eb:a33f)
2023-02-16 10:19:41 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:7d:f047:35eb:a33f) (Ping timeout: 252 seconds)
2023-02-16 10:20:29 +0100AlexZenon(~alzenon@178.34.160.79)
2023-02-16 10:20:30 +0100AlexNoo(~AlexNoo@178.34.160.79)
2023-02-16 10:22:35 +0100Alex_test(~al_test@178.34.160.79)
2023-02-16 10:25:46 +0100gurkenglas(~gurkengla@dynamic-046-114-177-034.46.114.pool.telefonica.de)
2023-02-16 10:27:59 +0100neightchan(~nate@98.45.169.16) (Read error: Connection reset by peer)
2023-02-16 10:28:01 +0100hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Read error: Connection reset by peer)
2023-02-16 10:28:10 +0100hgolden_(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2023-02-16 10:28:14 +0100n8chan(~nate@98.45.169.16)
2023-02-16 10:28:31 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Ping timeout: 252 seconds)
2023-02-16 10:28:35 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
2023-02-16 10:28:35 +0100jwiegley(~jwiegley@2600:1700:cf00:db0:b8eb:e4c3:8b35:7cbb) (Quit: ZNC - http://znc.in)
2023-02-16 10:28:38 +0100king_gs1(~Thunderbi@187.201.41.239)
2023-02-16 10:29:08 +0100johnw(~johnw@2600:1700:cf00:db0:b8eb:e4c3:8b35:7cbb)
2023-02-16 10:29:39 +0100jwiegley(~jwiegley@2600:1700:cf00:db0:b8eb:e4c3:8b35:7cbb)
2023-02-16 10:30:33 +0100inversed(~inversed@bcdcac82.skybroadband.com) (Ping timeout: 268 seconds)
2023-02-16 10:30:55 +0100king_gs1king_gs
2023-02-16 10:31:13 +0100zeenk(~zeenk@2a02:2f04:a214:1e00::7fe)
2023-02-16 10:31:17 +0100inversed(~inversed@bcdcac82.skybroadband.com)
2023-02-16 10:31:20 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-02-16 10:32:33 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-02-16 10:34:59 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-16 10:38:46 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2023-02-16 10:39:47 +0100gehmehgeh(~user@user/gehmehgeh)
2023-02-16 10:40:54 +0100mechap(~mechap@user/mechap)
2023-02-16 10:47:40 +0100king_gs(~Thunderbi@187.201.41.239) (Read error: Connection reset by peer)
2023-02-16 10:47:43 +0100king_gs1(~Thunderbi@187.201.41.239)
2023-02-16 10:50:01 +0100king_gs1king_gs
2023-02-16 10:54:53 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-02-16 10:55:25 +0100MajorBiscuit(~MajorBisc@145.94.142.245)
2023-02-16 10:59:30 +0100ubert(~Thunderbi@2a02:8109:abc0:6434:19e1:c8e:26ce:e0da)
2023-02-16 11:01:16 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-02-16 11:02:18 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-02-16 11:03:16 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-02-16 11:09:30 +0100JimL(~quassel@89-162-26-217.fiber.signal.no)
2023-02-16 11:10:42 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
2023-02-16 11:11:53 +0100king_gs(~Thunderbi@187.201.41.239) (Read error: Connection reset by peer)
2023-02-16 11:13:02 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-02-16 11:15:41 +0100sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2023-02-16 11:15:58 +0100sefidel(~sefidel@user/sefidel)
2023-02-16 11:16:30 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4572:3f0d:6913:5f92)
2023-02-16 11:20:56 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:4572:3f0d:6913:5f92) (Ping timeout: 255 seconds)
2023-02-16 11:24:40 +0100 <JensPetersen[m]> Does anyone have a 32bit patch for basement to build on ghc-9.2?
2023-02-16 11:25:54 +0100Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Ping timeout: 255 seconds)
2023-02-16 11:27:13 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:af0b:4d4f:7a12:c449) (Quit: WeeChat 2.8)
2023-02-16 11:27:35 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-02-16 11:27:39 +0100 <merijn> I doubt it? :p
2023-02-16 11:33:35 +0100shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 256 seconds)
2023-02-16 11:34:33 +0100Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2023-02-16 11:35:37 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Quit: king_gs)
2023-02-16 11:35:53 +0100king_gs(~Thunderbi@187.201.41.239)
2023-02-16 11:39:25 +0100 <albet70> f (z f (g x)) ==?
2023-02-16 11:39:50 +0100 <albet70> z . g but f wrapped them
2023-02-16 11:40:42 +0100 <int-e> @pl \f z g x -> f (z f (g x))
2023-02-16 11:40:43 +0100 <lambdabot> ap ((.) . (.) . (.)) (((.) .) . flip id)
2023-02-16 11:41:04 +0100 <int-e> this is about as helpfule as I expected it to be
2023-02-16 11:41:07 +0100 <int-e> -e
2023-02-16 11:41:16 +0100 <opqdonut> albet70: did you mean f (z (f (g x))) ?
2023-02-16 11:41:30 +0100 <opqdonut> since that's just f.z.f.g
2023-02-16 11:42:11 +0100 <mauke> @pl \f -> f . z . f . g
2023-02-16 11:42:11 +0100 <lambdabot> ap (.) ((z .) . (. g))
2023-02-16 11:42:15 +0100 <int-e> what happened to the x ;-)
2023-02-16 11:42:49 +0100 <opqdonut> if that's a common pattern for you you could do something like `withf = (f.)` and then use `withf z . withf g`
2023-02-16 11:45:36 +0100 <albet70> fmap f (z .g)?
2023-02-16 11:46:27 +0100 <opqdonut> that's just f.z.g
2023-02-16 11:46:28 +0100CiaoSen(~Jura@p200300c9570460002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-02-16 11:46:42 +0100freeside(~mengwong@202.161.55.11) (Ping timeout: 255 seconds)
2023-02-16 11:48:24 +0100__monty__(~toonn@user/toonn)
2023-02-16 11:49:19 +0100razetime(~Thunderbi@117.193.6.245) (Remote host closed the connection)
2023-02-16 11:59:04 +0100gpncarl(~gpncarl@210.12.195.6) (Ping timeout: 246 seconds)
2023-02-16 12:15:59 +0100mmhat(~mmh@p200300f1c70e928aee086bfffe095315.dip0.t-ipconnect.de)
2023-02-16 12:17:10 +0100xff0x(~xff0x@2405:6580:b080:900:9a0c:738d:f5ce:fcbe)
2023-02-16 12:17:36 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-02-16 12:18:05 +0100mbuf(~Shakthi@49.204.119.151) (Ping timeout: 255 seconds)
2023-02-16 12:18:22 +0100 <tomsmeding> int-e: that ((.) . (.) . (.)) is just beautiful though
2023-02-16 12:18:34 +0100 <tomsmeding> the entire expression is great
2023-02-16 12:19:52 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 12:20:12 +0100king_gs(~Thunderbi@187.201.41.239) (Read error: Connection reset by peer)
2023-02-16 12:20:54 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-02-16 12:26:41 +0100mbuf(~Shakthi@49.205.81.42)
2023-02-16 12:27:13 +0100gpncarl(~gpncarl@210.12.195.6)
2023-02-16 12:41:16 +0100 <albet70> what if there are more? f (a (f b (z f (g x))
2023-02-16 12:43:08 +0100michalz(~michalz@185.246.204.125) (Ping timeout: 268 seconds)
2023-02-16 12:45:16 +0100michalz(~michalz@185.246.207.203)
2023-02-16 12:46:30 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-02-16 12:53:27 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-16 12:54:32 +0100 <tomsmeding> albet70: did you mean this? f (a (f (b (z (f (g x))))))
2023-02-16 12:54:39 +0100 <tomsmeding> not the same thing
2023-02-16 12:55:37 +0100 <tomsmeding> if you do, and all of f,a,b,z,g are of type A -> A for some A, then foldr (.) id (map (f .) [a, b, z, g])
2023-02-16 12:57:01 +0100 <tomsmeding> or: foldr ($) x (map (f .) [a, b, z, g])
2023-02-16 13:00:30 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-16 13:00:47 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 13:02:00 +0100 <albet70> no, I mean f apply on every function when it's applied
2023-02-16 13:02:37 +0100 <albet70> f(g x); f (z( f (g x));
2023-02-16 13:03:05 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-02-16 13:03:29 +0100 <albet70> f (b( f( z(f (g x)))))
2023-02-16 13:03:59 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2023-02-16 13:21:39 +0100 <tomsmeding> albet70: is that not literally what I wrote
2023-02-16 13:25:59 +0100cassaundra(~cassaundr@user/cassaundra) (Ping timeout: 264 seconds)
2023-02-16 13:32:55 +0100urdh(~urdh@user/urdh) (Ping timeout: 252 seconds)
2023-02-16 13:35:08 +0100 <albet70> f (a (f (b (z (f (g x)))))) between b and z you miss one f
2023-02-16 13:40:36 +0100malte(~malte@152.89.107.66) (Remote host closed the connection)
2023-02-16 13:42:07 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-02-16 13:42:08 +0100urdh(~urdh@user/urdh)
2023-02-16 13:42:40 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Ping timeout: 246 seconds)
2023-02-16 13:43:33 +0100king_gs(~Thunderbi@187.201.41.239)
2023-02-16 13:45:53 +0100 <tomsmeding> albet70: oh right
2023-02-16 13:46:07 +0100 <tomsmeding> but you missed it too ;)
2023-02-16 13:46:20 +0100 <tomsmeding> but the foldr expressions have the f in between as well
2023-02-16 13:48:06 +0100king_gs(~Thunderbi@187.201.41.239) (Ping timeout: 255 seconds)
2023-02-16 13:52:40 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-02-16 14:02:36 +0100gurkenglas(~gurkengla@dynamic-046-114-177-034.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
2023-02-16 14:03:36 +0100king_gs(~Thunderbi@187.201.41.239)
2023-02-16 14:04:24 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-16 14:06:39 +0100MajorBiscuit(~MajorBisc@145.94.142.245) (Ping timeout: 255 seconds)
2023-02-16 14:08:58 +0100 <Inst> this is sad, could i beg for some help getting monomer to install on Windows / 9.4.4?
2023-02-16 14:09:03 +0100 <Inst> monomer is being updated
2023-02-16 14:10:52 +0100 <Inst> nanovg is C + python, but I still can't figure out how to get it to install via my current version of cabal
2023-02-16 14:15:49 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-16 14:16:05 +0100Alex_test(~al_test@178.34.160.79) (Read error: Connection reset by peer)
2023-02-16 14:16:05 +0100AlexNoo(~AlexNoo@178.34.160.79) (Remote host closed the connection)
2023-02-16 14:16:07 +0100AlexZenon(~alzenon@178.34.160.79) (Quit: ;-)
2023-02-16 14:16:56 +0100 <Inst> installing freetype2 first now
2023-02-16 14:17:40 +0100mmhat(~mmh@p200300f1c70e928aee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
2023-02-16 14:17:52 +0100 <segfaultfizzbuzz> is there such a thing as "approximately" being of some type? that is, is there any fairly well accepted method for reasoning about approximately having a certain type?
2023-02-16 14:18:09 +0100MajorBiscuit(~MajorBisc@145.94.142.245)
2023-02-16 14:19:15 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Ping timeout: 255 seconds)
2023-02-16 14:22:16 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
2023-02-16 14:22:24 +0100akegalj(~akegalj@93-139-168-105.adsl.net.t-com.hr) (Quit: leaving)
2023-02-16 14:23:12 +0100 <geekosaur> depends on what you mean by approximately. "isomorphic to" is certainly a thing
2023-02-16 14:23:12 +0100king_gs(~Thunderbi@187.201.41.239) (Read error: Connection reset by peer)
2023-02-16 14:24:44 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-02-16 14:24:46 +0100 <segfaultfizzbuzz> well i was reflecting on how "binary" a lot of programming is
2023-02-16 14:25:18 +0100 <segfaultfizzbuzz> so something either is a tree or it is not, but perhaps something can "approximately" be a tree
2023-02-16 14:25:33 +0100 <segfaultfizzbuzz> and a related concept might be that you can project something which is not a tree onto a tree
2023-02-16 14:25:41 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 14:25:41 +0100lyle(~lyle@104.246.145.237)
2023-02-16 14:27:59 +0100 <merijn> segfaultfizzbuzz: sounds like you want fuzzy logic
2023-02-16 14:28:28 +0100AlexZenon(~alzenon@178.34.160.79)
2023-02-16 14:28:36 +0100AlexNoo(~AlexNoo@178.34.160.79)
2023-02-16 14:28:48 +0100 <geekosaur> isomorphism may cover that. if two types can represent the same values, they are isomorphic. the exact representation may differ (you may have () vs. Bool, for example, depending on what they're contained in)
2023-02-16 14:28:49 +0100 <segfaultfizzbuzz> well that doesn't integrate with the type system, i dont think?
2023-02-16 14:29:10 +0100 <geekosaur> fuzzy logic may be another approach, again depending on what you're looking for
2023-02-16 14:29:24 +0100 <geekosaur> not with Haskell's, but Haskell's is not the only type system in existence
2023-02-16 14:30:02 +0100 <segfaultfizzbuzz> put another way, is there a differentiable type system?
2023-02-16 14:30:23 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-16 14:31:15 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-02-16 14:31:15 +0100 <geekosaur> I am not well enough versed in type theory to answer that, sorry
2023-02-16 14:32:14 +0100 <segfaultfizzbuzz> another question this raises is: if i am checking that X has type T, then X must have some kind of structure prior to being checked against T
2023-02-16 14:32:36 +0100 <segfaultfizzbuzz> let's call that structure S (before X is known to be T), what is S?
2023-02-16 14:32:42 +0100 <segfaultfizzbuzz> is S a graph?
2023-02-16 14:33:01 +0100CiaoSen(~Jura@p200300c9570460002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-02-16 14:33:43 +0100Alex_test(~al_test@178.34.160.79)
2023-02-16 14:34:25 +0100 <geekosaur> depends on the type system. In Haskell, the structure determines the type; this is why we have and require constructors for most types, because constructors define the structure. (Under the hood, even numbers and characters have constructors.)
2023-02-16 14:35:00 +0100 <geekosaur> but it's not really a graph in the case of Haskell because the outer constructor is what determines the type
2023-02-16 14:35:07 +0100 <geekosaur> s/outer/&most/
2023-02-16 14:35:27 +0100MajorBiscuit(~MajorBisc@145.94.142.245) (Ping timeout: 255 seconds)
2023-02-16 14:36:05 +0100 <segfaultfizzbuzz> so it's something like all constructors constitute valid types by definition so you don't need to check anything?
2023-02-16 14:36:08 +0100MajorBiscuit(~MajorBisc@145.94.142.245)
2023-02-16 14:36:18 +0100 <segfaultfizzbuzz> err perhaps i should say "by construction"
2023-02-16 14:37:36 +0100cfricke(~cfricke@user/cfricke)
2023-02-16 14:38:21 +0100 <geekosaur> every data constructor is associated with a type via `data` or `newtype`, so yes, by construction every literal value has a well defined type
2023-02-16 14:39:02 +0100 <geekosaur> this does have some teeth hidden in it, though: a literal number is special-cased by the compiler to be `fromInteger (integer_representation_of_value)`
2023-02-16 14:39:17 +0100 <geekosaur> (and similar for strings if OverloadedStrings is enabled)
2023-02-16 14:39:35 +0100 <geekosaur> this goes through a typeclass, so a literal number (resp. string) is actually a function
2023-02-16 14:40:09 +0100kmein(~weechat@user/kmein) (Quit: ciao kakao)
2023-02-16 14:41:58 +0100kmein(~weechat@user/kmein)
2023-02-16 14:42:16 +0100 <segfaultfizzbuzz> hm ok
2023-02-16 14:42:53 +0100 <geekosaur> on the other hand, a literal Char is mapped by the compiler to the C# internal constructor applied to a primitive type (Word32#, here representing a Unicode codepoint)
2023-02-16 14:45:08 +0100 <geekosaur> primitive types work a little differently, but are simpler because you can't be polymorphic over them (polymorphism typically requires you to be manipulating pointers to values which will be the same size, not values themselves which may differ). so their types can be determined by the constructors used on them
2023-02-16 14:46:18 +0100 <geekosaur> (`C#` is only special because it's supplied by the compiler; it is possible but not particularly recommended for user code to work with primitive types directly, following the same rules as the compiler-supplied constructors so the compiler knows what primitive types are involved)
2023-02-16 14:46:50 +0100 <geekosaur> @src Int
2023-02-16 14:46:50 +0100 <lambdabot> data Int = I# Int#
2023-02-16 14:46:55 +0100 <geekosaur> @src Integer
2023-02-16 14:46:55 +0100 <lambdabot> data Integer = S# Int#
2023-02-16 14:46:55 +0100 <lambdabot> | J# Int# ByteArray#
2023-02-16 14:47:03 +0100 <geekosaur> @src Double
2023-02-16 14:47:03 +0100 <lambdabot> data Double = D# Double#
2023-02-16 14:47:41 +0100 <geekosaur> iirc the Integer one is out of date and there are separate constructors for positive and negative bigints these days
2023-02-16 14:50:00 +0100Xeroine_(~Xeroine@user/xeroine) (Read error: Connection reset by peer)
2023-02-16 14:50:10 +0100 <albet70> tomsmeding , what if that f is >>=, so that >>= chain could be foldr ...?
2023-02-16 14:51:14 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:d08:65bc:8e79:dbb5)
2023-02-16 14:51:55 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.8)
2023-02-16 14:52:35 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-02-16 14:55:18 +0100k33kee
2023-02-16 14:59:25 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Ping timeout: 268 seconds)
2023-02-16 15:00:49 +0100kmein(~weechat@user/kmein) (Quit: ciao kakao)
2023-02-16 15:02:16 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
2023-02-16 15:02:56 +0100kmein(~weechat@user/kmein)
2023-02-16 15:03:07 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-02-16 15:03:17 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Read error: Connection reset by peer)
2023-02-16 15:03:30 +0100king_gs(~Thunderbi@187.201.41.239)
2023-02-16 15:03:56 +0100gensyst(gensyst@user/gensyst)
2023-02-16 15:04:24 +0100 <gensyst> foo :: IO a, how can I access a at the type level (i believe i found a case where i need to access a at the type level)
2023-02-16 15:04:44 +0100 <gensyst> i'm sure i could come up with something using unsafePerformIO myself, but any standard way to do it?
2023-02-16 15:05:06 +0100 <Hecate> gensyst: "access" meaning…?
2023-02-16 15:06:31 +0100 <gensyst> Hecate, GADT stuff, check this out (merijin's example from yesterday): https://dpaste.com/HDH7H3L6D I presume (correct me if wrong) both those "case" are occurring at the type level.
2023-02-16 15:07:03 +0100 <gensyst> So now I have a (different) situation where I have foo :: IO a but want to do case a of ...
2023-02-16 15:07:19 +0100 <gensyst> i might be wholly wrong
2023-02-16 15:07:29 +0100 <Hecate> let me load that in the playground
2023-02-16 15:08:00 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
2023-02-16 15:08:12 +0100 <int-e> hmm, type family ArgOf a; type instance ArgOf (f a) = a
2023-02-16 15:08:34 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 15:09:28 +0100waleee(~waleee@176.10.137.138)
2023-02-16 15:10:43 +0100 <int-e> I think the cases don't happen at the type level unless the function gets specialized to State A or State B. Though there's enough propagation of type information that the compiler will know that the inner matches are complete.
2023-02-16 15:11:38 +0100 <int-e> And even then there *still* will be a pattern match do deconstruct the respective data constructor, AState or BState.
2023-02-16 15:12:12 +0100 <int-e> (respectively SettingsA and SettingsB)
2023-02-16 15:12:32 +0100 <Hecate> https://play-haskell.tomsmeding.com/saved/vIq1JbGm
2023-02-16 15:12:37 +0100 <Hecate> if people want to toy
2023-02-16 15:12:58 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-16 15:13:15 +0100 <albet70> (a >>= b) >>= c == foldl1 (>>=) [a, b, c]
2023-02-16 15:15:30 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 15:15:38 +0100 <int-e> gensyst: I don't understand what you mean by "access" either, in the context of that code. It made sense to me when the type was "IO a".
2023-02-16 15:15:56 +0100 <gensyst> one sec i'll try to come up with an example
2023-02-16 15:16:03 +0100 <int-e> (And type families can extract the "a" from "IO a".)
2023-02-16 15:17:38 +0100kuribas(~user@ptr-17d51eo29egdbr5f18m.18120a2.ip6.access.telenet.be) (ERC (IRC client for Emacs 27.1))
2023-02-16 15:18:13 +0100king_gs(~Thunderbi@187.201.41.239) (Ping timeout: 246 seconds)
2023-02-16 15:19:33 +0100MajorBiscuit(~MajorBisc@145.94.142.245) (Ping timeout: 255 seconds)
2023-02-16 15:19:48 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-02-16 15:20:14 +0100jimmy2shoots(~Jimmy_Bam@user/jimmy2shoots)
2023-02-16 15:20:23 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
2023-02-16 15:22:57 +0100thegeekinside(~thegeekin@189.180.97.223)
2023-02-16 15:24:42 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2023-02-16 15:28:26 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow)
2023-02-16 15:29:59 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-02-16 15:32:07 +0100 <gensyst> int-e, this is what i mean: https://play-haskell.tomsmeding.com/saved/1xZrWXFG
2023-02-16 15:32:20 +0100 <gensyst> it compiles, but fails at undefined (the extraction)
2023-02-16 15:32:38 +0100 <gensyst> i was hoping the case is at compile-time, but it appears you're right. it evaluates the undefined at run-time
2023-02-16 15:34:25 +0100 <Hecate> (I don't see an `undefined` in the playground you shared. Are you sure you saved?)
2023-02-16 15:35:30 +0100ystael(~ystael@user/ystael)
2023-02-16 15:35:50 +0100 <gensyst> Here's the saved one, sorry: https://play-haskell.tomsmeding.com/saved/ukTfC3nd
2023-02-16 15:37:02 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 268 seconds)
2023-02-16 15:39:32 +0100 <Hecate> heavens
2023-02-16 15:39:36 +0100 <Hecate> ok I see better what you mean
2023-02-16 15:40:06 +0100 <int-e> yeah, it goes back to the idea that those pattern matches are compile time checks... they really are not
2023-02-16 15:40:19 +0100 <Hecate> gensyst: it may sound like shifting the goalposts but are you sure that's how you want to handle your configuration? Would you mind telling us a bit more about your situation?
2023-02-16 15:40:31 +0100razetime(~Thunderbi@117.193.6.245)
2023-02-16 15:41:39 +0100 <gensyst> Hecate, the original design goal was in the original link: https://dpaste.com/HDH7H3L6D -- to keep the two separate types Settings and State in sync at compile-time and the current problem arose out of that eventually.
2023-02-16 15:41:45 +0100 <merijn> gensyst: Ah, yeah that example is exactly the kinda thing I said was hard to do :)
2023-02-16 15:41:46 +0100 <gensyst> I'm starting to understand how type-safety starts infecting things :)
2023-02-16 15:41:57 +0100 <gensyst> oh damn lol
2023-02-16 15:42:21 +0100 <int-e> gensyst: GADTs are *data*, and your particular GADT has two constructors. Pattern matching is basically the same as for the usual ADTs, except that some cases may be proven impossible statically.
2023-02-16 15:42:30 +0100 <merijn> gensyst: You can tackle that using an existential, but unless you can restrict the existential to the edges it becomes painful
2023-02-16 15:43:03 +0100 <tomsmeding> gensyst: am I correct in saying that you want to get what amounts to a boolean here from the type level? (i.e. whether mode is A or B)
2023-02-16 15:43:07 +0100 <tomsmeding> and use that on the term level
2023-02-16 15:43:34 +0100 <tomsmeding> types are erased at runtime in Haskell, so to do this you need to have some value-level witness of that boolean
2023-02-16 15:43:40 +0100 <int-e> The usual mechanism to "branch on types" is type classes, but the switch often still happens at runtime in the form of producing a suitable dictionary for the type class when the actual type is known.
2023-02-16 15:43:47 +0100elbear(~lucian@109.101.137.234)
2023-02-16 15:43:59 +0100 <tomsmeding> and indeed, a typeclass dictionary is a runtime _value_
2023-02-16 15:44:09 +0100 <Hecate> (and aggressively specialising the functions that take the tc I imagine)
2023-02-16 15:44:15 +0100MajorBiscuit(~MajorBisc@145.94.142.245)
2023-02-16 15:45:40 +0100 <gensyst> tomsmeding, so the issue here is I have no arguments dependent on mode and only a IO?
2023-02-16 15:45:59 +0100 <tomsmeding> gensyst: no, the issue is that makeSettings does not have any inputs that witness whether mode is A or B
2023-02-16 15:46:38 +0100 <tomsmeding> gensyst: https://play-haskell.tomsmeding.com/saved/VD03NhwL
2023-02-16 15:46:39 +0100 <merijn> gensyst: basically, the branch of the case has to depend on the result type (instead of any function input)
2023-02-16 15:46:51 +0100 <merijn> gensyst: but you can't branch on types
2023-02-16 15:46:52 +0100 <tomsmeding> here I added an argument to makeSettings (the typeclass dictionary of KnownMode) that witnesses the choice
2023-02-16 15:46:55 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2023-02-16 15:47:06 +0100 <gensyst> good grief lol
2023-02-16 15:47:12 +0100 <tomsmeding> you can branch on types at compile time
2023-02-16 15:47:14 +0100 <tomsmeding> not at runtime
2023-02-16 15:47:28 +0100 <gensyst> what have a gotten myself into :S
2023-02-16 15:47:36 +0100 <gensyst> i've been plunged into type-level programming
2023-02-16 15:47:38 +0100 <tomsmeding> gensyst: possible cop-out: just pass in a Settings value filled with undefineds
2023-02-16 15:47:41 +0100 <tomsmeding> and pattern-match on that
2023-02-16 15:47:55 +0100 <merijn> gensyst: There is an easier solution, though
2023-02-16 15:48:13 +0100 <merijn> gensyst: I'm assuming the problem is that "State m" is a small part of a larger datatype?
2023-02-16 15:48:41 +0100 <tomsmeding> gensyst: https://play-haskell.tomsmeding.com/saved/F3BP50uW
2023-02-16 15:48:45 +0100 <gensyst> gensyst, yeah
2023-02-16 15:48:52 +0100 <tomsmeding> gensyst: mentioning yourself
2023-02-16 15:49:25 +0100 <gensyst> tomsmeding, that's a much simpler solution
2023-02-16 15:49:39 +0100 <tomsmeding> it's not as elegant maybe, but it does work :p
2023-02-16 15:49:40 +0100 <gensyst> i'll do that for now
2023-02-16 15:50:08 +0100 <tomsmeding> gensyst: slightly cleaned up version of that would be to define a second GADT, just like Settings, but without all the fields
2023-02-16 15:50:14 +0100 <tomsmeding> and pass that in as a template
2023-02-16 15:50:18 +0100 <[Leary]> gensyst: Or `data SMode :: Mode -> Type where { SA :: SMode A; SB :: SMode B }; makeSettings :: SMode mode -> IO (Settings mode)`
2023-02-16 15:50:22 +0100 <merijn> gensyst: You could split it so that you have "data GenericSettings (m :: Mode) = GSettings { modeSettings :: Settings m, ...other fields here... }" and then write "makeSettings :: Settings m -> GenericSettings m"
2023-02-16 15:50:29 +0100 <tomsmeding> i.e. [Leary]'s SMode
2023-02-16 15:52:11 +0100 <Inst> kill me
2023-02-16 15:52:18 +0100 <Inst> i can't get nanovg-hs to install
2023-02-16 15:52:20 +0100 <Inst> on Windows
2023-02-16 15:52:45 +0100 <tomsmeding> gensyst: one perspective on this is that it's _not_ type-level programming; it's normal value-level programming. The only things that the types are doing is informing GHC of some assumptions that don't follow directly from the values themselves, so that GHC can tell you something about the coherence/consistency of your code
2023-02-16 15:53:37 +0100 <tomsmeding> even my knownMode thing really only was a boolean: Left () or Right (). No other data. The only thing that the type-level stuff did was let GHC know that pattern matching on this knownMode thing tells you something about what the result type of makeSettings should be
2023-02-16 15:53:45 +0100 <tomsmeding> Inst: what's the error
2023-02-16 15:53:49 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 15:53:58 +0100 <Inst> thanks for being helpful, tomsmeding
2023-02-16 15:54:52 +0100tomsmedingrarely uses windows so is not sure if I can be helpful
2023-02-16 15:55:23 +0100 <Inst> https://cdn.discordapp.com/attachments/505370075402862594/1075766776085876777/image.png
2023-02-16 15:55:43 +0100 <tomsmeding> oh pkg-config
2023-02-16 15:55:44 +0100 <Inst> probably this is an issue with freetype / std_truetype not being visible in mingw?
2023-02-16 15:55:53 +0100 <tomsmeding> does mingw have pkg-config in the first place
2023-02-16 15:56:16 +0100 <tomsmeding> does typing 'pkg-config' in your prompt give anything
2023-02-16 15:56:22 +0100 <Inst> well, i have an etc, a home, a wingw64
2023-02-16 15:56:30 +0100 <tomsmeding> pkg-config is a program
2023-02-16 15:56:48 +0100 <Inst> please specify at least one package in the command line
2023-02-16 15:56:57 +0100 <tomsmeding> oh that's good
2023-02-16 15:56:57 +0100 <geekosaur> mingw doesn't have pkgconfig as installed
2023-02-16 15:57:01 +0100 <Inst> but i'm trying to figure out what's gone wrong with pacman, because pacman in mingw can't seem to see jack
2023-02-16 15:57:04 +0100 <geekosaur> but you can install it
2023-02-16 15:57:23 +0100 <gensyst> merijn, that sounds like just mere trickery to get an argument into the function?
2023-02-16 15:57:25 +0100 <Inst> pkg-config freetype, no response
2023-02-16 15:57:27 +0100 <tomsmeding> Inst: try 'cabal install monomer -f stb_truetype'
2023-02-16 15:57:31 +0100 <gensyst> merijn, (which i can case on)
2023-02-16 15:58:42 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-16 15:58:47 +0100 <Inst> same error
2023-02-16 15:58:53 +0100 <Inst> i'd rather do freetype, it's sort of embarrassing
2023-02-16 15:58:57 +0100 <Inst> monomer just got updated last month
2023-02-16 15:59:03 +0100 <Inst> nanovg is failing builds, though, strange
2023-02-16 15:59:08 +0100 <int-e> it really shouldn't be the same error though
2023-02-16 15:59:17 +0100 <merijn> gensyst: Well, the thing that makes live difficult are "runtime dispatch on the type" (i.e. what to return based on 'A or B'), you can do it via existentials, but that's a bit painful usually i.e. "data SomeSettings = forall m . SomeSettings (Settings m)" or something like that
2023-02-16 15:59:20 +0100 <int-e> unless the -f must go first?
2023-02-16 15:59:29 +0100 <tomsmeding> Inst: yeah, screenshot of error with the -f?
2023-02-16 15:59:46 +0100 <merijn> gensyst: So what you want is to never return a value depending on what the Mode is
2023-02-16 15:59:51 +0100 <Inst> https://media.discordapp.net/attachments/968989726633779215/1075793613830762516/image.png
2023-02-16 16:00:10 +0100 <tomsmeding> wut
2023-02-16 16:00:22 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 16:00:33 +0100 <tomsmeding> Inst: you're also missing glew
2023-02-16 16:00:39 +0100 <tomsmeding> in the pkg-config database, at least
2023-02-16 16:00:40 +0100 <Inst> glew?
2023-02-16 16:00:55 +0100 <tomsmeding> it's an OpenGL support library
2023-02-16 16:01:01 +0100int-ewould try `cabal install -f stb_truetype monomer` instead
2023-02-16 16:01:15 +0100 <Inst> it seems to be an issue with mingw, unfortunately
2023-02-16 16:01:15 +0100 <int-e> (but I'm not sure whether this actually makes a difference to cabal-install)
2023-02-16 16:01:22 +0100 <Inst> i can't get pacman to install anything in the mingw console ;_;
2023-02-16 16:01:26 +0100 <tomsmeding> Inst: what does 'pkg-config --list-all' give
2023-02-16 16:01:43 +0100 <tomsmeding> does mingw use pacman these days? I thought it had its own GUI
2023-02-16 16:01:59 +0100 <int-e> have you actually installed the C libraries needed here? glew and freetype2 (if that's what you want to use)?
2023-02-16 16:02:00 +0100 <Inst> https://media.discordapp.net/attachments/968989726633779215/1075794149070082129/image.png
2023-02-16 16:02:09 +0100 <Inst> should I be using something other than pacman in mingw?
2023-02-16 16:02:15 +0100 <Inst> i can't actualyl install either right now
2023-02-16 16:02:44 +0100 <Inst> this is fun
2023-02-16 16:02:51 +0100 <Inst> apt-get not installed, mingw-get not installed
2023-02-16 16:03:04 +0100 <tomsmeding> oh apparently it's pacman these days "if you installed MinGW through MSYS2"
2023-02-16 16:03:05 +0100 <Inst> probably the mingw is configured as a complete slave to cabal
2023-02-16 16:03:11 +0100 <tomsmeding> hardly
2023-02-16 16:03:11 +0100 <int-e> That looks like a no... well, assuming mingw actually packages the .pc files with those libraries. No clue whether it does.
2023-02-16 16:03:29 +0100 <int-e> cabal-install can't do that.
2023-02-16 16:03:34 +0100 <Inst> pacman -S get should work, right?
2023-02-16 16:03:46 +0100 <Inst> as in, it'd try to update the get binary in linux?
2023-02-16 16:03:59 +0100 <tomsmeding> Inst: what's the package name for freetype2 in pacman? What does pacman -Ql <thatpackagename> give?
2023-02-16 16:04:43 +0100 <Inst> package not found
2023-02-16 16:04:56 +0100 <tomsmeding> then -S it first lol
2023-02-16 16:05:09 +0100 <Inst> not found
2023-02-16 16:05:15 +0100 <tomsmeding> pacman -Ss freetype2
2023-02-16 16:05:24 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
2023-02-16 16:05:27 +0100 <tomsmeding> it's probably got a longer name
2023-02-16 16:05:34 +0100 <tomsmeding> mingw/...freetype...
2023-02-16 16:05:39 +0100 <Inst> gives no return, then gives package not found on -S
2023-02-16 16:06:07 +0100 <tomsmeding> Inst: pacman -Ss freetype
2023-02-16 16:06:09 +0100 <Inst> zing, thanks
2023-02-16 16:06:10 +0100 <Inst> working
2023-02-16 16:06:14 +0100 <Inst> https://www.google.com/search?q=mingw+freetype2&ei=fUXuY9_lMeSTwt0Px_6p6A0&ved=0ahUKEwifmOzep5r9Ah…
2023-02-16 16:06:14 +0100 <Inst> =gws-wiz-serp
2023-02-16 16:06:19 +0100 <int-e> huh
2023-02-16 16:06:36 +0100tomsmeding. o O ( google.com/search?q=mingw+freetype2 )
2023-02-16 16:06:57 +0100 <tomsmeding> Inst: so you _didn't_ install freetype, did you?
2023-02-16 16:07:01 +0100 <tomsmeding> you got "not found"
2023-02-16 16:07:05 +0100 <int-e> (yeah what even is all that extra crap in that URL)
2023-02-16 16:07:05 +0100 <tomsmeding> you lied ;)
2023-02-16 16:07:11 +0100 <tomsmeding> int-e: tracking
2023-02-16 16:07:27 +0100 <tomsmeding> well, not only, but also
2023-02-16 16:07:43 +0100 <Inst> i don't know how to install freetype
2023-02-16 16:08:02 +0100 <tomsmeding> Inst: pacman -Ss freetype
2023-02-16 16:08:05 +0100 <tomsmeding> what does that give
2023-02-16 16:08:06 +0100 <geekosaur> if you're on a newer ghc then you also have to worry about the clang-based mingw having a distinct set of packages from the gcc-based one
2023-02-16 16:08:20 +0100 <tomsmeding> omg mingw is a mess
2023-02-16 16:08:23 +0100elbear(~lucian@109.101.137.234) (Quit: leaving)
2023-02-16 16:08:26 +0100 <Inst> it gives nothing
2023-02-16 16:08:28 +0100 <tomsmeding> it's slowly coming back to me
2023-02-16 16:08:29 +0100 <geekosaur> https://repo.msys2.org/mingw/clang64/
2023-02-16 16:08:38 +0100 <Inst> and yeah, Windows development is pretty mouse operator, as interpreted by Kowainik
2023-02-16 16:08:43 +0100 <tomsmeding> Inst: if you 'pacman -Syu' first?
2023-02-16 16:09:07 +0100 <tomsmeding> I dealt with cygwin and mingw like 6 years ago and I still have bad memories
2023-02-16 16:09:13 +0100 <Inst> https://kowainik.github.io/posts/2019-02-06-style-guide#naming
2023-02-16 16:09:16 +0100 <int-e> LOL. https://int-e.eu/~bf3/tmp/gws.png
2023-02-16 16:09:32 +0100 <tomsmeding> lol
2023-02-16 16:09:58 +0100 <Inst> reinstalled
2023-02-16 16:10:01 +0100 <Inst> going to try with cabal again
2023-02-16 16:10:04 +0100 <Inst> *installed
2023-02-16 16:10:09 +0100 <tomsmeding> Inst: what package did you install precisely
2023-02-16 16:10:14 +0100Sgeo(~Sgeo@user/sgeo)
2023-02-16 16:11:25 +0100MajorBiscuit(~MajorBisc@145.94.142.245) (Ping timeout: 246 seconds)
2023-02-16 16:11:43 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-16 16:12:12 +0100 <Inst> crap, still not working, pkgconfig shows freetype in mingw64
2023-02-16 16:12:17 +0100 <Inst> maybe i have to try again for mingw-32
2023-02-16 16:12:30 +0100 <tomsmeding> unlikely, but you could try
2023-02-16 16:12:40 +0100 <tomsmeding> Inst: what does cabal complain about, still freetype?
2023-02-16 16:12:44 +0100 <Inst> pacman -S mingw-w64-x86_64-freetype
2023-02-16 16:12:55 +0100 <Inst> pacman -S mingw-w64-x86_64-glew
2023-02-16 16:13:07 +0100 <Inst> not found in pkg-config db
2023-02-16 16:13:15 +0100 <tomsmeding> Inst: _what_ is not found in pkg-config db
2023-02-16 16:13:24 +0100 <Inst> pkg-config list-all shows it
2023-02-16 16:13:31 +0100 <tomsmeding> Inst: are those the only hits when you 'pacman -Ss' freetype and glew?
2023-02-16 16:13:35 +0100 <Inst> [__0] rejecting: monomer-1.5.1.0 (conflict: pkg-config package glew-any, not
2023-02-16 16:13:35 +0100 <Inst> found in the pkg-config database)
2023-02-16 16:13:44 +0100 <Inst> well, i googled it, and it seemed to have worked
2023-02-16 16:13:51 +0100 <Inst> and it's currently listed on the mingw-w64 pkgdb
2023-02-16 16:14:33 +0100 <tomsmeding> Inst: what does 'pkg-config --libs glew' give? And 'pkg-config --libs glew-any'?
2023-02-16 16:15:40 +0100 <Inst> $ pkg-config --libs glew
2023-02-16 16:15:40 +0100 <Inst> -lglew32
2023-02-16 16:15:53 +0100 <Inst> $ pkg-config --libs glew-any
2023-02-16 16:15:54 +0100 <Inst> Package glew-any was not found in the pkg-config search path.
2023-02-16 16:15:54 +0100 <Inst> Perhaps you should add the directory containing `glew-any.pc'
2023-02-16 16:15:54 +0100 <Inst> to the PKG_CONFIG_PATH environment variable
2023-02-16 16:15:54 +0100 <Inst> Package 'glew-any', required by 'virtual:world', not found
2023-02-16 16:16:00 +0100 <Inst> sorry
2023-02-16 16:16:02 +0100tomsmedingwonders where that glew-any is coming from
2023-02-16 16:16:29 +0100 <int-e> the pkg-config name should be 'glew'
2023-02-16 16:16:33 +0100 <tomsmeding> yeah
2023-02-16 16:16:47 +0100 <tomsmeding> and the nanovg cabal file has pkgconfig-depends: glew
2023-02-16 16:16:52 +0100 <tomsmeding> where does the -any come from
2023-02-16 16:17:02 +0100 <int-e> the -any is from cabal, because there's no version range given for the library
2023-02-16 16:17:09 +0100 <geekosaur> ^
2023-02-16 16:17:17 +0100 <tomsmeding> int-e: that's bonkers
2023-02-16 16:17:20 +0100 <tomsmeding> that's not pkg-config syntax
2023-02-16 16:17:21 +0100 <geekosaur> normally a pkgconfig name is <name>-<version>
2023-02-16 16:17:29 +0100 <tomsmeding> sounds like a cabal bug
2023-02-16 16:17:33 +0100 <tomsmeding> do not modify the name
2023-02-16 16:17:37 +0100 <Inst> report in #cabal?
2023-02-16 16:17:46 +0100 <Inst> i just need to get it to work at this point, to play around with monomer
2023-02-16 16:17:52 +0100 <int-e> tomsmeding: I'd assume that it's only using that name in reporting the error
2023-02-16 16:17:54 +0100 <tomsmeding> version constraints go after a space after the package name, and "-any" is not even a version constraint
2023-02-16 16:17:57 +0100 <tomsmeding> ah
2023-02-16 16:18:06 +0100 <Inst> possibly display bug
2023-02-16 16:18:16 +0100 <tomsmeding> Inst: a note, monomer is a library, don't 'cabal install' libraries
2023-02-16 16:18:20 +0100 <int-e> it's not even a bug, though it may be confusing as a feature
2023-02-16 16:18:21 +0100 <tomsmeding> put them as dependencies in your cabal project
2023-02-16 16:18:46 +0100 <Inst> yeah, second respected /decent haskeller who told me that
2023-02-16 16:18:55 +0100 <Inst> i'm just being lazy and abusing :set -package in ghci and ghc -package
2023-02-16 16:19:07 +0100 <Inst> hey, I used to --lib ;)
2023-02-16 16:19:16 +0100 <Inst> and repeatedly nuke my ghcup install
2023-02-16 16:19:24 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-02-16 16:19:29 +0100 <geekosaur> dont need to do that, just the environment file
2023-02-16 16:19:45 +0100waleee(~waleee@176.10.137.138) (Ping timeout: 252 seconds)
2023-02-16 16:19:46 +0100 <geekosaur> which you can push into a specific directory so it only affects stuff in that directory
2023-02-16 16:19:53 +0100 <tomsmeding> Inst: cabal install monomer -f stb_truetype -v 2>&1 | Tee-Object log.txt
2023-02-16 16:19:57 +0100 <geekosaur> (xmonad does this when using cabal instead of stack)
2023-02-16 16:20:30 +0100czy(~user@50.30.140.22)
2023-02-16 16:20:38 +0100 <gensyst> merijn, "gensyst: So what you want is to never return a value depending on what the Mode is", but... that's what we've been successfully doing right?
2023-02-16 16:20:53 +0100 <gensyst> with your solution and with tomsmeding / [Leary] solutions
2023-02-16 16:20:58 +0100 <Inst> https://paste.tomsmeding.com/i1qgKi3p
2023-02-16 16:21:26 +0100zaquest(~notzaques@5.130.79.72) (Quit: Leaving)
2023-02-16 16:21:30 +0100 <Inst> wait, wtf
2023-02-16 16:21:32 +0100 <int-e> "Cannot find pkg-config program"
2023-02-16 16:21:34 +0100 <Inst> cannot find pkg-config?
2023-02-16 16:21:35 +0100 <int-e> fun.
2023-02-16 16:21:48 +0100 <merijn> gensyst: No, in my initial example you're not depending on the type of Mode, you're depending on the constructor of Settings
2023-02-16 16:22:10 +0100 <Inst> adding this to my path now
2023-02-16 16:22:13 +0100 <Inst> C:\ghcup\msys64\mingw64\bin
2023-02-16 16:22:35 +0100 <tomsmeding> int-e: indeed cabal seems to add that -any, that's confusing
2023-02-16 16:22:40 +0100 <merijn> gensyst: You're basically using the Mode to let GHC figure out that you will only have matching pairs of Settings/State constructors
2023-02-16 16:23:38 +0100 <merijn> gensyst: You're depending on the value of SettingsA, it's just that GHC can determine that SettingsA gives mode A and only AState can match the mode A
2023-02-16 16:23:45 +0100 <Inst> stuffing in path doesn't seem to help :(
2023-02-16 16:24:16 +0100 <merijn> gensyst: So you're using Mode to relate the Settings and State constructors to each other, but you don't actually decide anything based on Mode, you decide based on SettingsA/SettingsB and AState/BState
2023-02-16 16:24:41 +0100 <Inst> very nice
2023-02-16 16:24:57 +0100 <merijn> gensyst: but your example of "makeSettings :: Settings m" <- this is problematic, because there's no input value to relate 'm' too, so now you *are* depending on the type of 'm'
2023-02-16 16:24:58 +0100 <Inst> it's begging for sdl2 now, can easily find it via google and then pacman the mingw variant into existence
2023-02-16 16:25:01 +0100 <Inst> thanks for the help!
2023-02-16 16:25:15 +0100 <tomsmeding> Inst: cabal finds pkg-config now?
2023-02-16 16:25:28 +0100 <tomsmeding> Inst: pacman -Ss sdl2
2023-02-16 16:25:51 +0100Guest|37(~Guest|37@45.138.211.81)
2023-02-16 16:26:29 +0100 <Inst> doesn't work, needs mingw variant, found it already via google and isntalling
2023-02-16 16:26:41 +0100 <tomsmeding> Inst: -Ss /= -S
2023-02-16 16:26:45 +0100 <tomsmeding> Ss is search, S is install
2023-02-16 16:27:03 +0100 <Inst> oh nice, it's working now
2023-02-16 16:27:08 +0100 <Inst> last time i had it running, it gave me nothing
2023-02-16 16:27:24 +0100 <Inst> rpobably a bad pacman -Syu
2023-02-16 16:27:26 +0100 <tomsmeding> Inst: maybe because you were searching for freetype2 whereas the package was called .....freetype ?
2023-02-16 16:27:31 +0100 <int-e> Huh this suggests reinstalling cabal-install if it was installed before pkg-config: https://github.com/haskell-gi/haskell-gi/issues/291#issuecomment-625155277
2023-02-16 16:27:31 +0100 <tomsmeding> or that
2023-02-16 16:27:43 +0100 <tomsmeding> int-e: they have things working
2023-02-16 16:27:45 +0100 <int-e> Not sure whether this is applicable here, but it's an idea.
2023-02-16 16:27:47 +0100 <int-e> Ah
2023-02-16 16:27:55 +0100 <tomsmeding> or at least, pkg-config
2023-02-16 16:28:09 +0100 <Inst> monomer not being obnoxious anymore! cool!
2023-02-16 16:28:30 +0100 <int-e> tbf I was only 30 seconds late this time, this is rather good for me ;)
2023-02-16 16:28:45 +0100 <tomsmeding> Inst: a way to get your global-package feel without the pitfalls of cabal-installing a library: cabal repl -b monomer
2023-02-16 16:28:49 +0100 <tomsmeding> int-e: lol
2023-02-16 16:29:18 +0100 <tomsmeding> your nicks are annoying, I need to type 3 (!) characters of your nick to get tab-completion to give the right name
2023-02-16 16:29:39 +0100 <gensyst> merijn, ok now things are clearer, thanks
2023-02-16 16:29:51 +0100 <sm> 5 characters here (element) :)
2023-02-16 16:30:09 +0100 <gensyst> merijn, tomsmeding, [Leary] and everyone, you gave me a lot to think about today. have to sleep on this. thanks!
2023-02-16 16:30:15 +0100 <Inst> thanks so much for putting up with my windows newbie bs
2023-02-16 16:30:24 +0100 <tomsmeding> gensyst, Inst: cheers :)
2023-02-16 16:30:35 +0100 <tomsmeding> Inst: I'm as much a windows newbie as you are though
2023-02-16 16:30:53 +0100 <Inst> i'm reasonably competent, i tried arch-linux but arch-linux was a really bad idea
2023-02-16 16:31:01 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Ping timeout: 246 seconds)
2023-02-16 16:31:03 +0100 <tomsmeding> I've just used pacman before because, y'know, it's arch's package manager and I use arch daily :p
2023-02-16 16:31:09 +0100 <geekosaur> arch is okay, just avoid its haskell ecosystem
2023-02-16 16:31:11 +0100gensyst(gensyst@user/gensyst) (Quit: Leaving)
2023-02-16 16:31:14 +0100 <Inst> arch-linux was roughly at the range of what i could get working, but not complicated
2023-02-16 16:31:24 +0100 <Inst> afaik there's a war between arch-linux haskell ecosystem and mainstream haskell, no?
2023-02-16 16:31:26 +0100 <geekosaur> use ghcup to install a hackell environment
2023-02-16 16:31:33 +0100 <tomsmeding> yeah
2023-02-16 16:31:37 +0100 <tomsmeding> hackell
2023-02-16 16:31:39 +0100 <geekosaur> *haskell
2023-02-16 16:31:48 +0100 <dminuoso_> Inst: "war" is one way to put it.
2023-02-16 16:31:53 +0100 <geekosaur> just noticed that, yes. amusing typo
2023-02-16 16:31:55 +0100 <tomsmeding> quiet war
2023-02-16 16:32:00 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 255 seconds)
2023-02-16 16:32:06 +0100 <Inst> like cabal vs stack war
2023-02-16 16:32:08 +0100 <tomsmeding> war of sighs
2023-02-16 16:32:10 +0100 <sm> detente
2023-02-16 16:32:11 +0100 <Inst> stack was great, just poorly implemented
2023-02-16 16:32:37 +0100 <Inst> i did not enjoy the idea of installing a different version of GHC everytime I wanted to compile
2023-02-16 16:32:38 +0100 <sm> Inst: nonsense
2023-02-16 16:32:41 +0100 <dminuoso_> The super strange thing about archlinux is, that its all dynamically linked haskell packages for what is probably the poorest reason and perhaps a good reason why to stay clear of ArchLinux.
2023-02-16 16:32:53 +0100 <sm> sorry, didn't mean to be rude
2023-02-16 16:32:56 +0100 <Inst> it's correct in the sense of reproducible builds in a language that aggressively breaks stuff
2023-02-16 16:33:06 +0100 <Inst> i get trolled really heavily elsewhere, so I don't mind
2023-02-16 16:33:13 +0100 <Inst> it's just annoying
2023-02-16 16:33:15 +0100 <dminuoso_> The core reason is that archlinux haskell packages are uploaded from the singular maintainers personal computer, and because he has incredibly poor internet speed, he judged that dynamic linking would improve this problem.
2023-02-16 16:33:22 +0100 <dminuoso_> (you cant make this up.
2023-02-16 16:33:29 +0100 <geekosaur> you can typically force a resolver for something which will constrain the ghc it uses among other things
2023-02-16 16:33:48 +0100 <geekosaur> (stack)
2023-02-16 16:33:54 +0100 <Inst> incidentally someone wants me to rewrite warp as an exercise
2023-02-16 16:34:45 +0100 <Inst> for some reason people think Michael Snoyman defected to Rust
2023-02-16 16:34:52 +0100 <Inst> but warp / wai could use some love, and he's maintaining it these days
2023-02-16 16:36:03 +0100Guest|37(~Guest|37@45.138.211.81) (Ping timeout: 255 seconds)
2023-02-16 16:37:35 +0100 <sm> dminuoso_: really ? arch has a singular maintainer ?
2023-02-16 16:37:49 +0100 <dminuoso_> sm: no but their haskell packages had at least at the point this decision was from
2023-02-16 16:38:14 +0100 <sm> ah
2023-02-16 16:41:49 +0100 <dminuoso_> https://www.reddit.com/r/linux/comments/9emwtu/comment/e5qssdz/
2023-02-16 16:42:15 +0100 <dminuoso_> For what its worth, many of the reasons are somewhat valid - but only if you have sufficient tooling around it.
2023-02-16 16:42:20 +0100 <dminuoso_> It works great on NixOS.
2023-02-16 16:42:42 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-16 16:47:05 +0100 <Inst> sorry to ask for help again, but
2023-02-16 16:47:06 +0100 <Inst> https://paste.tomsmeding.com/IzcNwSAj
2023-02-16 16:48:52 +0100jimmy2shoots(~Jimmy_Bam@user/jimmy2shoots) (Ping timeout: 246 seconds)
2023-02-16 16:50:43 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 16:52:35 +0100CiaoSen(~Jura@p200300c9570460002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2023-02-16 16:52:42 +0100andrewboltachev(~andrey@178.141.125.176) (Quit: Leaving.)
2023-02-16 16:53:49 +0100MajorBiscuit(~MajorBisc@185.214.88.34)
2023-02-16 16:54:05 +0100 <tomsmeding> Inst: perhaps try this: cabal install monomer -f stb_truetype --ghc-option=-lssp
2023-02-16 16:54:55 +0100 <Inst> yup, it's SDL2 that's blowing up
2023-02-16 16:56:13 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-16 16:57:17 +0100 <Inst> still same problem, it's sdl2, but w/e, maybe i'll try again later
2023-02-16 16:58:15 +0100 <tomsmeding> Inst: same error?
2023-02-16 16:58:23 +0100 <tomsmeding> I mean, I'm not sure that ghc option is going to the right place
2023-02-16 16:58:33 +0100 <Inst> what is lssp supposed to do?
2023-02-16 16:58:47 +0100 <tomsmeding> I'd be surer it's being passed on correctly if you start a _project_ ( ;) ) and have a cabal.project file you can put ghc-options: -lssp in
2023-02-16 16:58:51 +0100 <tomsmeding> Inst: https://stackoverflow.com/questions/4492799/undefined-reference-to-stack-chk-fail
2023-02-16 16:59:42 +0100Cale(~cale@2605:8d80:6a1:37cd:8990:eb4c:24b5:bae4)
2023-02-16 17:03:41 +0100Cale(~cale@2605:8d80:6a1:37cd:8990:eb4c:24b5:bae4) (Read error: Connection reset by peer)
2023-02-16 17:04:19 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-02-16 17:04:55 +0100 <Inst> retrying with dummy
2023-02-16 17:08:48 +0100 <Inst> this still builds up
2023-02-16 17:08:50 +0100 <Inst> *blows up
2023-02-16 17:08:51 +0100 <Inst> cabal build --ghc-options=-lssp
2023-02-16 17:09:41 +0100mcglk(~mcglk@131.191.49.120) (Ping timeout: 255 seconds)
2023-02-16 17:12:46 +0100Sinbad(~Sinbad@user/sinbad)
2023-02-16 17:13:10 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-02-16 17:13:16 +0100mcglk(~mcglk@131.191.49.120)
2023-02-16 17:13:16 +0100 <geekosaur> won't that only apply to the current package unless cabal.project has it inside a `package *` stanza?
2023-02-16 17:13:44 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-02-16 17:15:59 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 255 seconds)
2023-02-16 17:19:24 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-16 17:19:38 +0100 <geekosaur> also I think these days there's a magic package you can depend on for C++ foo (https://downloads.haskell.org/ghc/9.4.1/docs/users_guide/9.4.1-notes.html#packaging), but not sure it does what you want here
2023-02-16 17:19:58 +0100Cale(~cale@2605:8d80:6a0:b4f6:a139:9a62:b1d5:76a4)
2023-02-16 17:22:00 +0100mbuf(~Shakthi@49.205.81.42) (Quit: Leaving)
2023-02-16 17:22:25 +0100 <geekosaur> come to think of it you'd have to inject it into the SDL2 build which won't help
2023-02-16 17:22:47 +0100 <geekosaur> rather, isn't really doable without vendoring SDL2
2023-02-16 17:26:11 +0100thegeekinside(~thegeekin@189.180.97.223) (Ping timeout: 268 seconds)
2023-02-16 17:30:23 +0100shriekingnoise(~shrieking@186.137.175.87)
2023-02-16 17:32:58 +0100Cale(~cale@2605:8d80:6a0:b4f6:a139:9a62:b1d5:76a4) (Read error: Connection reset by peer)
2023-02-16 17:33:21 +0100 <geekosaur> mm, actually I wonder if you can inject an extra `build-depends:` via cabal.package the way you can inject e.g. `ghc-options:`
2023-02-16 17:33:27 +0100ddellacosta(~ddellacos@146.70.165.157) (Ping timeout: 252 seconds)
2023-02-16 17:34:29 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 17:34:50 +0100 <sclv> don't think so
2023-02-16 17:36:40 +0100 <geekosaur> might need to consider it just for that link-with-c++ package
2023-02-16 17:37:10 +0100 <geekosaur> except it'd be somewhere between pain and horror to maintain 😞
2023-02-16 17:38:18 +0100 <geekosaur> need a better solution to that problem… somehow
2023-02-16 17:38:55 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 246 seconds)
2023-02-16 17:39:15 +0100 <geekosaur> without having to hack up cabal to support umpteen different languages (it may start with C++ but watch out for rust in the rear view mirror…)
2023-02-16 17:40:06 +0100 <geekosaur> or go, etc.
2023-02-16 17:40:48 +0100andrew47(~andrew@156.229-30-62.static.virginmediabusiness.co.uk)
2023-02-16 17:41:42 +0100 <andrew47> I'm using the Capability library and I've got a `Coercible a b` and a `HasState tag a m` and I would like to use a `HasState tag b m` how can I achieve that?
2023-02-16 17:42:16 +0100 <andrew47> I get the obvious "no instace for `hasState tag b m` from context `HasState tag a m`"
2023-02-16 17:43:24 +0100 <dminuoso_> andrew47: these are constraints, what are some of the values involved here?
2023-02-16 17:43:58 +0100 <dminuoso_> At any rate
2023-02-16 17:44:03 +0100 <dminuoso_> You can use `constraints` to forcibly do this
2023-02-16 17:44:15 +0100 <andrew47> what is `constraints`?
2023-02-16 17:44:38 +0100 <dminuoso_> https://hackage.haskell.org/package/constraints-0.13.4/docs/Data-Constraint.html
2023-02-16 17:45:16 +0100 <dminuoso_> Or mmm you dont even need that
2023-02-16 17:45:27 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-16 17:45:36 +0100 <andrew47> Can you give me an example? I don't see how that helps
2023-02-16 17:45:41 +0100 <geekosaur> shouldn't it work to just have both constraints?
2023-02-16 17:45:55 +0100 <geekosaur> unless something else weird is going on
2023-02-16 17:46:16 +0100 <dminuoso_> geekosaur: Only if `(HasState tag a, Coercible a b) => HasState tag b` existed
2023-02-16 17:46:22 +0100 <dminuoso_> But you could conjure that one up of course.
2023-02-16 17:46:30 +0100 <andrew47> basically I have `newtype State = State { v1 :: MyState, ...}` with a bunch of deriving via things for capabilities.
2023-02-16 17:46:54 +0100zeenk(~zeenk@2a02:2f04:a214:1e00::7fe) (Quit: Konversation terminated!)
2023-02-16 17:47:08 +0100 <andrew47> Somewhere else I have `newtype OtherState = OtherState MyState`
2023-02-16 17:47:32 +0100 <andrew47> and I'm exposing the interface `HasState "st" OtherState m` but I would like to use `HasState "st" MyState m`
2023-02-16 17:47:43 +0100 <dminuoso_> andrew47: unpack and inject with `state :: forall tag s m a. HasState tag s m => (s -> (a, s)) -> m a `
2023-02-16 17:47:52 +0100 <dminuoso_> Thats the most convenient way I think.
2023-02-16 17:48:26 +0100 <dminuoso_> Heck you should even be able to `coerce` it directly
2023-02-16 17:48:32 +0100 <dminuoso_> i.e. `coerce yourOtherState`
2023-02-16 17:48:52 +0100 <andrew47> I was usng `coerce` directly before and that worked. But I was wondering if i could make the `deriving via` machinery do it for me
2023-02-16 17:48:53 +0100 <dminuoso_> Depending on whether or not you have representational equality
2023-02-16 17:48:59 +0100 <dminuoso_> andrew47: oh, no.
2023-02-16 17:49:04 +0100 <dminuoso_> andrew47: You could:
2023-02-16 17:49:23 +0100 <dminuoso_> Discard that.
2023-02-16 17:49:32 +0100 <andrew47> kk
2023-02-16 17:49:35 +0100 <andrew47> thanks for the help!
2023-02-16 17:49:51 +0100 <dminuoso_> I mean its kind of the point of our type system
2023-02-16 17:49:54 +0100 <dminuoso_> For newtypes
2023-02-16 17:50:10 +0100 <dminuoso_> To make this magically work, use `type` rather than `newtype`
2023-02-16 17:50:13 +0100 <geekosaur> but it's kinda the point of coerce to get around it 🙂
2023-02-16 17:52:03 +0100 <andrew47> yeah it's a little bit fiddly because I got some type families in the mix too so I need the `newtype`
2023-02-16 17:52:49 +0100 <andrew47> Capability's been great so far
2023-02-16 17:54:33 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-02-16 17:56:56 +0100merijn(~merijn@195.114.232.94) (Ping timeout: 255 seconds)
2023-02-16 17:58:14 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:d08:65bc:8e79:dbb5) (Quit: WeeChat 2.8)
2023-02-16 17:59:37 +0100werneta(~werneta@70.142.214.115) (Remote host closed the connection)
2023-02-16 18:00:24 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 18:00:35 +0100thegeekinside(~thegeekin@189.180.66.126)
2023-02-16 18:00:58 +0100stackdroid18(14094@de1.hashbang.sh)
2023-02-16 18:01:54 +0100dtman34(~dtman34@2601:447:d000:93c9:45e0:f7b0:cefa:26ff) (Ping timeout: 255 seconds)
2023-02-16 18:03:49 +0100 <juri_> what is the operation that converts a list of lists from [[a1, a2],[b1, b2]] to [[a1, b1],[a2,b2]] ?
2023-02-16 18:05:02 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-16 18:05:13 +0100chele(~chele@user/chele) (Remote host closed the connection)
2023-02-16 18:07:06 +0100 <geekosaur> > transpose [[a1, a2],[b1, b2]]
2023-02-16 18:07:08 +0100 <lambdabot> error:
2023-02-16 18:07:08 +0100 <lambdabot> • Variable not in scope: a1
2023-02-16 18:07:08 +0100 <lambdabot> • Perhaps you meant one of these:
2023-02-16 18:07:23 +0100 <geekosaur> > transpose [[a, b],[c, d]]
2023-02-16 18:07:24 +0100 <lambdabot> [[a,c],[b,d]]
2023-02-16 18:07:34 +0100MajorBiscuit(~MajorBisc@185.214.88.34) (Quit: WeeChat 3.6)
2023-02-16 18:07:35 +0100codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 246 seconds)
2023-02-16 18:07:38 +0100 <geekosaur> simple-reflect goes only so far…
2023-02-16 18:07:59 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-02-16 18:13:06 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-02-16 18:20:14 +0100motherfsck(~motherfsc@user/motherfsck)
2023-02-16 18:21:35 +0100razetime(~Thunderbi@117.193.6.245) (Remote host closed the connection)
2023-02-16 18:22:08 +0100andrew47(~andrew@156.229-30-62.static.virginmediabusiness.co.uk) (Ping timeout: 260 seconds)
2023-02-16 18:23:01 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 18:23:08 +0100nihonium(~nihonium@46.148.105.76)
2023-02-16 18:23:28 +0100tromp(~textual@92.110.219.57)
2023-02-16 18:24:01 +0100zer0bitz(~zer0bitz@2001:2003:f443:d600:8417:935c:cb32:ee43)
2023-02-16 18:25:50 +0100 <juri_> thanks. :)
2023-02-16 18:27:06 +0100econo(uid147250@user/econo)
2023-02-16 18:28:33 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-16 18:30:03 +0100mikoto-chan(~mikoto-ch@2001:999:780:2a0:3c7:b79d:d9fc:8260)
2023-02-16 18:35:24 +0100dtman34(~dtman34@76.156.89.180)
2023-02-16 18:37:33 +0100 <segfaultfizzbuzz> so my program state is distributed across ram, disk drive ram, L3 thru L1 cache, is that right?
2023-02-16 18:37:43 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-02-16 18:37:45 +0100 <segfaultfizzbuzz> uh plus whatever is stored on disk
2023-02-16 18:37:55 +0100tromp(~textual@92.110.219.57) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-02-16 18:38:21 +0100 <segfaultfizzbuzz> oh and i guess whatever devices it speaks to, like ram on a NIC and ram on a video card etc
2023-02-16 18:39:52 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-02-16 18:42:40 +0100desantra(~skykanin@user/skykanin)
2023-02-16 18:43:20 +0100desantra(~skykanin@user/skykanin) (Client Quit)
2023-02-16 18:43:35 +0100desantra(~skykanin@user/skykanin)
2023-02-16 18:44:54 +0100ft(~ft@p3e9bc443.dip0.t-ipconnect.de)
2023-02-16 18:46:38 +0100ubert(~Thunderbi@2a02:8109:abc0:6434:19e1:c8e:26ce:e0da) (Remote host closed the connection)
2023-02-16 18:49:24 +0100 <desantra> Having issues with my cabal setup. `cabal build myopia:exe:myopia` reports "Internal error when trying to build the library from the package myopia-0.1.0.0. The package,component pair is not in the set of available targets for the project plan, which would suggest an inconsistency between readTargetSelectors and resolveTargets." All relevant files: https://bpa.st/QAX2M
2023-02-16 18:52:06 +0100rettahcay(~kaushikv@c-24-20-37-193.hsd1.or.comcast.net)
2023-02-16 18:53:20 +0100rettahcay(~kaushikv@c-24-20-37-193.hsd1.or.comcast.net) ()
2023-02-16 18:54:50 +0100kurbus(~kurbus@user/kurbus)
2023-02-16 18:55:21 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 18:59:59 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-16 19:10:27 +0100kurbus(~kurbus@user/kurbus) (Quit: Client closed)
2023-02-16 19:12:00 +0100ravamrt(~ravamrt@112.134.193.152)
2023-02-16 19:20:26 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-02-16 19:20:35 +0100 <Inst> hmmm
2023-02-16 19:20:44 +0100 <Inst> is there anyone else who uses windows here?
2023-02-16 19:22:14 +0100mc47(~mc47@xmonad/TheMC47)
2023-02-16 19:24:24 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-02-16 19:26:18 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-02-16 19:26:37 +0100rlj(~rlj@94.234.101.197)
2023-02-16 19:28:07 +0100Cale(~cale@2605:8d80:6a2:4f70:9e38:23aa:4526:c65f)
2023-02-16 19:29:08 +0100 <Inst> hmmm
2023-02-16 19:29:35 +0100 <Inst> can you hijack SDL2 not building by getting it access to SDL2 via a precompiled .dll binary?
2023-02-16 19:32:19 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 246 seconds)
2023-02-16 19:33:01 +0100Cale(~cale@2605:8d80:6a2:4f70:9e38:23aa:4526:c65f) (Read error: Connection reset by peer)
2023-02-16 19:33:34 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-02-16 19:36:22 +0100ravamrt1(~ravamrt@112.134.195.104)
2023-02-16 19:37:40 +0100 <sm> Inst: you might find some SDL2 on windows experts in #haskell-game:matrix.org
2023-02-16 19:38:16 +0100mikoto-chan(~mikoto-ch@2001:999:780:2a0:3c7:b79d:d9fc:8260) (Ping timeout: 246 seconds)
2023-02-16 19:38:46 +0100ravamrt(~ravamrt@112.134.193.152) (Ping timeout: 268 seconds)
2023-02-16 19:39:36 +0100 <Inst> thanks
2023-02-16 19:40:26 +0100 <sm> and of course you're following any sdl2 install docs I imagine. Additional clues might be findable on /r/haskell, there have been occasional threads
2023-02-16 19:48:04 +0100 <jade[m]> I have some issues with vector-sized
2023-02-16 19:48:10 +0100 <jade[m]> specifically trying to use fromTuple
2023-02-16 19:48:27 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-02-16 19:49:32 +0100opticblast(~Thunderbi@172.58.82.191)
2023-02-16 19:50:15 +0100 <jade[m]> nvm I think I'm just stupid
2023-02-16 19:50:44 +0100trev(~trev@user/trev) (Remote host closed the connection)
2023-02-16 19:51:46 +0100Cale(~cale@2605:8d80:6a1:7608:a139:9a62:b1d5:76a4)
2023-02-16 19:55:55 +0100codaraxis(~codaraxis@user/codaraxis)
2023-02-16 19:56:08 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-02-16 19:57:20 +0100phma_(~phma@2001:5b0:211c:dd68:d177:f289:9796:1bf1)
2023-02-16 19:58:30 +0100phma(~phma@host-67-44-208-11.hnremote.net) (Read error: Connection reset by peer)
2023-02-16 19:59:00 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 255 seconds)
2023-02-16 20:04:03 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.8)
2023-02-16 20:04:17 +0100remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 265 seconds)
2023-02-16 20:06:50 +0100 <sclv> desantra: the cabal file for the sublib has the same package name as the cabal file for the main executable. package names should be unique.
2023-02-16 20:07:22 +0100 <sclv> alternately you can structure your project to have a single package which has both a library and executable stanza
2023-02-16 20:10:53 +0100remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz)
2023-02-16 20:11:49 +0100cheater_(~Username@user/cheater)
2023-02-16 20:13:35 +0100sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2023-02-16 20:13:58 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-02-16 20:14:04 +0100cheater_cheater
2023-02-16 20:14:56 +0100falafel(~falafel@2607:fb91:143f:e47f:120b:3c15:bd64:3713)
2023-02-16 20:15:39 +0100sefidel(~sefidel@user/sefidel)
2023-02-16 20:16:16 +0100 <desantra> sclv: ah right, changing it to `graphics` helped. However now it's complaining about not being able to resolve deps. https://bpa.st/ZLUSY/raw
2023-02-16 20:16:48 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-16 20:17:10 +0100 <desantra> oh, I had to remove the explicit naming of the library component in `graphics.cabal`
2023-02-16 20:21:57 +0100rlj(~rlj@94.234.101.197) (Quit: Client closed)
2023-02-16 20:22:00 +0100 <desantra> exit
2023-02-16 20:22:08 +0100desantra(~skykanin@user/skykanin) (Quit: WeeChat 3.8)
2023-02-16 20:23:40 +0100sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2023-02-16 20:24:04 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.8)
2023-02-16 20:25:36 +0100sefidel(~sefidel@user/sefidel)
2023-02-16 20:28:21 +0100sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2023-02-16 20:30:40 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-02-16 20:34:04 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-02-16 20:35:08 +0100thongpv(~thongpv87@2402:9d80:36e:115e:bd33:9174:2078:fce6) (Read error: Connection reset by peer)
2023-02-16 20:36:05 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-16 20:38:36 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds)
2023-02-16 20:39:13 +0100sefidel(~sefidel@user/sefidel)
2023-02-16 20:39:16 +0100lyle(~lyle@104.246.145.237) (Quit: WeeChat 3.8)
2023-02-16 20:40:24 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-02-16 20:40:29 +0100andrewboltachev(~andrey@178.141.125.176)
2023-02-16 20:44:05 +0100mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-02-16 20:49:17 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-02-16 20:50:31 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-02-16 20:52:31 +0100sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2023-02-16 20:52:33 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-02-16 20:52:33 +0100Square(~Square4@user/square) (Ping timeout: 255 seconds)
2023-02-16 20:53:20 +0100 <azure_vermilion> why does Data.Map.fromListWith have type (a -> a -> a) -> [(k,a)] -> Map k a and not (a -> b -> b) -> a -> [(k,b)] in the vein of foldr
2023-02-16 20:54:09 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc)
2023-02-16 20:54:32 +0100sefidel(~sefidel@user/sefidel)
2023-02-16 20:55:43 +0100 <mauke> where are you going to get a 'b' from?
2023-02-16 20:56:14 +0100 <sclv> the 'b' factory
2023-02-16 20:56:45 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-02-16 20:56:58 +0100 <mauke> oh, it's a partial signature
2023-02-16 20:57:57 +0100 <mauke> azure_vermilion: how are you going to combine two 'b's into one if the combining function only takes one 'b'?
2023-02-16 20:59:18 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-02-16 21:01:05 +0100 <azure_vermilion> I messed that type signature up badly
2023-02-16 21:01:08 +0100ravamrt1(~ravamrt@112.134.195.104) (Quit: Leaving.)
2023-02-16 21:01:24 +0100zer0bitz(~zer0bitz@2001:2003:f443:d600:8417:935c:cb32:ee43) (Read error: Connection reset by peer)
2023-02-16 21:01:52 +0100 <azure_vermilion> why does Data.Map.fromListWith have type (a -> a -> a) -> [(k,a)] -> Map k a and not (a -> b -> b) -> a -> [(k,a)] -> Map k b in the vein of foldr
2023-02-16 21:02:04 +0100 <azure_vermilion> does that make more sense?
2023-02-16 21:02:41 +0100 <mauke> no, that's back to my first question
2023-02-16 21:02:44 +0100 <azure_vermilion> no it doesn't
2023-02-16 21:02:46 +0100 <mauke> where are you going to get a 'b' from?
2023-02-16 21:03:09 +0100 <azure_vermilion> why does Data.Map.fromListWith have type (a -> a -> a) -> [(k,a)] -> Map k a and not (a -> b -> b) -> b -> [(k,a)] -> Map k b in the vein of foldr
2023-02-16 21:03:13 +0100 <azure_vermilion> i think that's it
2023-02-16 21:07:17 +0100 <mauke> I can't think of a way to express one in terms of the other
2023-02-16 21:08:18 +0100freeside(~mengwong@103.252.202.170)
2023-02-16 21:09:39 +0100 <cpli> mauke as long as you assume some b
2023-02-16 21:10:08 +0100 <mauke> that's the trouble
2023-02-16 21:11:15 +0100 <cpli> well, i also just don't get why you would want to include some third type
2023-02-16 21:12:15 +0100 <cpli> you're generating a map from k to a
2023-02-16 21:12:48 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-16 21:13:34 +0100 <azure_vermilion> because if you're building up a list of values of duplicate keys like fromListWith is meant for it would be nice to use (:) as a combining function but it has type a -> [a] -> [a]
2023-02-16 21:14:06 +0100 <azure_vermilion> so you have to put all your values in lists and then use (++)
2023-02-16 21:17:02 +0100kupper(~kupper@2a02:ab88:7609:4700:31a8:9d0c:ebbe:24d9)
2023-02-16 21:17:22 +0100 <kupper> hi, I would like to learn to read the core language, where could I do that? I can't find it in the latest GHC User's guide
2023-02-16 21:18:43 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-02-16 21:19:58 +0100 <kupper> nvm, someone sent me this https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/core-syn-type
2023-02-16 21:20:27 +0100 <azure_vermilion> Duh, I just noticed Map has an actual foldr function in the Folds section with the type I gave ha ha
2023-02-16 21:21:21 +0100 <azure_vermilion> oh no it doesn't
2023-02-16 21:21:27 +0100 <azure_vermilion> I can't get anything right today
2023-02-16 21:25:16 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-02-16 21:26:01 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-02-16 21:29:03 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow)
2023-02-16 21:32:56 +0100Feuermagier_(~Feuermagi@user/feuermagier)
2023-02-16 21:32:58 +0100Cale(~cale@2605:8d80:6a1:7608:a139:9a62:b1d5:76a4) (Read error: Connection reset by peer)
2023-02-16 21:33:43 +0100mizlan(~mizlan@2607:f010:2a7:1005:d198:988f:e4be:1762)
2023-02-16 21:35:38 +0100Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 255 seconds)
2023-02-16 21:35:43 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Remote host closed the connection)
2023-02-16 21:37:14 +0100polyphem(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17)
2023-02-16 21:37:39 +0100Feuermagier_(~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds)
2023-02-16 21:40:00 +0100codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 248 seconds)
2023-02-16 21:40:21 +0100notzmv(~zmv@user/notzmv)
2023-02-16 21:41:22 +0100pavonia(~user@user/siracusa)
2023-02-16 21:49:40 +0100biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-02-16 21:50:33 +0100beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2023-02-16 21:51:02 +0100Cale(~cale@2605:8d80:6a0:d61b:a139:9a62:b1d5:76a4)
2023-02-16 21:54:58 +0100biberu(~biberu@user/biberu)
2023-02-16 21:56:43 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
2023-02-16 21:57:42 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-02-16 22:00:16 +0100 <monochrom> It has both foldr (which access only values) and foldrWithKey.
2023-02-16 22:02:06 +0100mizlan(~mizlan@2607:f010:2a7:1005:d198:988f:e4be:1762) (Quit: mizlan)
2023-02-16 22:07:22 +0100dcoutts_(~duncan@host86-167-90-212.range86-167.btcentralplus.com)
2023-02-16 22:10:07 +0100npmania1(~Thunderbi@121.128.226.31)
2023-02-16 22:10:24 +0100npmania(~Thunderbi@45.8.223.218) (Ping timeout: 255 seconds)
2023-02-16 22:10:25 +0100npmania1npmania
2023-02-16 22:11:00 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-02-16 22:12:18 +0100malte(~malte@mal.tc)
2023-02-16 22:13:51 +0100npmania1(~Thunderbi@45.8.223.248)
2023-02-16 22:14:39 +0100npmania(~Thunderbi@121.128.226.31) (Ping timeout: 248 seconds)
2023-02-16 22:14:40 +0100npmania1npmania
2023-02-16 22:21:19 +0100 <Inst> ummm, can i have a bit of help with cabal?
2023-02-16 22:21:37 +0100 <Inst> I got monomer installed, but unfortunately cabal seems to have installed it as a binary, instead of as a library
2023-02-16 22:22:13 +0100 <Inst> ack, --libed it
2023-02-16 22:22:27 +0100 <geekosaur> that's what it does. use `cabal install --lib` for an environment file you can get at with ghci, or use `cabal repl -b monomer` for a better behaved version thereof
2023-02-16 22:27:56 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-02-16 22:29:25 +0100npmania(~Thunderbi@45.8.223.248) (Ping timeout: 246 seconds)
2023-02-16 22:29:39 +0100npmania(~Thunderbi@138.199.21.246)
2023-02-16 22:32:30 +0100npmania1(~Thunderbi@217.138.252.249)
2023-02-16 22:33:19 +0100Cale(~cale@2605:8d80:6a0:d61b:a139:9a62:b1d5:76a4) (Read error: Connection reset by peer)
2023-02-16 22:33:58 +0100npmania(~Thunderbi@138.199.21.246) (Ping timeout: 246 seconds)
2023-02-16 22:33:58 +0100npmania1npmania
2023-02-16 22:34:50 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2023-02-16 22:35:04 +0100JimL(~quassel@89-162-26-217.fiber.signal.no) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-02-16 22:35:26 +0100JimL(~quassel@89-162-26-217.fiber.signal.no)
2023-02-16 22:36:14 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-02-16 22:36:34 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-16 22:40:53 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds)
2023-02-16 22:41:21 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-02-16 22:41:56 +0100 <Inst> what does cabal repl -b monomer do?
2023-02-16 22:42:26 +0100gmg(~user@user/gehmehgeh)
2023-02-16 22:42:39 +0100 <geekosaur> starts a ghci using one or more packages from cabal's store, in this case monomer
2023-02-16 22:42:59 +0100 <geekosaur> so you don't have to install it "globally" and potentially make a mess later
2023-02-16 22:44:54 +0100 <geekosaur> there are very good reasons why cabal doesn't install libraries globally any more, and only fakes it with --lib. look up "cabal hell" in a search engine for examples
2023-02-16 22:45:48 +0100yoneda(~mike@193.206.102.122) (Quit: leaving)
2023-02-16 22:49:43 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-02-16 22:50:14 +0100Cale(~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
2023-02-16 22:51:30 +0100codaraxis(~codaraxis@user/codaraxis)
2023-02-16 22:54:57 +0100nihonium(~nihonium@46.148.105.76) (Ping timeout: 255 seconds)
2023-02-16 22:55:50 +0100falafel(~falafel@2607:fb91:143f:e47f:120b:3c15:bd64:3713) (Ping timeout: 260 seconds)
2023-02-16 22:55:50 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-16 22:57:31 +0100jespada(~jespada@77.98.179.16)
2023-02-16 22:59:20 +0100jinsun(~jinsun@user/jinsun) (Ping timeout: 260 seconds)
2023-02-16 23:02:38 +0100andrewboltachev(~andrey@178.141.125.176) (Quit: Leaving.)
2023-02-16 23:04:36 +0100jinsun(~jinsun@user/jinsun)
2023-02-16 23:05:41 +0100 <Inst> i've heard of it
2023-02-16 23:13:38 +0100michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2023-02-16 23:14:19 +0100 <AWizzArd> Inside a `nix-shell -p cabal-install ghc` I try to run `cabal init foo`. I answer the questions, and then I get: fd:13: hGetContents: invalid argument (invalid byte sequence) Can this somehow be connected to my locale settings (which are de_DE.UTF8)?
2023-02-16 23:15:10 +0100 <sclv> i suspect, yes
2023-02-16 23:15:29 +0100 <sclv> i wonder if we can patch cabal in some way to fix this
2023-02-16 23:17:19 +0100 <AWizzArd> sclv: when you run `locale` then what is your LC_ALL setting?
2023-02-16 23:17:37 +0100 <sm> I think so (I have been meaning to try similar for ever). More ideally it would patched (to show a useful error message) somewhere lower (in base or the RTS)
2023-02-16 23:18:15 +0100 <jackdk> almost certainly; https://hackage.haskell.org/package/with-utf8 is designed for this but might not be usable within cabal-install for bootstrapping reasons
2023-02-16 23:18:45 +0100 <sm> AWizzArd: that locale would normally prevent this error, but nix sets locale in a different way
2023-02-16 23:18:51 +0100 <sm> are you sure you're setting it the nix way
2023-02-16 23:19:36 +0100 <AWizzArd> sm: what would be the nix way?
2023-02-16 23:19:55 +0100 <sm> https://github.com/simonmichael/hledger/issues/1033#issuecomment-1062506027 > 2
2023-02-16 23:21:24 +0100 <sm> $LOCALE_ARCHIVE
2023-02-16 23:22:03 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-02-16 23:22:51 +0100 <AWizzArd> sm: I see
2023-02-16 23:29:26 +0100 <AWizzArd> sm: yes, I had to export this LOCAL_ARCHIVE var. This works in the nix shell.
2023-02-16 23:29:34 +0100 <AWizzArd> Thanks for the pointer.
2023-02-16 23:29:54 +0100 <sm> np
2023-02-16 23:30:06 +0100 <sm> ideally this would be in the Haskell FAQ
2023-02-16 23:32:33 +0100 <Inst> ugh, this is bad, monomer is bugging out, guess i should switch to windows subsystem for linux
2023-02-16 23:32:38 +0100 <Inst> but tbh it sucks when you don't know FRP
2023-02-16 23:37:57 +0100beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Quit: beteigeuze)
2023-02-16 23:41:21 +0100 <sm> congrats on getting it installed. I wonder which FRP system you're using
2023-02-16 23:41:43 +0100falafel(~falafel@2607:fb91:143f:e47f:1ba3:5839:e59a:9486)
2023-02-16 23:44:12 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-02-16 23:52:29 +0100Everything(~Everythin@46.185.124.65)
2023-02-16 23:55:41 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2023-02-16 23:58:05 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)