Home liberachat/#haskell: Logs Calendar

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

00:00:22 × mauke quits (~mauke@user/mauke) (Ping timeout: 276 seconds)
00:00:22 mauke_ is now known as mauke
00:01:23 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
00:02:18 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
00:04:42 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:11:12 × codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 248 seconds)
00:18:11 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 264 seconds)
00:20:48 janus joins (janus@anubis.0x90.dk)
00:21:02 <janus> what was the name of that program that would generate bounds based on what you actually tested?
00:21:07 <janus> it's a recent project
00:24:19 <jackdk> Not sure, I only know of `cabal gen-bounds`
00:27:52 <monochrom> I think we can find it again on discourse. It came up in a thread there.
00:28:26 <monochrom> Perhaps this: https://discourse.haskell.org/t/don-t-edit-dependency-bounds-manually-with-this-ci-setup/5539
00:29:40 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:29:40 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:29:40 wroathe joins (~wroathe@user/wroathe)
00:30:50 <janus> aah yes! thank you monochrom!
00:31:34 <janus> cabal also has --prefer-oldest which is kinda in the same vein
00:33:28 jargon joins (~jargon@174-22-213-236.phnx.qwest.net)
00:41:05 × joeyh_ quits (joeyh@2600:3c03::f03c:91ff:fe73:b0d2) (Quit: ZNC 1.8.2+deb2+b5 - https://znc.in)
00:45:25 × Vq quits (~vq@90-227-192-206-no77.tbcn.telia.com) (Ping timeout: 240 seconds)
00:47:36 Vq joins (~vq@90-227-192-206-no77.tbcn.telia.com)
00:49:15 <Axman6> dsal: don't forget that sqlite doesn't enforce column types (apparently a careful reading of the SQL spec requires that it's not enforced) so it's possible there's data in there which is stored as text in an int column - you probably need to take a look at the sqlite file
00:51:08 joeyh joins (~joeyh@kitenet.net)
00:53:17 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
00:54:40 chanceyan joins (~chanceyan@user/chanceyan)
01:01:44 × acidjnk quits (~acidjnk@p200300d6e715c413dd3a93b6f19e5fad.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
01:10:31 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:29 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
01:14:36 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:14:45 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
01:16:39 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:22:02 acidjnk joins (~acidjnk@p200300d6e715c413dd3a93b6f19e5fad.dip0.t-ipconnect.de)
01:24:48 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
01:29:25 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
01:47:05 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 240 seconds)
01:48:38 <dsal> Axman6: yeah, that's what I'm doing. It's not clear to me how it might consider this number text.
01:51:41 <Axman6> I wondered if the Integer instance might check whether the value fits in an int64 or not and use a string instead, but it doesn't it just uses fromIntegral, which is not great
01:53:25 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
01:58:48 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
02:03:12 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Ping timeout: 248 seconds)
02:03:55 × pyook quits (~puke@user/puke) (Remote host closed the connection)
02:04:12 pyook joins (~puke@user/puke)
02:07:07 × gurkenglas quits (~gurkengla@dynamic-046-114-177-195.46.114.pool.telefonica.de) (Ping timeout: 276 seconds)
02:12:25 × td_ quits (~td@i53870908.versanet.de) (Ping timeout: 240 seconds)
02:14:34 td_ joins (~td@i53870905.versanet.de)
02:18:45 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 240 seconds)
02:32:32 <dsal> Hopefully this isn't going to take me a while. I just finished up work stuff so I'm going to look at my dog for a while before fixing this problem. :)
02:33:44 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
02:34:26 × wroathe quits (~wroathe@user/wroathe) (Read error: Connection reset by peer)
02:35:37 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
02:35:37 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
02:35:37 wroathe joins (~wroathe@user/wroathe)
02:37:26 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:39:45 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
02:42:44 <Axman6> non-rubber doggo debugging
02:44:16 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 248 seconds)
02:45:26 nate1 joins (~nate@98.45.169.16)
02:48:43 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
02:50:07 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
02:52:54 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
02:53:54 × srk quits (~sorki@user/srk) (Remote host closed the connection)
02:54:13 srk joins (~sorki@user/srk)
02:56:52 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:56:52 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:56:52 finn_elija is now known as FinnElija
02:58:52 irrgit_ joins (~irrgit@89.47.234.74)
02:59:19 × irrgit quits (~irrgit@86.106.90.226) (Read error: Connection reset by peer)
03:00:47 <sm> wish I had a debugging dog!
03:02:58 × jero98772 quits (~jero98772@2800:484:1d84:9000::1) (Remote host closed the connection)
03:03:14 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
03:08:12 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
03:08:18 <jackdk> All I have is an updog
03:12:43 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 265 seconds)
03:21:57 vglfr joins (~vglfr@37.73.75.47)
03:27:20 justsomeguy joins (~justsomeg@user/justsomeguy)
03:48:48 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
03:59:29 × hochata quits (~user@user/hochata) (Read error: Connection reset by peer)
04:00:26 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
04:05:25 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 276 seconds)
04:05:43 NiceBird joins (~NiceBird@185.133.111.196)
04:11:43 × joeyh quits (~joeyh@kitenet.net) (Ping timeout: 260 seconds)
04:12:14 joeyh joins (~joeyh@kitenet.net)
04:13:13 × tureba quits (~tureba@tureba.org) (Ping timeout: 276 seconds)
04:26:24 tureba joins (~tureba@tureba.org)
04:29:59 codaraxis joins (~codaraxis@user/codaraxis)
04:44:14 jwiegley joins (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net)
04:46:50 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
04:46:51 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
04:46:51 wroathe joins (~wroathe@user/wroathe)
04:47:17 oac joins (~oac@50-93-248-155.fttp.usinternet.com)
04:49:17 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
04:52:35 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
04:52:46 × oac quits (~oac@50-93-248-155.fttp.usinternet.com) (Quit: oac)
04:53:33 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 246 seconds)
04:59:22 phma_ joins (~phma@2001:5b0:211b:b518:b882:9716:7840:b9e6)
04:59:38 × phma quits (phma@2001:5b0:210f:2778:fc72:e59d:c1c3:921c) (Read error: Connection reset by peer)
05:03:48 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 255 seconds)
05:15:16 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
05:23:46 tr_ev joins (~trev@user/trev)
05:25:14 × tr_ev quits (~trev@user/trev) (Client Quit)
05:26:52 tr_ev joins (~trev@user/trev)
05:27:22 × jargon quits (~jargon@174-22-213-236.phnx.qwest.net) (Remote host closed the connection)
05:31:27 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
05:32:56 <dsal> Yay, I fixed the terrible bug in that awful sqlite library. I was using it incorrectly.
05:33:33 <dsal> The columns and the fields I was trying to stuff them into weren't in the same order.
05:35:25 × Square quits (~Square4@user/square) (Ping timeout: 240 seconds)
05:36:35 slack1256 joins (~slack1256@181.43.89.191)
05:36:50 <slack1256> Is there a way to upload by hand the haddock docs for a uploaded package?
05:39:33 <jackdk> slack1256: cabal upload -d <other args>
05:39:44 <jackdk> build docs using cabal haddock --haddock-for-hackage
05:41:34 <slack1256> It really is 2023
05:41:40 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
05:46:07 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
06:00:05 × m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 240 seconds)
06:00:26 m5zs7k joins (aquares@web10.mydevil.net)
06:02:48 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
06:03:11 <slack1256> Check this out https://hackage.haskell.org/package/data-forced-0.2.0.0 . CBV semantics with unlifted values !
06:03:43 × dsrt^ quits (~dsrt@c-76-105-96-13.hsd1.ga.comcast.net) (Ping timeout: 276 seconds)
06:06:22 × slack1256 quits (~slack1256@181.43.89.191) (Remote host closed the connection)
06:09:52 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:24:02 thegeekinside joins (~thegeekin@189.217.90.138)
06:26:40 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds)
06:31:55 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
06:32:18 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
06:32:59 thegeekinside joins (~thegeekin@189.217.90.138)
06:35:23 × tr_ev quits (~trev@user/trev) (Quit: tr_ev)
06:36:05 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 240 seconds)
06:36:08 mncheck joins (~mncheck@193.224.205.254)
06:36:40 tr_ev joins (~trev@user/trev)
06:38:33 <[exa]> dsal: try selda?
06:39:03 kenran joins (~user@user/kenran)
06:39:08 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:45:32 tr_ev is now known as trev
06:47:32 <dsal> I've not. I've used hasql on a a project, but have mostly been fine with sqlite-simple. This is an old project that I had mostly abandoned, but turns out to be useful for me again. Probably should've written a couple more tests.
06:52:05 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
07:01:16 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
07:02:42 Bocaneri joins (~sauvin@user/Sauvin)
07:03:06 Bocaneri is now known as Guest2353
07:03:20 kmein joins (~weechat@user/kmein)
07:05:05 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 246 seconds)
07:06:39 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
07:09:10 gmg joins (~user@user/gehmehgeh)
07:10:45 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 240 seconds)
07:25:33 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds)
07:27:09 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
07:28:25 BemusedOtter joins (~BemusedOt@128.194.3.189)
07:29:08 BemusedOtter parts (~BemusedOt@128.194.3.189) ()
07:31:18 phma_ is now known as phma
07:36:57 cfricke joins (~cfricke@user/cfricke)
07:37:59 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
07:39:15 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
07:45:08 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Remote host closed the connection)
07:46:10 nate1 joins (~nate@98.45.169.16)
07:48:05 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 240 seconds)
07:49:42 cfricke joins (~cfricke@user/cfricke)
07:50:56 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
07:55:05 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
07:57:01 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:57:43 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
07:59:05 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 240 seconds)
08:04:05 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
08:12:59 × _xor quits (~xor@74.215.46.17) (Quit: bbiab)
08:16:58 × mikess quits (~sam@user/mikess) (Ping timeout: 276 seconds)
08:20:32 kritzefitz joins (~kritzefit@debian/kritzefitz)
08:22:38 <fendor[m]> <slack1256> "Is there a way to upload by hand..." <- yeah, with cabal upload --documentation, after you have built haddock with `cabal haddock --haddock-for-hackage`
08:23:53 mmhat joins (~mmh@p200300f1c7106e4fee086bfffe095315.dip0.t-ipconnect.de)
08:24:31 × mmhat quits (~mmh@p200300f1c7106e4fee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
08:34:42 ub1 joins (~Thunderbi@p200300ecdf114f85712b972abb9d8a7e.dip0.t-ipconnect.de)
08:34:53 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
08:35:25 × ub quits (~Thunderbi@p548c84d6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
08:36:58 ub1 is now known as ub
08:37:37 trillp joins (~trillp@69.233.98.238)
08:37:43 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:38:26 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
08:38:57 barcisz joins (~barcisz@79.191.65.29.ipv4.supernova.orange.pl)
08:40:19 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:43:31 × drdo quits (~drdo@bl7-76-103.dsl.telepac.pt) (Ping timeout: 240 seconds)
08:44:22 drdo joins (~drdo@bl7-76-103.dsl.telepac.pt)
08:44:58 × trillp quits (~trillp@69.233.98.238) (Quit: trillp)
08:45:36 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
08:45:38 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
08:46:14 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Quit: WeeChat 3.8)
08:49:08 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
08:49:45 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 240 seconds)
08:50:08 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Ping timeout: 248 seconds)
08:51:24 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
08:52:35 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
08:54:05 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
09:00:56 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:01:25 × chanceyan quits (~chanceyan@user/chanceyan) (Quit: Client closed)
09:04:31 jmdaemon joins (~jmdaemon@user/jmdaemon)
09:07:52 × barcisz quits (~barcisz@79.191.65.29.ipv4.supernova.orange.pl) (Quit: Connection closed)
09:10:23 × ft quits (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving)
09:11:31 × ub quits (~Thunderbi@p200300ecdf114f85712b972abb9d8a7e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
09:11:48 barcisz joins (~barcisz@79.191.65.29.ipv4.supernova.orange.pl)
09:12:07 ub joins (~Thunderbi@p548c84d6.dip0.t-ipconnect.de)
09:15:04 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
09:16:14 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
09:16:55 × codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
09:18:08 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
09:20:48 titibandit joins (~titibandi@user/titibandit)
09:22:34 × driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
09:23:30 driib joins (~driib@vmi931078.contaboserver.net)
09:28:11 zeenk joins (~zeenk@2a02:2f04:a307:2300::7fe)
09:36:33 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
09:40:30 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 260 seconds)
09:40:31 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 240 seconds)
09:41:20 cyphase joins (~cyphase@user/cyphase)
09:45:40 × vglfr quits (~vglfr@37.73.75.47) (Ping timeout: 265 seconds)
09:49:41 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
09:51:49 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
09:52:13 <jitrs[m]> @pl \x () -> check x sort
09:52:13 <lambdabot> (line 1, column 6):
09:52:13 <lambdabot> unexpected " "
09:52:13 <lambdabot> expecting pattern or "->"
09:53:51 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
10:03:04 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 265 seconds)
10:03:48 marinelli joins (~marinelli@gateway/tor-sasl/marinelli)
10:09:56 <ski> const . (`check` sort)
10:11:23 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 248 seconds)
10:15:23 vglfr joins (~vglfr@37.73.75.47)
10:15:30 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
10:26:16 segfaultfizzbuzz joins (~segfaultf@108.211.201.53)
10:28:42 gurkenglas joins (~gurkengla@dynamic-046-114-177-195.46.114.pool.telefonica.de)
10:30:25 × segfaultfizzbuzz quits (~segfaultf@108.211.201.53) (Ping timeout: 240 seconds)
10:39:01 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:80f2:1b63:4085:5e0a) (Ping timeout: 240 seconds)
10:39:53 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
10:41:09 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
10:44:50 akegalj joins (~akegalj@156-230.dsl.iskon.hr)
10:49:41 cheater_ joins (~Username@user/cheater)
10:51:45 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
10:51:47 cheater_ is now known as cheater
10:59:55 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
11:01:33 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
11:01:45 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
11:02:51 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
11:08:55 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
11:13:05 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
11:13:55 <kaol> What's the mechanism that makes "print Nothing" (for example) not complain about not knowing what "a" in Maybe a is?
11:15:16 <[exa]> kaol: likely defaulting
11:15:36 <geekosaur> look at ExtendedDefaultRules
11:16:05 <geekosaur> iirc specifically ghci uses defaulting to assume () as the missing type
11:16:15 <[exa]> kaol: a similar thing happens if you do say `(read.show) 5`, it assumes that you want to read a ()
11:19:05 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
11:21:46 marinelli parts (~marinelli@gateway/tor-sasl/marinelli) ()
11:22:19 marinelli[m] parts (~marinelli@2001:470:69fc:105::2d8) ()
11:22:28 cheater joins (~Username@user/cheater)
11:47:41 nate1 joins (~nate@98.45.169.16)
11:53:00 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds)
12:03:47 <merijn> I don't suppose anyone can give me a pointer on methods for computing partial derivatives of stochastic functions that doesn't involve me studying stochastic calculus first? :p
12:04:29 × zeenk quits (~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!)
12:11:46 <[exa]> merijn: what precise kind of stochastic functions?
12:12:07 <merijn> [exa]: effectively it's a monte carlo sim
12:12:39 <merijn> So I have a blackbox monte carlo sim with N inputs and would like to compute partial derivatives for said inputs
12:12:47 <[exa]> so you have formulas that have a few variables that get random values and you want your partial derivative to be a distribution, right?
12:13:04 <[exa]> ah you want it numerically
12:13:16 <[exa]> any assumptions about the blackbox?
12:13:27 <merijn> [exa]: I think numerically is the only thing that can be done in this setting
12:14:13 <merijn> [exa]: Not really other than "given a specific set of inputs I would expect outputs to be a normal distribution around the average"
12:14:28 <[exa]> does the blackbox include its own randomness or is it deterministic?
12:16:01 <merijn> [exa]: It's a monte carlo simulation, so the only randomness is inside the black box. I suppose that alternately you could model it as a non-stochastic function by considering "the mean output over N iterations" as non-stochastic value
12:16:06 <[exa]> anyway the general method is 1] guess the neighborhood size 2] generate output samples for the neighborhood 3] make a regression 4] if R^2 is bad, either it's not differentiable or your neighborhood is too big
12:16:12 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:16:50 <[exa]> ah it's this kind of problem, that would give you a regression over distributions
12:17:49 <[exa]> ._.
12:19:03 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
12:25:02 <kenran> I'm using lens in a GHC 8.10.7 application, together with DuplicateRecordFields and thus short accessor names. Is there a way "around" shadowing warnings when using the same names as variables, without disabling the warning altogether? Like, is it "usual" to just not export the accessors in that case (but they could still be shadowed in the same module ofc)?
12:25:34 <merijn> kenran: -XNoFieldSelectors?
12:25:46 <merijn> But then you can't use them as functions anymore, so that might not be useful :p
12:26:40 <kenran> merijn: I don't want to use them as functions, as they most often clash anyway. I didn't know about this extension, thanks! Let me check it out :)
12:27:04 <merijn> kenran: Right, that's exactly what you want then
12:27:13 <kenran> Ah
12:27:14 <merijn> oh, wait
12:27:16 <kenran> since 9.2
12:27:27 <merijn> yeah, just realised it's not in 8.10 :p
12:27:36 <merijn> That's the main reason I wasn't using it yet :p
12:30:05 × gurkenglas quits (~gurkengla@dynamic-046-114-177-195.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
12:36:00 <kenran> With a LOT of luck we're able to upgrade to GHC 9 in a couple of weeks, but 9.2 is still a *long* way to go for us
12:36:20 <kenran> mainly due to accelerate and compiling-to-categories
12:37:37 <kenran> so, I guess I'll try the "replace Foo(..) with Foo(Foo)" route then, though it might suck for sum types
12:37:49 <kenran> until we get that juicy extension
12:39:23 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
12:58:10 LenarHoyt joins (~LenarHoyt@mail.bfc-net.de)
12:58:54 LenarHoyt49 joins (~LenarHoyt@p54b50987.dip0.t-ipconnect.de)
13:00:53 LenarHoyt is now known as Guest3970
13:00:53 LenarHoyt49 is now known as LenarHoyt
13:02:48 × Guest3970 quits (~LenarHoyt@mail.bfc-net.de) (Ping timeout: 260 seconds)
13:07:02 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
13:16:46 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
13:19:29 × mncheck quits (~mncheck@193.224.205.254) (Remote host closed the connection)
13:20:32 × dtman34 quits (~dtman34@2601:447:d000:93c9:297:babc:4251:fc7a) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
13:20:47 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
13:20:53 dtman34 joins (~dtman34@2601:447:d000:93c9:3c66:2a15:f4fe:e249)
13:22:34 [_] is now known as [itchyjunk]
13:23:32 Guest94 joins (~Guest94@2409:40f4:1033:3f44:63d3:fd2e:5615:e88a)
13:24:17 × Guest94 quits (~Guest94@2409:40f4:1033:3f44:63d3:fd2e:5615:e88a) (Client Quit)
13:31:23 × LenarHoyt quits (~LenarHoyt@p54b50987.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
13:32:00 mc47 joins (~mc47@xmonad/TheMC47)
13:35:02 jero98772 joins (~jero98772@2800:484:1d84:9000::1)
13:39:29 irrgit__ joins (~irrgit@146.70.27.250)
13:39:36 × irrgit_ quits (~irrgit@89.47.234.74) (Read error: Connection reset by peer)
13:40:51 raym joins (~ray@user/raym)
13:43:45 × barcisz quits (~barcisz@79.191.65.29.ipv4.supernova.orange.pl) (Quit: Connection closed)
13:44:06 barcisz joins (~barcisz@79.191.65.29.ipv4.supernova.orange.pl)
13:45:08 grnman_ joins (~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net)
13:47:32 zilog joins (~zilog@37.218.244.251)
13:48:30 × cheater quits (~Username@user/cheater) (Ping timeout: 255 seconds)
13:48:37 cheater joins (~Username@user/cheater)
13:49:12 × barcisz quits (~barcisz@79.191.65.29.ipv4.supernova.orange.pl) (Quit: Connection closed)
13:50:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
13:54:24 fbytez parts (~uid@2001:bc8:2117:100::) (Leaving)
13:54:35 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Ping timeout: 246 seconds)
13:56:53 barcisz joins (~barcisz@79.191.65.29.ipv4.supernova.orange.pl)
14:05:31 thegeekinside joins (~thegeekin@189.217.90.138)
14:13:25 × vglfr quits (~vglfr@37.73.75.47) (Ping timeout: 256 seconds)
14:16:40 <kenran> dang... I was hunting a bug for 2h before realizing that replacing Data.Map with Data.Map.Strict fixes the problem
14:17:03 <kenran> shouldn't put a non-strict map into a TVar I guess
14:23:24 justsomeguy joins (~justsomeg@user/justsomeguy)
14:24:29 × ddellacosta quits (~ddellacos@143.244.47.83) (Quit: WeeChat 3.8)
14:25:41 × barcisz quits (~barcisz@79.191.65.29.ipv4.supernova.orange.pl) (Quit: Connection closed)
14:25:44 ddellacosta joins (~ddellacos@143.244.47.83)
14:26:00 barcisz joins (~barcisz@79.191.65.29.ipv4.supernova.orange.pl)
14:33:15 × ubert quits (~Thunderbi@p200300ecdf114f85b06c57b48694016e.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
14:33:15 ub is now known as ubert
14:33:43 ubert1 joins (~Thunderbi@p200300ecdf114fa887ef22f225e2ea1c.dip0.t-ipconnect.de)
14:40:53 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
14:41:59 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
14:42:10 shriekingnoise joins (~shrieking@186.137.175.87)
14:50:39 × kenran quits (~user@user/kenran) (Remote host closed the connection)
14:52:53 × Me-me quits (~Me-me@146.102.215.218.dyn.iprimus.net.au) (Quit: Going offline, see ya! (www.adiirc.com))
15:05:20 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
15:13:03 oac joins (~oac@50-93-248-155.fttp.usinternet.com)
15:16:46 × cheater quits (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
15:17:52 vglfr joins (~vglfr@88.155.140.234)
15:18:44 Sgeo joins (~Sgeo@user/sgeo)
15:19:13 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Remote host closed the connection)
15:19:51 <zilog> oh gosh
15:21:58 × grnman_ quits (~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
15:23:08 cheater joins (~Username@user/cheater)
15:28:31 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
15:33:12 econo joins (uid147250@user/econo)
15:33:50 × oac quits (~oac@50-93-248-155.fttp.usinternet.com) (Quit: oac)
15:34:09 oac joins (~oac@50-93-248-155.fttp.usinternet.com)
15:44:09 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
15:44:20 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:46:09 grnman_ joins (~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net)
15:46:34 × zer0bitz_ quits (~zer0bitz@2001:2003:f443:d600:1cd1:b173:147e:35a6) ()
15:49:10 zer0bitz joins (~zer0bitz@2001:2003:f443:d600:1cd1:b173:147e:35a6)
15:49:12 nate1 joins (~nate@98.45.169.16)
15:50:05 × vglfr quits (~vglfr@88.155.140.234) (Ping timeout: 240 seconds)
15:50:53 vglfr joins (~vglfr@88.155.140.234)
15:50:55 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
15:54:03 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
15:59:56 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
16:03:37 mncheck joins (~mncheck@193.224.205.254)
16:06:34 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Remote host closed the connection)
16:06:39 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
16:06:49 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
16:08:45 × thegeekinside quits (~thegeekin@189.217.90.138) (Ping timeout: 240 seconds)
16:09:42 thegeekinside joins (~thegeekin@189.217.90.138)
16:11:56 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
16:12:24 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
16:13:10 × irrgit__ quits (~irrgit@146.70.27.250) (Read error: Connection reset by peer)
16:14:30 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
16:15:36 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
16:15:59 × ryantrinkle quits (~ryantrink@2607:f00:7:c77:744b:b821:58fc:4775) (Ping timeout: 246 seconds)
16:21:04 × barcisz quits (~barcisz@79.191.65.29.ipv4.supernova.orange.pl) (Quit: Connection closed)
16:21:13 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
16:28:28 ft joins (~ft@p4fc2a88b.dip0.t-ipconnect.de)
16:32:47 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
16:33:15 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:33:55 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
16:36:49 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:40:11 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
16:44:18 <tomsmeding> @tell kenran accelerate master compiles with ghcs up to 9.6
16:44:18 <lambdabot> Consider it noted.
16:44:52 <tomsmeding> @tell kenran re non-strict stuff in a tvar: https://www.well-typed.com/blog/2020/09/nothunks/
16:44:52 <lambdabot> Consider it noted.
16:45:40 __monty__ joins (~toonn@user/toonn)
16:46:07 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
16:46:27 mikess joins (~sam@user/mikess)
16:47:41 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
16:50:38 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
17:05:20 disconnect3d joins (~disconnec@user/disconnect3d)
17:05:32 <disconnect3d> hi, how do i check the memory layout of a type in haskell?
17:05:51 <disconnect3d> specifically, i'd like to understand what is the exact layout of this type: https://github.com/crytic/echidna/blob/master/lib/Echidna/Types/Tx.hs#L60-L68
17:05:59 <disconnect3d> (a haskell newbie here)
17:07:58 <c_wraith> disconnect3d: why do you need that? (Not trying to be dismissive. The full story is just really complex, and you might not need it)
17:08:22 <disconnect3d> because i am curious ;)
17:08:33 <disconnect3d> because this project is a fuzzer, and that structure is one of the crucial point of it
17:08:55 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Remote host closed the connection)
17:09:02 <disconnect3d> and so you would want it to be efficient and do not contain e.g. padding between fields
17:09:19 <disconnect3d> tbh i doubt there is any padding here, but i would like to be able to see it in practice
17:09:44 <disconnect3d> i tried compiling with -g3 and using llvm-dwarfdump, pahole or gdb + its `ptype /o <type>` command to determine this
17:09:58 <disconnect3d> but iiuc the resulting binary and its dwarf doesn't contain info about that type
17:10:02 <c_wraith> well, first off, it's a lifted data type. a value of that type could be represented as an arbitrary thunk, or as the constructor itself
17:10:09 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
17:10:19 <disconnect3d> what is an 'arbitrary thunk'?
17:12:56 <c_wraith> Haskell doesn't have strict evaluation. It's possible for an expression to be unevaluated. GHC represents this as a thunk, which is *either* the constructor itself or a closure that will evaluate to a constructor (or fail at run time) when demanded.
17:13:41 <disconnect3d> Is it possible to ask it to be fully strict? (Afaik you can make a field strict with that bang '!' symbol)
17:14:07 <c_wraith> you can only be *fully* strict by using unlifted data types
17:14:11 <c_wraith> and that one is lifted
17:14:49 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
17:15:16 <c_wraith> (If it was unlifted, there would be some kind of annotations to that effect on the type declaration)
17:18:48 <ncf> how would that work? would you not have undefined :: Tx any more?
17:18:59 <c_wraith> ncf: correct. that would be a kind error
17:19:14 <ncf> right
17:19:36 × zilog quits (~zilog@37.218.244.251) (Quit: grass)
17:21:11 ski idly wonders how complicated it would be to tie knots with such
17:21:40 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
17:21:47 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 260 seconds)
17:21:52 <c_wraith> or maybe a levity error. I haven't played with levity much. Maybe it has distinct errors.
17:22:42 <c_wraith> disconnect3d: in any case, once you have an actual TX constructor in memory, the field layout gets more precise. There's a value header that... I honestly don't recall the size of. It's one or two words with various information used by the garbage collector and the runtime system. After that, each field gets one word.
17:23:27 <disconnect3d> "each field gets one word" - do you mean that each field is a pointer?
17:23:27 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
17:23:32 <disconnect3d> and is accessed by a pointer, or, may be?
17:23:48 <disconnect3d> (depending on how things compile or/and whether the compiler thinks to optimize or not?)
17:23:50 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
17:23:55 <c_wraith> All of those fields except the Word64 one will be pointers. On most any version of GHC you see these days, a strict field that fits in a word is automatically unboxed directly into the constructor
17:23:59 <disconnect3d> how can i "unlift" a type? any examples?
17:24:10 × oac quits (~oac@50-93-248-155.fttp.usinternet.com) (Quit: oac)
17:24:26 oac joins (~oac@50-93-248-155.fttp.usinternet.com)
17:25:39 <c_wraith> https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/primitives.html?highlight=unlifted%20data%20types#extension-UnliftedDatatypes this extension is used to create unlifted types. The documentation describes the syntax
17:26:26 <disconnect3d> I guess that won't be as easy as adding 'Unlifted' to type declaration? ;p
17:26:42 ryantrinkle joins (~ryantrink@2607:f00:7:60f7:127b:3ad2:6da3:7b8d)
17:26:43 <c_wraith> It's actually close to that easy
17:27:01 <c_wraith> Though it may cause compilation failures if anything is actually using the fact that it's lifted
17:29:53 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
17:30:27 <monochrom> Adding a new syntax "add 'Unlifted to type declarations" is penny-wise pound-foolish, and therefore the popular approach that everyone thinks up first and done in popular languages, and is a huge factor why popular languages suck.
17:31:10 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
17:31:18 <c_wraith> and just as an added note, the (W256, W256) field may be stored strictly itself, but the elements of a pair are not strict. Even though the pair is evaluated, its contents may still be unevaluated thunks
17:32:34 <monochrom> A small way to see it is that the GHC people recognize potential tensions between unlifted and lifted types and have been working hard to unify them as much as possible. The kind annotation "Unlifted Type" reflects that.
17:34:13 <c_wraith> disconnect3d: for lower-level details on thunks and the value header: https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/rts/storage/heap-objects
17:34:30 × ryantrinkle quits (~ryantrink@2607:f00:7:60f7:127b:3ad2:6da3:7b8d) (Ping timeout: 265 seconds)
17:34:43 <monochrom> Popular languages shortsightedly think that adding a new syntax is the end. No, that just begs a million semantic questions and a million unhappy answers.
17:42:55 <disconnect3d> not sure i understand the point about other languages
17:45:42 <monochrom> In short they make rash decisions. And it shows. The syntax is bloated and the semantics is shallow and self-conflicting.
17:46:12 <monochrom> In particular the syntax is bloated because "just add one more reserved word, it's easy!"
17:47:51 <monochrom> The semantics is shallow and self-conflicting because, with that kind of mindset, it is unlikely that they think of the hard questions.
17:47:55 <disconnect3d> I mean... comming from "popular languages" background, I find Haskell not so readable; it seems that there are like 100 different operators used by different libs etc.
17:48:01 <disconnect3d> but maybe its just me not understanding Haskell
17:48:12 <disconnect3d> I don't really want to start any pl-flamewar here ;p
17:48:32 <monochrom> Here is one. If someone writes a polymorphic function "f :: t -> t", may I use an unlifted type for t?
17:48:39 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
17:49:06 <disconnect3d> Probably yes? I don't know Haskell :P
17:49:19 × trev quits (~trev@user/trev) (Quit: trev)
17:49:51 <disconnect3d> I think that its easy to point flaws in any programming language tbh
17:50:01 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
17:50:10 <monochrom> No.
17:50:34 <disconnect3d> I'm not going to try to convince you
17:50:47 <monochrom> It looks like that because it has been easy to point flaws in popular languages. But then the reason is what I said.
17:50:48 trev joins (~trev@user/trev)
17:51:02 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
17:51:09 ryantrinkle joins (~ryantrink@140.174.248.64)
17:51:17 <monochrom> Finding flaws in Haskell is a bit harder, and the flaws found are a bit less important.
17:51:42 <disconnect3d> Yea... that's really subjective
17:51:44 <monochrom> One day I'm sure there will be an even better language in that sense.
17:52:10 <monochrom> Well when you are ready to quantify "easy" then you can make it more objective.
17:52:22 <disconnect3d> For example, the fact it's not easy to reason or control whether something is boxed or not may be a flaw to some ;)
17:53:01 <monochrom> That is already easy in Haskell.
17:53:33 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
17:54:20 <disconnect3d> Yea, but then people default to not think about such things and the bigger project you have the harder it may be to track inefficiencies that are a result of this
17:54:42 <disconnect3d> I may also be wrong and maybe people do think about such things
17:55:20 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
17:56:00 <disconnect3d> Anyway; thx c_wraith for some pointers
17:56:02 <[exa]> disconnect3d: it happens everynow and then and the debugging is sometimes confusing but the fixes are easy and pretty much decisive
17:56:28 <monochrom> That one is not easier in C. In fact I think the C people have given up, for large projects. Look at gtk for example. Just always take a pointer, i.e., boxed.
17:57:01 <disconnect3d> monochrom: large projects have baggage of legacy and "want to be compatible forever" kind of mantra
17:57:08 <[exa]> disconnect3d: as in, if I would choose to debug some kind of "unexpected null"-style error in python and haskell memory leak, the memory leak is going to be a happier experience
17:57:15 <disconnect3d> so i am not sure if gtk is a good example or whether its actually a good or bad lib (I just don't know)
17:57:39 <monochrom> Only the C++ people are still fighting that fight. But their solution is adding more and more versions of the "same" function.
17:57:40 jwiegley is now known as johnw`
17:58:37 <monochrom> gtk is not legacy, compared to the long history of C.
17:58:57 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Killed (NickServ (GHOST command used by johnw`!~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net)))
17:59:04 johnw` is now known as johnw
17:59:45 johnw_ joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
17:59:49 <[exa]> btw gtk is miracle of a a software engineering purity, esp. once you compare it to some other windowy toolkits out there
18:00:03 <[exa]> s/a //
18:00:18 [exa] looks at Qt's macros
18:05:01 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
18:07:33 hugo joins (znc@verdigris.lysator.liu.se)
18:09:13 Guest51 joins (~Guest51@106.51.64.60)
18:12:07 × jero98772 quits (~jero98772@2800:484:1d84:9000::1) (Ping timeout: 250 seconds)
18:13:02 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
18:13:02 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
18:13:02 wroathe joins (~wroathe@user/wroathe)
18:18:53 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
18:23:38 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Quit: WeeChat 3.8)
18:24:00 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
18:25:15 jero98772 joins (~jero98772@2800:484:1d84:9000::1)
18:26:06 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
18:29:18 Guest2353 is now known as Sauvin
18:29:45 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
18:30:41 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-59a1-cc84-c4b1-5715.rev.sfr.net)
18:44:20 × Guest51 quits (~Guest51@106.51.64.60) (Quit: Client closed)
18:46:36 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
18:57:04 gmg joins (~user@user/gehmehgeh)
18:58:27 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
19:00:29 nschoe joins (~q@2a01:e0a:8e:a190:7be1:3a97:5734:6645)
19:02:50 Guest59 joins (~Guest59@ip-78-45-2-56.bb.vodafone.cz)
19:10:12 × ddellacosta quits (~ddellacos@143.244.47.83) (Ping timeout: 265 seconds)
19:16:13 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
19:16:21 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
19:19:01 Guest59 parts (~Guest59@ip-78-45-2-56.bb.vodafone.cz) ()
19:20:25 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
19:21:01 × vglfr quits (~vglfr@88.155.140.234) (Ping timeout: 250 seconds)
19:22:14 × jero98772 quits (~jero98772@2800:484:1d84:9000::1) (Ping timeout: 246 seconds)
19:28:21 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
19:31:24 × gdd quits (~gdd@129.199.146.230) (Ping timeout: 255 seconds)
19:33:56 jero98772 joins (~jero98772@2800:484:1d84:9000::1)
19:35:22 × nschoe quits (~q@2a01:e0a:8e:a190:7be1:3a97:5734:6645) (Quit: Switching off)
19:43:34 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
19:47:08 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
19:47:39 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.8)
19:48:06 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Quit: Ping timeout (120 seconds))
19:48:28 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
19:50:42 nate1 joins (~nate@98.45.169.16)
19:55:42 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
19:59:43 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Remote host closed the connection)
20:02:37 × Unhammer quits (~Unhammer@user/unhammer) (Ping timeout: 250 seconds)
20:13:09 barcisz joins (~barcisz@79.191.65.29.ipv4.supernova.orange.pl)
20:16:51 Unhammer joins (~Unhammer@user/unhammer)
20:17:28 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:18:54 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:22:02 dtman34_ joins (~dtman34@76.156.89.180)
20:22:17 × ubert1 quits (~Thunderbi@p200300ecdf114fa887ef22f225e2ea1c.dip0.t-ipconnect.de) (Remote host closed the connection)
20:23:11 × dtman34 quits (~dtman34@2601:447:d000:93c9:3c66:2a15:f4fe:e249) (Ping timeout: 265 seconds)
20:23:40 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
20:29:27 × ystael quits (~ystael@user/ystael) (Ping timeout: 255 seconds)
20:38:59 OscarZ joins (~oscarz@95.175.104.196)
20:41:36 opticblast joins (~Thunderbi@172.58.87.44)
20:43:06 × ryantrinkle quits (~ryantrink@140.174.248.64) (Read error: Connection reset by peer)
20:43:21 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
20:43:45 mesaoptimizer joins (apotheosis@user/PapuaHardyNet)
20:44:30 × oac quits (~oac@50-93-248-155.fttp.usinternet.com) (Quit: oac)
20:44:45 oac joins (~oac@50-93-248-155.fttp.usinternet.com)
20:45:06 insidetrip joins (~nicholas@2600:8807:9103:b700:85c7:4177:b865:8650)
20:47:52 zeenk joins (~zeenk@2a02:2f0e:7900:da01:b4a3:67c4:d0e3:beb0)
20:52:03 mesaoptimizer parts (apotheosis@user/PapuaHardyNet) ()
20:52:16 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
20:52:18 zeenk2 joins (~zeenk@188.26.30.104)
20:52:26 × zeenk quits (~zeenk@2a02:2f0e:7900:da01:b4a3:67c4:d0e3:beb0) (Excess Flood)
20:55:29 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 250 seconds)
20:55:38 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
20:59:08 <insidetrip> I'm interested in trying to use curl in a haskell project I'm working on. However, because curlGetString from Network.Curl returns an IO monad, I cannot figure out a way to use the response without using unsafePerformIO. Is there a way to get the response without using unsafePerformIO?
21:00:33 <geekosaur> o.O it's doing IO, why would you expect otherwise?
21:01:00 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-59a1-cc84-c4b1-5715.rev.sfr.net) (Remote host closed the connection)
21:01:13 × kimiamania quits (~65804703@user/kimiamania) (Quit: PegeLinux)
21:01:29 <insidetrip> I don't think I did expect otherwise
21:01:33 kimiamania joins (~65804703@user/kimiamania)
21:01:40 <monochrom> I would use curlGetString like I would use getLine. How would you use getLine?
21:02:04 <geekosaur> oh, use the response. is this not knowing about >>= or <- ?
21:02:21 <insidetrip> Well, the issue is the code is wrapped in the happstack framework, so it doesn't really make sense to fight over the IO in main just to make some api calls from another server.
21:02:55 <insidetrip> I'm thinking that there's no other way other than unsafePerformIO, but I don't know all there is to know
21:03:07 <monochrom> Pretty sure happstack does not ban IO.
21:03:45 <insidetrip> well this might be where I"m getting jammed up
21:04:46 <insidetrip> because with happstack you call the serve function, which uses IO, so if you use IO within the app you're developing now you have an IO within an IO
21:05:10 <insidetrip> while it doesn't ban that, I'm not sure how to extract the response as, say a, string so I can use it elsewhere.
21:05:22 <insidetrip> at least not without using unsafePerformIO
21:05:28 <geekosaur> <-
21:05:34 <geekosaur> or >>=
21:05:57 <insidetrip> how is that different from using do notation?
21:05:59 <geekosaur> @where iotut
21:05:59 <lambdabot> https://www.vex.net/~trebla/haskell/IO.xhtml
21:06:07 <mauke> <- is part of do notation
21:06:09 <geekosaur> the first is do notation
21:06:17 <mauke> also, forget about unsafePerformIO; it doesn't do what you think it does
21:06:23 <geekosaur> ^
21:06:28 <insidetrip> exactly, which causes a mismatch in type of the function
21:06:42 <mauke> what function?
21:06:43 <insidetrip> instead of returning a ServerPart it returns an IO
21:06:48 <insidetrip> curlGetString
21:06:50 <monochrom> This is why I am still against "dive-in projects" that skip the "boring, toy program" basics.
21:07:04 <mauke> no, what is this ServerPart thing?
21:07:13 <mauke> do you have a link to the API docs?
21:07:34 <insidetrip> its a monad that contains the response that the server then sends out
21:07:53 <insidetrip> which, curl or happstack?
21:08:16 × barcisz quits (~barcisz@79.191.65.29.ipv4.supernova.orange.pl) (Quit: Connection closed)
21:08:17 <geekosaur> I'm starting to think you should just show code
21:08:24 <insidetrip> which part?
21:08:29 <mauke> whatever thing you're using that forces the ServerPart type on you
21:08:33 <insidetrip> i can pastebin the whole file
21:08:35 <mauke> ah, it's type ServerPart a = ServerPartT IO a
21:08:35 barcisz joins (~barcisz@79.191.65.29.ipv4.supernova.orange.pl)
21:08:41 <insidetrip> where do you want me to pastebin?
21:08:43 <mauke> which is an instance of MonadIO
21:08:45 <ncf> are you looking for liftIO?
21:08:47 <geekosaur> @where paste
21:08:48 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
21:08:49 <mauke> so I don't see what the problem is
21:08:55 <geekosaur> but it sounds like you want liftIO indeed
21:09:03 <insidetrip> yeah I've come across liftIO, but it didn't completely seem right
21:09:04 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:09:16 <ncf> showing some code would definitely help right now
21:09:17 <geekosaur> it's a lot more right than unsafePerformIO is
21:12:40 <insidetrip> https://paste.tomsmeding.com/CSP1BGt2
21:12:44 <monochrom> I cite Dunning-Kruger.
21:12:44 <insidetrip> that's the code
21:13:27 <ncf> liftIO $ curlGetString ...
21:13:42 × barcisz quits (~barcisz@79.191.65.29.ipv4.supernova.orange.pl) (Quit: Connection closed)
21:13:56 <insidetrip> https://paste.tomsmeding.com/Q7p7lfp1 is my compile error
21:14:07 <mauke> ah, it's from happstack-lite
21:14:21 <insidetrip> yeah, technically I'm using lite correct
21:14:25 ncf . o O ( https://www.smbc-comics.com/comic/dunning )
21:15:18 <insidetrip> are you talkinga bout this liftIO?
21:15:25 <insidetrip> https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Monad-IO-Class.html#v:liftIO
21:15:41 <ncf> yes
21:16:34 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:17:24 <mauke> for reference, the documentation is here: https://hackage.haskell.org/package/happstack-lite-7.3.8/docs/Happstack-Lite.html#v:serve
21:18:19 <ncf> alternatively you could use lift from Control.Monad.Trans.Class since the IO layer is right under the ServerPartT layer
21:18:40 <ncf> but liftIO is more explicit
21:19:05 <geekosaur> and doesn't rely on IO being right under ServerPartT
21:27:15 <insidetrip> Yeah so where can I find out more about this liftIO? How is it unwrapping the IO action without using unsafeperformio?
21:27:42 <monochrom> No, it unwraps and rewraps ServerPartT.
21:27:47 <insidetrip> ah
21:27:55 <insidetrip> cool
21:27:58 <insidetrip> how does that work? lol
21:28:18 <monochrom> Please study https://wiki.haskell.org/Typeclassopedia#Monad_transformers
21:29:00 <insidetrip> thanks
21:29:10 <monochrom> And https://en.wikibooks.org/wiki/Haskell/Monad_transformers
21:31:20 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
21:32:05 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
21:33:57 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
21:37:56 coot_ joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
21:39:47 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 264 seconds)
21:39:48 coot_ is now known as coot
21:44:22 <mauke> liftIO is wrapping the IO action in ServerPart
21:44:37 <mauke> you get a "fake unwrap" with <- in do notation
21:45:29 <hololeap> I see that there is this in the newest filepath: osp :: QuasiQuoter
21:45:36 <mauke> I say fake because its effect is local: <- gives you direct access to an unwrapped value, but in exchange your whole do-block is of the wrapped type
21:46:10 <hololeap> I'm not familiar with quasi-quoters, is there a tl;dr for how to hard-code a path as a OsPath?
21:49:13 <mauke> I can't tell from the documentation whether it is meant to be used as [osp|foobar] or [osp|"foobar"]
21:49:14 <geekosaur> [osp|/usr/local/bin/ghc]
21:50:09 <hololeap> great, thanks
21:50:20 ystael joins (~ystael@user/ystael)
21:50:44 <geekosaur> you almost never use additional quotes (the exceptions are QQing things like foreign code, see for example inline-c)
21:53:06 <hololeap> hm, I'm getting an error geekosaur
21:53:17 <hololeap> unterminated quasiquotation at end of input: libFronts = [osp|/usr/lib]
21:53:47 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:54:03 <mauke> oh, should be |], not ]
21:54:07 <geekosaur> yeh
21:54:08 <geekosaur> sorry
21:54:14 <geekosaur> I keep forgetting that
21:54:59 <hololeap> ok, no worries
21:55:02 <insidetrip> I guess what's confusing me, and why I didn't think the transformers was what I was looking for was because it still looks to me like monad transformers combine monads with other monads, so it doesn't make them disappear. So I have 2 IO actions (from serve and from curlGetString) and 1 ServerPart monad. What happens to the IO action called by curlGetString? Am I right in assuming that it unwrapps
21:55:03 <insidetrip> ServerPart, integrates curlgetString with the IO action from serve, and then rewraps ServerPart?
21:55:56 <monochrom> No one is trying to make any monad disappear.
21:56:19 <monochrom> liftIO injects IO in ServerWhateverT IO.
21:56:26 <ncf> just like return :: Monad m => a -> m a wraps a value in a trivial layer of m-effects, lift :: MonadTrans t => m a -> t m a wraps an m-computation in a trivial layer of t-effects. liftIO is an iterated version of that
21:56:28 <monochrom> s/ in / into /
21:56:58 <monochrom> Really in the same sense that you can inject integers into the rational numbers.
21:57:32 Unhammer parts (~Unhammer@user/unhammer) (WeeChat 2.3)
21:59:51 <monochrom> Bah, all these wordy "intuitive" "explanations" have zero predictive power.
22:00:27 <monochrom> When I posted the URLs to typeclassopedia and the wikibook, there was a reason I said "study".
22:00:33 <insidetrip> Yeah, sorry not understanding what you're getting at I'll just keep reading
22:00:45 <monochrom> "study" means it should take several days, for example.
22:00:52 <insidetrip> gotta get to carnegie hall somehow
22:01:12 <monochrom> And it also means you would be working out what liftIO does in the cases of, for example, ReaderT and StateT.
22:01:35 <insidetrip> i mean, that is the goal right?
22:06:54 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
22:08:05 × ystael quits (~ystael@user/ystael) (Ping timeout: 240 seconds)
22:08:09 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
22:08:20 <monochrom> s/what liftIO does/how to code up liftIO/
22:16:57 stackdroid18 joins (~stackdroi@de1.hashbang.sh)
22:17:02 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
22:17:21 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:17:24 heraldo joins (~heraldo@user/heraldo)
22:18:22 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
22:24:01 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
22:24:53 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7) (Remote host closed the connection)
22:25:44 × akegalj quits (~akegalj@156-230.dsl.iskon.hr) (Quit: leaving)
22:25:49 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
22:25:53 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
22:33:07 × heraldo quits (~heraldo@user/heraldo) (Quit: heraldo)
22:33:33 Albina_Pavlovna joins (~Albina_Pa@2603-7000-76f0-76e0-d082-4129-2dde-19a1.res6.spectrum.com)
22:34:35 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7dba:33a7:e996:fba7)
22:36:32 heraldo joins (~heraldo@user/heraldo)
22:36:44 Me-me joins (~Me-me@146.102.215.218.dyn.iprimus.net.au)
22:38:17 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:44:42 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
22:44:46 × heraldo quits (~heraldo@user/heraldo) (Quit: heraldo)
22:44:50 × oac quits (~oac@50-93-248-155.fttp.usinternet.com) (Quit: oac)
22:45:00 mesaoptimizer_ joins (apotheosis@tilde.institute)
22:45:05 × mesaoptimizer_ quits (apotheosis@tilde.institute) (Client Quit)
22:45:06 oac joins (~oac@50-93-248-155.fttp.usinternet.com)
22:45:25 × Albina_Pavlovna quits (~Albina_Pa@2603-7000-76f0-76e0-d082-4129-2dde-19a1.res6.spectrum.com) (Quit: ZZZzzz…)
22:46:25 esph joins (~weechat@user/esph)
22:49:40 × oac quits (~oac@50-93-248-155.fttp.usinternet.com) (Client Quit)
22:49:47 × acidjnk quits (~acidjnk@p200300d6e715c413dd3a93b6f19e5fad.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:51:52 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
22:54:30 × stackdroid18 quits (~stackdroi@de1.hashbang.sh) (Quit: hasta la vista... tchau!)
22:55:32 _xor joins (~xor@74.215.46.17)
22:56:51 × zeenk2 quits (~zeenk@188.26.30.104) (Quit: Konversation terminated!)
22:57:25 × NiceBird quits (~NiceBird@185.133.111.196) (Ping timeout: 240 seconds)
22:58:01 acidjnk joins (~acidjnk@p200300d6e715c4416144e158ab279f3c.dip0.t-ipconnect.de)
23:24:34 × czy quits (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
23:24:50 × insidetrip quits (~nicholas@2600:8807:9103:b700:85c7:4177:b865:8650) (Quit: WeeChat 3.8)
23:35:59 × trev quits (~trev@user/trev) (Quit: trev)
23:44:33 ystael joins (~ystael@user/ystael)
23:52:14 nate1 joins (~nate@98.45.169.16)
23:55:51 mauke_ joins (~mauke@user/mauke)
23:56:45 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
23:57:25 × mauke quits (~mauke@user/mauke) (Ping timeout: 240 seconds)
23:57:25 mauke_ is now known as mauke
23:58:55 pavonia joins (~user@user/siracusa)

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