2024/02/06

2024-02-06 00:02:06 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-02-06 00:03:09 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-06 00:04:03 +0100mechap(~mechap@user/mechap) (Ping timeout: 272 seconds)
2024-02-06 00:05:30 +0100mechap(~mechap@user/mechap)
2024-02-06 00:09:53 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-06 00:10:30 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-06 00:12:17 +0100Square(~Square@user/square) (Ping timeout: 272 seconds)
2024-02-06 00:16:03 +0100lottaquestions(~nick@2607:fa49:503d:b200:5126:8366:8f76:8d51) (Remote host closed the connection)
2024-02-06 00:16:29 +0100lottaquestions(~nick@2607:fa49:503d:b200:4163:3ce9:6b9:1e91)
2024-02-06 00:21:17 +0100zmt00(~zmt00@user/zmt00) (Quit: Leaving)
2024-02-06 00:24:15 +0100zmt00(~zmt00@user/zmt00)
2024-02-06 00:24:31 +0100acidjnk_new(~acidjnk@p200300d6e737e7151d48d69d15fdaa8c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-02-06 00:26:13 +0100mechap(~mechap@user/mechap) (Ping timeout: 272 seconds)
2024-02-06 00:27:49 +0100mechap(~mechap@user/mechap)
2024-02-06 00:27:49 +0100mechap(~mechap@user/mechap) (Client Quit)
2024-02-06 00:28:03 +0100mechap(~mechap@user/mechap)
2024-02-06 00:40:49 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-02-06 00:44:25 +0100Sgeo(~Sgeo@user/sgeo)
2024-02-06 00:49:23 +0100mud(~mud@user/kadoban)
2024-02-06 00:51:25 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 264 seconds)
2024-02-06 00:52:05 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-02-06 00:55:59 +0100santiagopim(~user@90.167.66.131) (Ping timeout: 272 seconds)
2024-02-06 00:56:32 +0100euleritian(~euleritia@dynamic-176-005-154-182.176.5.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 00:56:48 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 01:01:46 +0100ubert1(~Thunderbi@p200300ecdf1f17e69387a4a1a7bc8e21.dip0.t-ipconnect.de)
2024-02-06 01:02:57 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-02-06 01:02:57 +0100ubert(~Thunderbi@p200300ecdf1f17a2e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-02-06 01:02:57 +0100ubert1ubert
2024-02-06 01:03:42 +0100euleritian(~euleritia@dynamic-176-005-154-182.176.5.pool.telefonica.de)
2024-02-06 01:04:04 +0100euleritian(~euleritia@dynamic-176-005-154-182.176.5.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 01:04:22 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 01:11:02 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-06 01:13:33 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2024-02-06 01:19:01 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 246 seconds)
2024-02-06 01:25:04 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) (Quit: Leaving.)
2024-02-06 01:25:16 +0100Erutuon(~Erutuon@user/erutuon)
2024-02-06 01:26:38 +0100rvalue(~rvalue@user/rvalue)
2024-02-06 01:26:44 +0100mud(~mud@user/kadoban) (Quit: quit)
2024-02-06 01:27:03 +0100mud(~mud@user/kadoban)
2024-02-06 01:36:27 +0100xff0x(~xff0x@2405:6580:b080:900:626d:bbc7:8995:51b8) (Ping timeout: 260 seconds)
2024-02-06 01:38:10 +0100xff0x(~xff0x@2405:6580:b080:900:626d:bbc7:8995:51b8)
2024-02-06 01:44:51 +0100mima(~mmh@aftr-62-216-211-50.dynamic.mnet-online.de) (Ping timeout: 260 seconds)
2024-02-06 01:57:17 +0100mud(~mud@user/kadoban) (Quit: quit)
2024-02-06 02:09:46 +0100xff0x(~xff0x@2405:6580:b080:900:626d:bbc7:8995:51b8) (Ping timeout: 246 seconds)
2024-02-06 02:11:52 +0100xff0x(~xff0x@2405:6580:b080:900:b52c:33c8:5337:f03e)
2024-02-06 02:13:23 +0100justsomeguy(~justsomeg@user/justsomeguy)
2024-02-06 02:18:54 +0100JordiGH(~jordi@user/jordigh)
2024-02-06 02:30:35 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 264 seconds)
2024-02-06 02:41:43 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2024-02-06 02:41:54 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-02-06 02:43:16 +0100Lord_of_Life_Lord_of_Life
2024-02-06 02:50:43 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 256 seconds)
2024-02-06 02:52:19 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-02-06 02:56:40 +0100JordiGH(~jordi@user/jordigh)
2024-02-06 03:01:18 +0100mmhat(~mmh@p200300f1c70328ebee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
2024-02-06 03:02:35 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com)
2024-02-06 03:13:25 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 272 seconds)
2024-02-06 03:21:23 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds)
2024-02-06 03:24:29 +0100otto_s(~user@p5de2f1f9.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2024-02-06 03:26:34 +0100otto_s(~user@p5b044c4b.dip0.t-ipconnect.de)
2024-02-06 03:52:41 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 272 seconds)
2024-02-06 03:58:57 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2024-02-06 04:04:16 +0100mei(~mei@user/mei) (Ping timeout: 276 seconds)
2024-02-06 04:16:58 +0100JordiGH(~jordi@user/jordigh)
2024-02-06 04:27:01 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 276 seconds)
2024-02-06 04:35:28 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 276 seconds)
2024-02-06 04:38:58 +0100td_(~td@i53870920.versanet.de) (Ping timeout: 264 seconds)
2024-02-06 04:40:42 +0100td_(~td@i53870914.versanet.de)
2024-02-06 04:43:44 +0100rvalue(~rvalue@user/rvalue)
2024-02-06 04:45:56 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2024-02-06 04:49:51 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds)
2024-02-06 04:54:49 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-02-06 05:00:48 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com) (Quit: Leaving)
2024-02-06 05:10:49 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2024-02-06 05:12:56 +0100jle`(~jle`@2603-8001-3b02-84d4-658e-bfb3-e53b-7a11.res6.spectrum.com)
2024-02-06 05:17:13 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-02-06 05:27:16 +0100bilegeek(~bilegeek@2600:1008:b000:5ca6:a62a:d932:f340:351f)
2024-02-06 05:32:19 +0100mmohammadi9812(~mohammad@85.185.33.112)
2024-02-06 05:32:42 +0100jle`(~jle`@2603-8001-3b02-84d4-658e-bfb3-e53b-7a11.res6.spectrum.com) (Quit: WeeChat 4.2.1)
2024-02-06 05:36:13 +0100jle`(~jle`@2603-8001-3b02-84d4-658e-bfb3-e53b-7a11.res6.spectrum.com)
2024-02-06 05:45:40 +0100statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Read error: Connection reset by peer)
2024-02-06 05:45:40 +0100statusbot5(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2024-02-06 05:54:12 +0100aforemny(~aforemny@2001:9e8:6ce5:8100:8057:709d:76c5:eec)
2024-02-06 05:54:23 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-06 05:55:37 +0100aforemny_(~aforemny@2001:9e8:6cc1:3e00:6eba:7874:227:7b7c) (Ping timeout: 260 seconds)
2024-02-06 06:01:10 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-02-06 06:22:37 +0100jargon(~jargon@123.sub-174-205-225.myvzw.com)
2024-02-06 06:32:17 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
2024-02-06 06:32:52 +0100igemnace(~ian@user/igemnace)
2024-02-06 06:34:23 +0100mmohammadi9812(~mohammad@85.185.33.112) (Remote host closed the connection)
2024-02-06 06:35:44 +0100 <lockywolf> How can I set up my own hackage server?
2024-02-06 06:36:01 +0100 <lockywolf> Is there some guide?
2024-02-06 06:36:07 +0100mulk(~mulk@pd9514313.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2024-02-06 06:37:05 +0100mulk(~mulk@pd9514313.dip0.t-ipconnect.de)
2024-02-06 06:55:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-06 07:04:01 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-06 07:04:05 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-06 07:05:12 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 07:09:20 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-06 07:10:38 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 07:11:33 +0100bilegeek(~bilegeek@2600:1008:b000:5ca6:a62a:d932:f340:351f) (Quit: Leaving)
2024-02-06 07:11:39 +0100monochrom(trebla@216.138.220.146) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
2024-02-06 07:13:25 +0100echoreply(~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8)
2024-02-06 07:14:47 +0100echoreply(~echoreply@45.32.163.16)
2024-02-06 07:16:58 +0100 <[exa]> lockywolf: more of a mirror or your own package set?
2024-02-06 07:17:10 +0100 <[exa]> (anyway- https://hackage.haskell.org/package/hackage-server )
2024-02-06 07:17:14 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-02-06 07:17:53 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-02-06 07:18:18 +0100euleritian(~euleritia@dynamic-176-006-199-097.176.6.pool.telefonica.de)
2024-02-06 07:18:58 +0100 <lockywolf> there is a bug in hackage I need to fix
2024-02-06 07:19:50 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Ping timeout: 255 seconds)
2024-02-06 07:20:12 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-06 07:20:13 +0100 <[exa]> lockywolf: in the actual hackage server or in one of the packages?
2024-02-06 07:20:36 +0100 <lockywolf> what does "in one of the packages" mean?
2024-02-06 07:20:52 +0100 <[exa]> e.g. you installed a package from hackage and it has a bug, so you want to patch it
2024-02-06 07:21:02 +0100 <lockywolf> no, I need to patch the hackage server
2024-02-06 07:21:21 +0100 <lockywolf> otherwise I would have said "a bug in a haskell package"
2024-02-06 07:21:26 +0100 <[exa]> ah ok, at that point that's the `hackage-server` package. I guess they accept pull requests somewhere
2024-02-06 07:22:10 +0100zetef(~quassel@95.77.17.251)
2024-02-06 07:22:44 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-02-06 07:24:20 +0100 <lockywolf> they do, but is there a guide somewhere how to run it?
2024-02-06 07:24:28 +0100 <lockywolf> what database does it use?
2024-02-06 07:24:32 +0100 <lockywolf> which webserver?
2024-02-06 07:24:40 +0100 <lockywolf> or directory structure
2024-02-06 07:24:50 +0100monochrom(trebla@216.138.220.146)
2024-02-06 07:26:06 +0100 <[exa]> lockywolf: not really explicitly but the github readme looks like it should work
2024-02-06 07:31:47 +0100mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Ping timeout: 264 seconds)
2024-02-06 07:33:19 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1)
2024-02-06 07:36:08 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-02-06 07:36:19 +0100euleritian(~euleritia@dynamic-176-006-199-097.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 07:36:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 07:37:15 +0100pruiz(~user@user/pruiz)
2024-02-06 07:44:10 +0100bilegeek(~bilegeek@2600:1008:b000:5ca6:a62a:d932:f340:351f)
2024-02-06 07:48:23 +0100CrunchyFlakes(~CrunchyFl@146.52.130.128) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-06 07:51:48 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-02-06 07:53:20 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2024-02-06 07:57:15 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-02-06 07:57:45 +0100michalz(~michalz@185.246.207.193)
2024-02-06 07:59:22 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-06 08:01:39 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-02-06 08:01:44 +0100luna(bittin@triton.blinkenshell.org)
2024-02-06 08:05:38 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-06 08:11:02 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-06 08:11:25 +0100Luj(~Luj@2a01:e0a:5f9:9681:d6b1:fcd4:d7da:98b5) (Quit: Ping timeout (120 seconds))
2024-02-06 08:11:43 +0100Luj(~Luj@2a01:e0a:5f9:9681:8e63:773e:be95:32c0)
2024-02-06 08:14:21 +0100michalz(~michalz@185.246.207.193) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-06 08:17:13 +0100michalz(~michalz@185.246.207.222)
2024-02-06 08:18:42 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-06 08:18:45 +0100todi(~todi@p5dca5fa8.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
2024-02-06 08:19:11 +0100Flow(~none@gentoo/developer/flow)
2024-02-06 08:21:10 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-02-06 08:22:50 +0100mei(~mei@user/mei)
2024-02-06 08:23:06 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2024-02-06 08:25:13 +0100 <lisbeths> Pls show your support for #lambdacalculus an anonymous untyped community
2024-02-06 08:33:34 +0100mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net)
2024-02-06 08:35:13 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 264 seconds)
2024-02-06 08:44:32 +0100acidjnk_new(~acidjnk@p200300d6e737e717c47e0b6ac190db01.dip0.t-ipconnect.de)
2024-02-06 08:53:21 +0100xdminsy(~xdminsy@117.147.71.221)
2024-02-06 08:57:22 +0100mima(~mmh@aftr-62-216-211-243.dynamic.mnet-online.de)
2024-02-06 09:02:07 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1)
2024-02-06 09:03:36 +0100cstml(~cstml@user/cstml)
2024-02-06 09:04:23 +0100cstml(~cstml@user/cstml) (Client Quit)
2024-02-06 09:04:42 +0100cstml(~cstml@user/cstml)
2024-02-06 09:05:11 +0100CiaoSen(~Jura@2a05:5800:281:7e00:e6b9:7aff:fe80:3d03)
2024-02-06 09:07:04 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-06 09:07:17 +0100todi(~todi@p5dca5fa8.dip0.t-ipconnect.de)
2024-02-06 09:09:43 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-02-06 09:12:45 +0100luna(bittin@triton.blinkenshell.org) ()
2024-02-06 09:12:49 +0100jargon(~jargon@123.sub-174-205-225.myvzw.com) (Remote host closed the connection)
2024-02-06 09:14:08 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2024-02-06 09:19:21 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-02-06 09:20:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-06 09:22:03 +0100danse-nr3(~danse@rm-19-53-86.service.infuturo.it)
2024-02-06 09:22:05 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-06 09:22:19 +0100mobounce(~mobivme@104.28.194.106)
2024-02-06 09:26:56 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-02-06 09:27:18 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-06 09:28:02 +0100mobounce(~mobivme@104.28.194.106) (Max SendQ exceeded)
2024-02-06 09:28:40 +0100danse-nr3(~danse@rm-19-53-86.service.infuturo.it) (Remote host closed the connection)
2024-02-06 09:29:04 +0100danse-nr3(~danse@rm-19-53-86.service.infuturo.it)
2024-02-06 09:29:51 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-02-06 09:31:26 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1)
2024-02-06 09:31:28 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2024-02-06 09:31:35 +0100mobounce(~mobivme@104.28.194.106)
2024-02-06 09:31:45 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-02-06 09:33:15 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-02-06 09:40:55 +0100zetef(~quassel@95.77.17.251)
2024-02-06 09:45:13 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1)
2024-02-06 09:47:01 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2024-02-06 09:47:51 +0100danse-nr3(~danse@rm-19-53-86.service.infuturo.it) (Ping timeout: 260 seconds)
2024-02-06 09:48:15 +0100danse-nr3(~danse@rm-19-53-86.service.infuturo.it)
2024-02-06 09:52:35 +0100chele(~chele@user/chele)
2024-02-06 09:54:33 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 260 seconds)
2024-02-06 09:56:30 +0100mobivme-(~mobivme@104.28.194.104)
2024-02-06 09:56:39 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-06 09:59:35 +0100mobounce(~mobivme@104.28.194.106) (Ping timeout: 252 seconds)
2024-02-06 10:06:39 +0100 <ncf> this is getting old
2024-02-06 10:08:07 +0100xdminsy(~xdminsy@117.147.71.221) (Read error: Connection reset by peer)
2024-02-06 10:08:53 +0100cstml(~cstml@user/cstml) (Ping timeout: 256 seconds)
2024-02-06 10:09:20 +0100xdminsy(~xdminsy@117.147.71.221)
2024-02-06 10:15:26 +0100gehmehgeh(~user@user/gehmehgeh)
2024-02-06 10:16:09 +0100lortabac(~lortabac@217.110.194.173)
2024-02-06 10:17:07 +0100danse-nr3(~danse@rm-19-53-86.service.infuturo.it) (Ping timeout: 255 seconds)
2024-02-06 10:18:06 +0100danse-nr3(~danse@151.46.181.213)
2024-02-06 10:19:07 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 260 seconds)
2024-02-06 10:20:48 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-02-06 10:23:08 +0100tzh(~tzh@71.193.181.0) (Quit: zzz)
2024-02-06 10:28:58 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-06 10:29:44 +0100gehmehgeh(~user@user/gehmehgeh)
2024-02-06 10:30:23 +0100lortabac(~lortabac@217.110.194.173) (Ping timeout: 252 seconds)
2024-02-06 10:37:11 +0100Square(~Square@user/square)
2024-02-06 10:38:32 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2024-02-06 10:39:17 +0100ubert(~Thunderbi@p200300ecdf1f17e69387a4a1a7bc8e21.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-02-06 10:39:26 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-02-06 10:39:47 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-06 10:42:32 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-06 10:44:26 +0100gentauro(~gentauro@user/gentauro)
2024-02-06 10:44:26 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-02-06 10:46:53 +0100danse-nr3(~danse@151.46.181.213) (Ping timeout: 240 seconds)
2024-02-06 10:53:41 +0100danse-nr3(~danse@151.46.181.213)
2024-02-06 10:56:21 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
2024-02-06 10:58:31 +0100adam-fuks(~adam-fuks@public-gprs567556.centertel.pl)
2024-02-06 11:02:43 +0100lortabac(~lortabac@217.110.194.173)
2024-02-06 11:10:13 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:c58d:d2f7:44e:5132)
2024-02-06 11:11:28 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:c58d:d2f7:44e:5132) (Remote host closed the connection)
2024-02-06 11:16:51 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:b79d:3d5b:19c8:ce18)
2024-02-06 11:22:12 +0100Square3(~Square4@user/square)
2024-02-06 11:23:57 +0100Square3(~Square4@user/square) (Client Quit)
2024-02-06 11:24:26 +0100bilegeek(~bilegeek@2600:1008:b000:5ca6:a62a:d932:f340:351f) (Quit: Leaving)
2024-02-06 11:24:26 +0100Square3(~Square4@user/square)
2024-02-06 11:25:15 +0100Square(~Square@user/square) (Ping timeout: 256 seconds)
2024-02-06 11:32:10 +0100mmhat(~mmh@p200300f1c70328ebee086bfffe095315.dip0.t-ipconnect.de)
2024-02-06 11:34:05 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2024-02-06 11:34:22 +0100euleritian(~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de)
2024-02-06 11:40:46 +0100santiagopim(~user@90.167.66.131)
2024-02-06 11:45:58 +0100mmohammadi9812(~mohammad@85.185.33.238)
2024-02-06 11:50:12 +0100__monty__(~toonn@user/toonn)
2024-02-06 11:51:59 +0100lortabac(~lortabac@217.110.194.173) (Ping timeout: 260 seconds)
2024-02-06 11:57:33 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-06 11:58:44 +0100euleritian(~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 11:59:02 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 12:02:26 +0100zetef(~quassel@95.77.17.251)
2024-02-06 12:02:47 +0100puke(~puke@user/puke) (Ping timeout: 252 seconds)
2024-02-06 12:06:55 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 255 seconds)
2024-02-06 12:08:58 +0100mmohammadi9812(~mohammad@85.185.33.238) (Ping timeout: 246 seconds)
2024-02-06 12:12:27 +0100puke(~puke@user/puke)
2024-02-06 12:16:57 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-02-06 12:17:38 +0100euleritian(~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de)
2024-02-06 12:24:00 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-02-06 12:24:29 +0100euleritian(~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 12:24:35 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-06 12:24:47 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 12:24:47 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-02-06 12:26:14 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-06 12:26:30 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2024-02-06 12:26:35 +0100CiaoSen(~Jura@2a05:5800:281:7e00:e6b9:7aff:fe80:3d03) (Ping timeout: 256 seconds)
2024-02-06 12:27:47 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-06 12:28:13 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 12:31:42 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-02-06 12:32:02 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-06 12:32:41 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-02-06 12:33:39 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 12:40:08 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-02-06 12:49:28 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-02-06 12:50:28 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2024-02-06 12:52:48 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-06 12:53:39 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 13:06:13 +0100danse-nr3(~danse@151.46.181.213) (Ping timeout: 272 seconds)
2024-02-06 13:15:03 +0100foul_owl(~kerry@185.216.231.179) (Ping timeout: 260 seconds)
2024-02-06 13:18:15 +0100mei(~mei@user/mei) (Ping timeout: 272 seconds)
2024-02-06 13:28:16 +0100foul_owl(~kerry@174-21-148-34.tukw.qwest.net)
2024-02-06 13:29:01 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-02-06 13:29:21 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2024-02-06 13:29:37 +0100euleritian(~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de)
2024-02-06 13:33:50 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-06 13:34:33 +0100gehmehgeh(~user@user/gehmehgeh)
2024-02-06 13:35:40 +0100euleritian(~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 13:35:57 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 13:36:32 +0100danse-nr3(~danse@151.57.19.6)
2024-02-06 13:46:58 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-06 13:47:47 +0100gehmehgeh(~user@user/gehmehgeh)
2024-02-06 13:49:46 +0100 <haskellbridge> <J​ade> why is this happening:
2024-02-06 13:49:48 +0100 <haskellbridge> <J​ade> readFile "foo" >>= \x -> appendFile "foo" "lol"
2024-02-06 13:49:49 +0100 <haskellbridge> <J​ade> *** Exception: foo: withFile: resource busy (file is locked)
2024-02-06 13:50:06 +0100 <lyxia> lazy IO is happening
2024-02-06 13:50:26 +0100 <haskellbridge> <J​ade> (using `readFile'` has the same exact exception
2024-02-06 13:50:52 +0100 <lyxia> someone else is using that file
2024-02-06 13:50:59 +0100 <haskellbridge> <J​ade> nope
2024-02-06 13:51:07 +0100 <haskellbridge> <J​ade> just the same process
2024-02-06 13:51:35 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-02-06 13:51:46 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2024-02-06 13:51:52 +0100 <haskellbridge> <J​ade> they all work fine by themselves, but using `readFile "foo" >> appendFile "foo" whatever` fails
2024-02-06 13:52:04 +0100 <mauke> the readFile error is expected
2024-02-06 13:52:12 +0100euleritian(~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de)
2024-02-06 13:52:53 +0100 <haskellbridge> <J​ade> the error is from the appendFile
2024-02-06 13:52:57 +0100 <mauke> yes
2024-02-06 13:53:06 +0100 <sprout> you probably need to close the file?
2024-02-06 13:53:12 +0100 <mauke> no
2024-02-06 13:53:13 +0100 <int-e> Yes because the file is still open to facilitate lazy IO.
2024-02-06 13:53:36 +0100 <haskellbridge> <J​ade> `readFile'` uses `hGetContents'` which closes the file
2024-02-06 13:53:50 +0100 <lyxia> I just did readFile' "foo" >> appendFile "foo" "lol" and it worked. so, try that again?
2024-02-06 13:54:10 +0100 <int-e> The Haskell handle will be in a "semi-closed" state.
2024-02-06 13:54:27 +0100 <mauke> Jade: works here with readFile'
2024-02-06 13:54:44 +0100 <int-e> And readFile' doesn't do lazy IO.
2024-02-06 13:54:55 +0100igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-02-06 13:55:05 +0100 <haskellbridge> <J​ade> ... now it works too ...
2024-02-06 13:55:06 +0100 <haskellbridge> <J​ade> but I can see in my ghci history that I did that exact thing but still got the error
2024-02-06 13:55:19 +0100 <mauke> did you do it immediately after the readFile attempt?
2024-02-06 13:55:32 +0100euleritian(~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 13:55:41 +0100 <haskellbridge> <J​ade> I think so, so it might still have been semiClosed (?)
2024-02-06 13:55:51 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 13:55:58 +0100 <mauke> yeah, readFile still had the handle open
2024-02-06 13:56:08 +0100 <haskellbridge> <J​ade> that makes sense, thank you
2024-02-06 13:59:11 +0100 <haskellbridge> <i​rregularsphere> prob lazy io
2024-02-06 13:59:54 +0100 <haskellbridge> <i​rregularsphere> i remember a function that's like `lazy deepseq` but i don't remember the name
2024-02-06 14:03:23 +0100 <haskellbridge> <i​rregularsphere> actually lazy . deepseq i think
2024-02-06 14:03:30 +0100 <haskellbridge> <i​rregularsphere> yeah i forgot the exact name
2024-02-06 14:03:41 +0100 <haskellbridge> <i​rregularsphere> definitely not lazy . deepseq though
2024-02-06 14:06:58 +0100 <sprout> did you change the contents of file 'foo' meanwhile?
2024-02-06 14:07:10 +0100 <haskellbridge> <i​rregularsphere> thanks sm for posting the link (https://www.fpcomplete.com/haskell/tutorial/all-about-strictness/) it's `force`
2024-02-06 14:07:11 +0100adam-fuks(~adam-fuks@public-gprs567556.centertel.pl) (Read error: Connection reset by peer)
2024-02-06 14:07:27 +0100 <sprout> when you make file foo empty it might just close the file immediately after a read
2024-02-06 14:07:34 +0100sproutjust guessing here
2024-02-06 14:08:09 +0100 <haskellbridge> <i​rregularsphere> i think he wants to read a file, append with something, write to file
2024-02-06 14:10:12 +0100 <haskellbridge> <i​rregularsphere> yea NFData ain't helping this time
2024-02-06 14:10:17 +0100 <haskellbridge> <i​rregularsphere> just do bangpatterns ig
2024-02-06 14:10:36 +0100 <haskellbridge> <i​rregularsphere> i'm clueless at this point sorry for the vacuous advice
2024-02-06 14:11:53 +0100igemnace(~ian@user/igemnace)
2024-02-06 14:14:16 +0100mobivme-(~mobivme@104.28.194.104) (Remote host closed the connection)
2024-02-06 14:14:51 +0100 <danse-nr3> i wrote this github.com/danse/prototypes/blob/master/Prototypes.hs#L20 long time ago when i had a similar problem. There could be a simpler solution
2024-02-06 14:15:44 +0100 <tomsmeding> danse-nr3: for lines 22-24 one has readFile' now since ghc 9
2024-02-06 14:15:51 +0100mobivme(~mobivme@104.28.194.104)
2024-02-06 14:15:52 +0100mobivme(~mobivme@104.28.194.104) (Changing host)
2024-02-06 14:15:52 +0100mobivme(~mobivme@user/mobivme)
2024-02-06 14:15:58 +0100 <tomsmeding> and 25-28 looks like writeFile?
2024-02-06 14:16:42 +0100 <danse-nr3> not sure whether i already had readFile and writeFile at the times, but reading and writing were stepping on each other's feet. Some day i will try again, thanks
2024-02-06 14:18:50 +0100 <danse-nr3> oh had not noticed the '
2024-02-06 14:18:57 +0100 <tomsmeding> yes the ' is essential
2024-02-06 14:19:02 +0100 <danse-nr3> yeah possibly readFile' is all that is needed now
2024-02-06 14:19:06 +0100 <tomsmeding> and is there since ghc 9
2024-02-06 14:24:19 +0100mmohammadi9812(~mohammad@85.185.32.173)
2024-02-06 14:27:51 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-02-06 14:28:32 +0100mobivme(~mobivme@user/mobivme) (Ping timeout: 252 seconds)
2024-02-06 14:29:11 +0100mobivme(~mobivme@130.105.162.31)
2024-02-06 14:31:17 +0100mmohammadi9812(~mohammad@85.185.32.173) (Ping timeout: 252 seconds)
2024-02-06 14:32:02 +0100euleritian(~euleritia@dynamic-176-002-146-101.176.2.pool.telefonica.de)
2024-02-06 14:38:35 +0100euleritian(~euleritia@dynamic-176-002-146-101.176.2.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 14:38:42 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-02-06 14:38:52 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 14:40:18 +0100underlap(~underlap@50.224.125.91.dyn.plus.net)
2024-02-06 14:43:45 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-02-06 14:44:17 +0100euleritian(~euleritia@176.2.146.101)
2024-02-06 14:44:39 +0100euleritian(~euleritia@176.2.146.101) (Read error: Connection reset by peer)
2024-02-06 14:44:57 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 14:56:34 +0100adam-fuks(~adam-fuks@public-gprs567556.centertel.pl)
2024-02-06 14:56:54 +0100 <underlap> I'm trying to understand type inference in Haskell. The wiki page (https://wiki.haskell.org/Type_inference|) talks only about inferring concrete types. But sometimes non-concrete types are inferred. For example, if `f :: Num a => a -> a`, then `map f :: Num a => [a] -> [a]`, so the compiler has inferred the type of `map f` without any concrete
2024-02-06 14:56:55 +0100 <underlap> types being involved. Does anyone know of a better explanation of type inference in Haskell? In searching, I found some pretty deep/impenetrable papers, but not much else.
2024-02-06 15:00:08 +0100mobivme(~mobivme@130.105.162.31) (Changing host)
2024-02-06 15:00:08 +0100mobivme(~mobivme@user/mobivme)
2024-02-06 15:00:49 +0100newsham(~newsham@2603-800c-2c01-6825-0822-71ed-1aa2-f599.res6.spectrum.com)
2024-02-06 15:02:38 +0100 <kuribas> underlap: you can think of constraint resolution as being separate of type inference.
2024-02-06 15:03:24 +0100 <kuribas> underlap: first you infer types using HM, then later you verify the constraints.
2024-02-06 15:05:48 +0100 <kuribas> underlap: or do you mean type variables? What would be the inferred type of "id x = x" without type variables?
2024-02-06 15:05:55 +0100CiaoSen(~Jura@2a05:5800:281:7e00:e6b9:7aff:fe80:3d03)
2024-02-06 15:06:11 +0100 <newsham> If you wanted to define a function like `f :: (Bounded a, Bounded b) => Int -> (a, b)`, is haskell's type system powerful enough to let you call the `minBound` function parameterized by the `Bounded a` and `Bounded b` types?.  Haskell resolves the types for a and b and the dictionaries for Bounded a and Bounded b, but how could you reference them
2024-02-06 15:06:12 +0100 <newsham> inside a function definition?
2024-02-06 15:07:31 +0100mechap(~mechap@user/mechap) (Ping timeout: 256 seconds)
2024-02-06 15:07:50 +0100danse-nr3(~danse@151.57.19.6) (Remote host closed the connection)
2024-02-06 15:08:13 +0100danse-nr3(~danse@151.57.19.6)
2024-02-06 15:09:07 +0100 <kuribas> newsham: just call the minBound function?
2024-02-06 15:09:24 +0100 <kuribas> it will take the function from the dictionary based on the inferred type.
2024-02-06 15:09:24 +0100mechap(~mechap@user/mechap)
2024-02-06 15:09:30 +0100 <underlap> kuribas: I think I understand type variables. I'm not sure I understand the sequence you describe. Are you saying my example demonstrates constraint resolution? That seems to be before (concrete) types are inferred in this case.
2024-02-06 15:09:55 +0100 <kuribas> underlap: by concrete you mean monomorphic?
2024-02-06 15:10:49 +0100 <underlap> I guess so, but I'm actually using the term from the wiki page on type inference.
2024-02-06 15:11:14 +0100 <ncf> that page is not very precise
2024-02-06 15:11:16 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-06 15:11:24 +0100 <underlap> ncf: tell me about it :-)
2024-02-06 15:11:57 +0100 <mauke> :t let f n | n == (0 :: Int) = (minBound, minBound) in f
2024-02-06 15:11:58 +0100 <lambdabot> (Bounded a, Bounded b) => Int -> (a, b)
2024-02-06 15:12:11 +0100 <kuribas> underlap: Why would you expect it to infer a monomorphic type, when the function is polymorphic?
2024-02-06 15:12:21 +0100hippoid(~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2024-02-06 15:12:37 +0100 <kuribas> underlap: HM inference can infer polymorphic functions.
2024-02-06 15:12:54 +0100 <kuribas> but not rank-N polymorphism.
2024-02-06 15:13:00 +0100 <underlap> ncf: I'm looking for a decent definition of type inference that doesn't involve deep HM papers or 23-part series of articles ;-)
2024-02-06 15:13:08 +0100 <ncf> https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system ?
2024-02-06 15:13:13 +0100 <kuribas> underlap: well, it infers the type :)
2024-02-06 15:13:25 +0100 <kuribas> underlap: if you don't give a type, it will find it from the context.
2024-02-06 15:13:49 +0100 <kuribas> underlap: the way this works is similar to unification in prolog, if you are familiar with that.
2024-02-06 15:14:04 +0100 <underlap> kuribas: I'm not expecting it to infer a monomorphic type. That's the wiki's idea.
2024-02-06 15:14:09 +0100 <newsham> mauke: sure, but can the function be constructed polymorphically?
2024-02-06 15:14:12 +0100hippoid(~hippoid@c-98-213-162-40.hsd1.il.comcast.net)
2024-02-06 15:14:16 +0100 <mauke> newsham: ??
2024-02-06 15:14:42 +0100 <underlap> kuribas: I'm not familiar with prolog. (I only dipped my toe in 30+ years ago)
2024-02-06 15:15:45 +0100 <kuribas> underlap: well, the definition is just that it gives you the type if you give it none.
2024-02-06 15:16:15 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
2024-02-06 15:16:18 +0100mei(~mei@user/mei)
2024-02-06 15:16:23 +0100poscat(~poscat@user/poscat) (Ping timeout: 252 seconds)
2024-02-06 15:18:36 +0100 <newsham> mauke: notice my original signature `f :: (Bounded a, Bounded b) => Int -> (a, b)` has different a and b.
2024-02-06 15:18:50 +0100 <newsham> and not a return type of (Int, Int)
2024-02-06 15:19:06 +0100 <newsham> hmm.. i'm not asking my question well.
2024-02-06 15:19:27 +0100 <newsham> i'm trying to simpify the question and messing it up.
2024-02-06 15:19:28 +0100 <mauke> <+lambdabot> (Bounded a, Bounded b) => Int -> (a, b)
2024-02-06 15:19:39 +0100 <mauke> what's the difference?
2024-02-06 15:19:57 +0100 <underlap> kuribas: That's a start, but I don't think it's the whole definition. The big question is: which type does it (GHC or the Haskell standard, take your pick) infer in any given situation? (Presumably there are examples where it's not obvious without some understanding of the rules involved.)
2024-02-06 15:22:24 +0100 <kuribas> underlap: the most general type. But not including type extensions like rank-N types.
2024-02-06 15:25:17 +0100 <underlap> kuribas: thanks. I hope that "the most general type" is actually unique in any given situation. Must think more about this. Cheers.
2024-02-06 15:25:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-06 15:26:10 +0100 <ncf> it is as long as you stick with basic hindley-milner (so, rank-1 polymorphism)
2024-02-06 15:27:10 +0100 <underlap> ncf: that's good to know. If you have a reference for that, I'd appreciate it.
2024-02-06 15:27:38 +0100 <newsham> ok, lets say I want.  `f :: (Bounded a, Bounded b) -> Either a b -> (a, b)` with `f _ = (minBound :: a, minBound :: b)`
2024-02-06 15:28:12 +0100 <ncf> underlap: https://en.wikipedia.org/wiki/Principal_type would be a start
2024-02-06 15:28:39 +0100 <ncf> newsham: are you okay with using GHC language extensions?
2024-02-06 15:28:44 +0100 <newsham> hmm.. no thats not a great way to ask this either.. hrm..
2024-02-06 15:28:53 +0100 <ncf> if so, scoped type variables + explicit foralls + type applications should do it
2024-02-06 15:28:55 +0100 <underlap> ncf: nice! thank you
2024-02-06 15:29:18 +0100 <newsham> yes, haskell extensions are ok
2024-02-06 15:29:24 +0100 <mauke> :t let f x = case x of { Left a -> (a, minBound); Right b -> (minBound, b) } in f
2024-02-06 15:29:25 +0100 <lambdabot> (Bounded b, Bounded a) => Either a b -> (a, b)
2024-02-06 15:30:16 +0100 <ncf> that doesn't seem to fit the spec, mauke
2024-02-06 15:30:46 +0100 <ncf> wait...
2024-02-06 15:30:52 +0100 <ncf> you don't need extensions at all, sorry
2024-02-06 15:30:52 +0100underlap(~underlap@50.224.125.91.dyn.plus.net) (Quit: Client closed)
2024-02-06 15:31:49 +0100 <ncf> % f :: (Bounded a, Bounded b) => Either a b -> (a, b); f _ = (minBound, minBound)
2024-02-06 15:31:49 +0100 <yahb2> <no output>
2024-02-06 15:32:02 +0100 <ncf> this just works
2024-02-06 15:32:51 +0100 <ncf> newsham: were you asking how to do that without a type signature?
2024-02-06 15:33:19 +0100 <newsham> ok, let me stop trying to dumb down my question and just offer this: https://paste.tomsmeding.com/3BKn3FU4
2024-02-06 15:33:19 +0100 <newsham> I'm trying to convert Enum/Boundeds, and pairs, and sums into integers.  This is more of an exercise for myself than anything else.  Since I cant pass around the type class dictionaries directly (at least not without a lot of work), I just started passing around dummy values as a type witness.. but that doesnt work when you get to sum types.
2024-02-06 15:34:15 +0100 <newsham> if haskell had something where I could reference a known type from the signature (ie `minBound :: a` where a is from the constraints) this would be easier.
2024-02-06 15:35:14 +0100 <mauke> it does: scoped type variables
2024-02-06 15:35:17 +0100mmhat(~mmh@p200300f1c70328ebee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2024-02-06 15:35:28 +0100 <newsham> so it sounds like thats what i'm asking about :)
2024-02-06 15:35:50 +0100 <newsham> i'll go read the manual on that. thank you.
2024-02-06 15:36:13 +0100 <mauke> https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/scoped_type_variables.html
2024-02-06 15:36:29 +0100infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2024-02-06 15:38:12 +0100pruiz(~user@user/pruiz) (Remote host closed the connection)
2024-02-06 15:38:26 +0100pruiz(~user@user/pruiz)
2024-02-06 15:39:10 +0100 <mauke> :t let f x = minBound `asTypeOf` resultOf f where { resultOf :: (a -> b) -> b; resultOf = undefined } in f
2024-02-06 15:39:11 +0100 <lambdabot> Bounded a1 => a2 -> a1
2024-02-06 15:39:21 +0100 <mauke> :t let f x = minBound `asTypeOf` resultOf x where { resultOf :: (a -> b) -> b; resultOf = undefined } in f
2024-02-06 15:39:22 +0100 <lambdabot> Bounded a1 => (a2 -> a1) -> a1
2024-02-06 15:39:40 +0100infinity0(~infinity0@pwned.gg)
2024-02-06 15:44:33 +0100acidjnk_new(~acidjnk@p200300d6e737e717c47e0b6ac190db01.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-02-06 15:46:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-02-06 15:47:42 +0100euleritian(~euleritia@dynamic-176-001-135-201.176.1.pool.telefonica.de)
2024-02-06 15:49:44 +0100mmhat(~mmh@p200300f1c7032843ee086bfffe095315.dip0.t-ipconnect.de)
2024-02-06 15:50:21 +0100mxs(~mxs@user/mxs) (Quit: The Lounge - https://thelounge.chat)
2024-02-06 15:51:35 +0100newsham(~newsham@2603-800c-2c01-6825-0822-71ed-1aa2-f599.res6.spectrum.com) (Quit: Client closed)
2024-02-06 15:55:09 +0100rekahsoft(~rekahsoft@70.51.99.248)
2024-02-06 16:00:20 +0100newsham(~newsham@2603-800c-2c01-6825-0822-71ed-1aa2-f599.res6.spectrum.com)
2024-02-06 16:00:25 +0100 <newsham> thank you, the scoped type variables are working well for me.
2024-02-06 16:04:45 +0100mima(~mmh@aftr-62-216-211-243.dynamic.mnet-online.de) (Ping timeout: 256 seconds)
2024-02-06 16:05:22 +0100EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2024-02-06 16:06:03 +0100EvanR(~EvanR@user/evanr)
2024-02-06 16:10:47 +0100 <tomsmeding> I'm depending on a library exporting a data type with many constructors; in a recent new version, a new constructor was added. I'd like my code to work with both library versions, which is not a problem with CPP, but I'd like to restrict CPP to a small module in my code. Defining a pattern synonym there is annoying because I have to add a COMPLETE pragma with like 30 alternatives. Is there a
2024-02-06 16:10:49 +0100 <tomsmeding> better alternative that I'm missing?
2024-02-06 16:11:07 +0100zetef(~quassel@95.77.17.251)
2024-02-06 16:11:28 +0100bliminse(~bliminse@user/bliminse) (Ping timeout: 256 seconds)
2024-02-06 16:12:25 +0100danse-nr3(~danse@151.57.19.6) (Ping timeout: 272 seconds)
2024-02-06 16:12:28 +0100pruiz(~user@user/pruiz) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1))
2024-02-06 16:12:46 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-02-06 16:13:23 +0100bliminse(~bliminse@user/bliminse)
2024-02-06 16:13:53 +0100zetef(~quassel@95.77.17.251) (Remote host closed the connection)
2024-02-06 16:15:14 +0100mobivme(~mobivme@user/mobivme) (Ping timeout: 252 seconds)
2024-02-06 16:16:42 +0100danse-nr3(~danse@151.57.19.6)
2024-02-06 16:17:09 +0100 <newsham> yay!  thank you mauke!  https://paste.tomsmeding.com/zKfjb7V6
2024-02-06 16:23:18 +0100 <newsham> using undefined feels a little dirty.. but oh well.
2024-02-06 16:23:58 +0100 <newsham> is there a way to make a Numerate instance for Enum without wrapping the types?  i tried using the undecidable instances but it blew up in my face.
2024-02-06 16:28:47 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-06 16:33:31 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2024-02-06 16:33:40 +0100 <c_wraith> newsham: You can avoid using undefined by changing the type of sizeW in several different ways. You could make it `proxy a -> Integer' or `(Integer, Proxy a)' to avoid using extensions. (The different capitalization is intentional)
2024-02-06 16:35:13 +0100 <c_wraith> newsham: or you can use several extensions so that you can define it as `sizeW :: Integer' and then your uses of it will look like `sizeW @(Wrap Bool)' or whatever
2024-02-06 16:36:38 +0100 <newsham> proxy makes sense.  I dont understand the @(..). is that an extension?
2024-02-06 16:36:42 +0100 <c_wraith> Yes
2024-02-06 16:40:12 +0100 <c_wraith> You need AllowAmbiguousTypes for the definition to compile, and then TypeApplications for the use to compile
2024-02-06 16:40:24 +0100 <newsham> cool.  changed to usiing proxy.. without the \@ extension.
2024-02-06 16:40:32 +0100 <c_wraith> makes sense
2024-02-06 16:40:48 +0100 <newsham> thank you
2024-02-06 16:41:21 +0100 <newsham> is there a reasonable way to do `instance forall a. (Enum a, Bounded a) => Numerate (Wrap a) where` without the Wrap?
2024-02-06 16:41:24 +0100 <c_wraith> And for your other question, no. There's no way to express "everything with an instance of Foo also has an instance of Bar"
2024-02-06 16:41:48 +0100 <newsham> i figured. oh well.
2024-02-06 16:42:05 +0100 <c_wraith> I've come around to thinking that's secretly a good thing, not just technically necessary.
2024-02-06 16:42:37 +0100 <c_wraith> It means types only have instances for stuff that is explicitly specified.
2024-02-06 16:43:13 +0100 <c_wraith> And I've run into some cases where it makes me very happy to know that instances don't just magically appear - you have to opt in
2024-02-06 16:44:44 +0100 <newsham> perhaps a better way would be for me to define Bounded and Enum over pairs and sums, and then write the numerate stuff as parametric polymorphic functions over bounded and enums..
2024-02-06 16:45:53 +0100 <newsham> impl would be uglier but it wouldnt require wrapped stuff
2024-02-06 16:48:10 +0100 <danse-nr3> you can define instances implied by some other more specific class. For instance you could have that `instance MyClass => Bounded` and `instance MyClass => Enum`, if your class is more specific than those
2024-02-06 16:50:18 +0100 <c_wraith> danse-nr3: You really can't write `instance Foo a => Bar a' in a useful way. It overlaps everything, because instance heads aren't considered. (and can't be, for technical reasons)
2024-02-06 16:52:00 +0100 <danse-nr3> cool i think i saw it around but maybe i am mistaken
2024-02-06 16:52:29 +0100euleritian(~euleritia@dynamic-176-001-135-201.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-06 16:52:47 +0100euleritian(~euleritia@77.22.252.56)
2024-02-06 17:03:24 +0100acidjnk_new(~acidjnk@p200300d6e737e714747a0600998052c8.dip0.t-ipconnect.de)
2024-02-06 17:04:02 +0100 <newsham> oh, blah, I remember why i didnt want everything to be Enum.. because Enum converts to Int, not Integer.
2024-02-06 17:09:28 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-02-06 17:16:32 +0100JordiGH(~jordi@user/jordigh)
2024-02-06 17:17:17 +0100jelewis2(~lewisje@74.215.19.22) (Ping timeout: 240 seconds)
2024-02-06 17:20:59 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2024-02-06 17:23:50 +0100joes_(~joes@dyndsl-095-033-021-107.ewe-ip-backbone.de)
2024-02-06 17:25:17 +0100joes_(~joes@dyndsl-095-033-021-107.ewe-ip-backbone.de) (Changing host)
2024-02-06 17:25:17 +0100joes_(~joes@hardfought/member/joes)
2024-02-06 17:27:11 +0100 <haskellbridge> <J​ade> c_wraith: isn't that often the case with list? i.e. `instance Eq a => Eq [a]`
2024-02-06 17:27:40 +0100 <haskellbridge> <J​ade> ah no, that is another type entirely
2024-02-06 17:27:44 +0100 <haskellbridge> <J​ade> mb
2024-02-06 17:29:44 +0100danse-nr3(~danse@151.57.19.6) (Read error: Connection reset by peer)
2024-02-06 17:29:53 +0100danse-nr3(~danse@151.43.36.55)
2024-02-06 17:30:08 +0100erty(~user@user/aeroplane)
2024-02-06 17:33:40 +0100newsham(~newsham@2603-800c-2c01-6825-0822-71ed-1aa2-f599.res6.spectrum.com) (Quit: Client closed)
2024-02-06 17:37:16 +0100justsomeguy(~justsomeg@user/justsomeguy)
2024-02-06 17:51:16 +0100CiaoSen(~Jura@2a05:5800:281:7e00:e6b9:7aff:fe80:3d03) (Ping timeout: 246 seconds)
2024-02-06 17:51:58 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-02-06 17:58:05 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 240 seconds)
2024-02-06 18:02:02 +0100todi(~todi@p5dca5fa8.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
2024-02-06 18:02:39 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-02-06 18:04:52 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-02-06 18:05:09 +0100danse-nr3(~danse@151.43.36.55) (Ping timeout: 272 seconds)
2024-02-06 18:09:32 +0100benkard(~mulk@pd9514313.dip0.t-ipconnect.de)
2024-02-06 18:10:46 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-02-06 18:10:53 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:b79d:3d5b:19c8:ce18) (Remote host closed the connection)
2024-02-06 18:11:13 +0100mulk(~mulk@pd9514313.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2024-02-06 18:11:13 +0100benkardmulk
2024-02-06 18:20:06 +0100joes_(~joes@hardfought/member/joes) (Ping timeout: 268 seconds)
2024-02-06 18:20:49 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-02-06 18:21:59 +0100ec(~ec@gateway/tor-sasl/ec) (Read error: Connection reset by peer)
2024-02-06 18:22:37 +0100ec(~ec@gateway/tor-sasl/ec)
2024-02-06 18:25:26 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-02-06 18:26:41 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-06 18:28:36 +0100chele(~chele@user/chele) (Remote host closed the connection)
2024-02-06 18:33:19 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-02-06 18:33:55 +0100ursa-major(~ursa-majo@37.19.210.36)
2024-02-06 18:35:22 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2024-02-06 18:41:52 +0100JordiGH(~jordi@user/jordigh)
2024-02-06 18:42:30 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-06 18:43:14 +0100ursa-major(~ursa-majo@37.19.210.36) (Quit: WeeChat 4.2.1)
2024-02-06 18:44:09 +0100average(uid473595@user/average)
2024-02-06 18:44:56 +0100mima(~mmh@aftr-62-216-211-178.dynamic.mnet-online.de)
2024-02-06 18:51:41 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds)
2024-02-06 18:53:07 +0100euphores(~SASL_euph@user/euphores) (Remote host closed the connection)
2024-02-06 18:55:20 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-06 18:57:05 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 272 seconds)
2024-02-06 18:57:43 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 272 seconds)
2024-02-06 18:58:08 +0100euleritian(~euleritia@dynamic-176-007-001-109.176.7.pool.telefonica.de)
2024-02-06 19:04:16 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-06 19:05:40 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1)
2024-02-06 19:06:04 +0100rvalue(~rvalue@user/rvalue)
2024-02-06 19:08:31 +0100aljazmc(~aljazmc@user/aljazmc)
2024-02-06 19:12:50 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-02-06 19:14:40 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
2024-02-06 19:15:01 +0100moixa(~moixa@customer-178-16-208-85.stosn.net)
2024-02-06 19:20:02 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
2024-02-06 19:28:29 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 240 seconds)
2024-02-06 19:33:35 +0100justsomeguy(~justsomeg@user/justsomeguy)
2024-02-06 19:34:12 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 19:35:11 +0100pyooque(~puke@user/puke)
2024-02-06 19:35:11 +0100puke(~puke@user/puke) (Killed (platinum.libera.chat (Nickname regained by services)))
2024-02-06 19:35:11 +0100pyooquepuke
2024-02-06 19:35:30 +0100 <tri> i have a quick question, is Free monad and Reader monad used regularly in Haskell? That is, they are not the more esoteric side of Haskell?
2024-02-06 19:35:30 +0100puke(~puke@user/puke) (Remote host closed the connection)
2024-02-06 19:35:50 +0100 <tri> I feel like Reader is the more practical one, how about Free monad?
2024-02-06 19:35:53 +0100 <tri> can i live without it?
2024-02-06 19:36:09 +0100puke(~puke@user/puke)
2024-02-06 19:36:20 +0100 <geekosaur> free monads are a technique used by some but not by others
2024-02-06 19:36:21 +0100 <tri> I just read briefly about them, so need to gauge to what extent i need to stay dig into them in detrail
2024-02-06 19:36:24 +0100 <tri> detail*
2024-02-06 19:36:25 +0100 <geekosaur> reader is used very widely
2024-02-06 19:37:00 +0100 <tri> thank you
2024-02-06 19:38:35 +0100 <geekosaur> free monads are most useful when you need to introspect the effects to be run within the monad, or want to be able to interpret effects in different monads
2024-02-06 19:39:21 +0100 <geekosaur> (an "effect" being, roughly, anything you would use >>= with)
2024-02-06 19:39:32 +0100 <tomsmeding> free monads have fairly specific uses
2024-02-06 19:39:53 +0100 <tomsmeding> most code will not use them at all, but for particular functionality they are very nice
2024-02-06 19:40:14 +0100 <tomsmeding> tri: the reader monad is a specific example of a monad and is much more generally applicable
2024-02-06 19:45:10 +0100 <tri> tomsmeding: thank you
2024-02-06 19:45:32 +0100 <tri> similar to Reader monad, Writer monad is also widely used right? (I haven't read about it yet)
2024-02-06 19:45:57 +0100 <probie> No, it's rarely used
2024-02-06 19:48:30 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-06 19:48:58 +0100 <tri> probie: thank you
2024-02-06 19:49:45 +0100 <probie> If we're being pedantic, `Reader` itself also isn't that common, it's the monad transformer `ReaderT` which is pervasive in the Haskell ecosystem (but you can worry about that when you get to monad transformers).
2024-02-06 19:52:43 +0100 <tomsmeding> I mean, whether Writer is used or not depends a bit on what kind of code you're writing
2024-02-06 19:53:20 +0100 <tomsmeding> if you're writing application software, i.e. "business logic" / "practical code", you're unlikely to see Writer(T)
2024-02-06 19:54:02 +0100 <tomsmeding> in things like a code analysis algorithm, it might occur a bit more often
2024-02-06 19:54:23 +0100 <tomsmeding> but Writer is a simple monad and a good one to practice your understanding of monads with
2024-02-06 19:54:37 +0100 <tomsmeding> the basic version, that is -- not the "CPS version"
2024-02-06 19:54:50 +0100 <tomsmeding> (the "CPS version" is just the state monad with different names on the functions)
2024-02-06 19:55:47 +0100 <tomsmeding> the basic Writer monad is essentially a logging monad, which is intuitive, so that is useful. In practice, if you want to do practical and scalable logging in haskell you'd use something different, but in the traditional functional way of "make it as simple as possible", Writer embodies the idea of "logging"
2024-02-06 19:57:53 +0100euleritian(~euleritia@dynamic-176-007-001-109.176.7.pool.telefonica.de) (Ping timeout: 272 seconds)
2024-02-06 19:58:30 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 19:59:24 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-06 19:59:43 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-06 20:04:37 +0100causal(~eric@50.35.85.7)
2024-02-06 20:04:44 +0100erty(~user@user/aeroplane) (Read error: Connection reset by peer)
2024-02-06 20:06:12 +0100 <haskellbridge> <J​ade> am I being stupid or does `createFileLink` from the `directory` package not work with relative paths?
2024-02-06 20:06:18 +0100 <haskellbridge> <J​ade> on linux*
2024-02-06 20:06:45 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds)
2024-02-06 20:07:32 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2024-02-06 20:09:05 +0100pavonia(~user@user/siracusa)
2024-02-06 20:09:41 +0100 <ncf> works for me
2024-02-06 20:11:51 +0100 <tomsmeding> Jade: it probably just calls the linux syscall, meaning that the destination is relative _from the source_
2024-02-06 20:11:56 +0100 <tomsmeding> not relative from your current working directory
2024-02-06 20:11:59 +0100 <tomsmeding> that may be tripping you up
2024-02-06 20:12:07 +0100 <tomsmeding> (this is the same behaviour as ln(1))
2024-02-06 20:12:35 +0100Goodbye_Vincent(cyvahl@freakshells.net) (Ping timeout: 264 seconds)
2024-02-06 20:19:08 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
2024-02-06 20:19:19 +0100Pixi`(~Pixi@user/pixi)
2024-02-06 20:19:29 +0100Goodbye_Vincent(cyvahl@freakshells.net)
2024-02-06 20:20:01 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 20:22:38 +0100 <mauke> wasn't there an article somewhere about how Writer is always a space leak and should be replaced by State?
2024-02-06 20:22:44 +0100Pixi(~Pixi@user/pixi) (Ping timeout: 252 seconds)
2024-02-06 20:23:15 +0100 <tomsmeding> it's why Control.Monad.Trans.Writer.CPS exists
2024-02-06 20:23:26 +0100 <tomsmeding> I remember something like that too
2024-02-06 20:24:16 +0100todi(~todi@p5dca5fa8.dip0.t-ipconnect.de)
2024-02-06 20:25:30 +0100 <sprout> https://stackoverflow.com/questions/7720929/space-leaks-and-writers-and-sums-oh-my ?
2024-02-06 20:25:44 +0100 <probie> > let f n = tell [n, n+1, n+2] >> f (n+1 :: Integer) in take 20 $ snd $ runWriter (f 1)
2024-02-06 20:25:46 +0100 <lambdabot> [1,2,3,2,3,4,3,4,5,4,5,6,5,6,7,6,7,8,7,8]
2024-02-06 20:27:39 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-06 20:30:41 +0100 <probie> I think "always a space leak" is a bit much. As long as you consume all the writer's output before looking at the eventual result, and `<>` isn't strict in its right argument for your output's monoid, it's probably fine
2024-02-06 20:32:38 +0100Goodbye_Vincent(cyvahl@freakshells.net) (Ping timeout: 252 seconds)
2024-02-06 20:33:03 +0100cstml(~cstml@user/cstml)
2024-02-06 20:34:07 +0100alycidyne(~kova@user/alycidyne)
2024-02-06 20:34:11 +0100Erutuon(~Erutuon@user/erutuon)
2024-02-06 20:34:26 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-06 20:34:42 +0100 <sprout> only glancing at this. continuations should only move the work from the stack to the heap, isn't this that you need to force the writer to do something and that goes badly with lazy semantics?
2024-02-06 20:35:11 +0100 <alycidyne> Hello, can monads be used to implement a sort of debugger? I was thinking of tracing the different monad values
2024-02-06 20:36:47 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-06 20:40:04 +0100Goodbye_Vincent(cyvahl@freakshells.net)
2024-02-06 20:40:05 +0100 <EvanR> Writer and strict Writer both don't act like you would naively think coming from imperative language
2024-02-06 20:40:32 +0100 <EvanR> but the cool part is they have totally non-leaky ways to use them
2024-02-06 20:42:19 +0100 <EvanR> to get the strict updates like imperative programming you can use strict State
2024-02-06 20:44:33 +0100 <alycidyne> EvanR: I see, cool
2024-02-06 20:44:53 +0100 <Franciman> do you think monads in haskell are close to Moggi's original idea?
2024-02-06 20:45:54 +0100 <EvanR> alycidyne, Debug.Trace can print out intermediate values of your computation. ghci has a built-in traditional debugger.
2024-02-06 20:46:16 +0100 <EvanR> that I never learned how to use but it exists
2024-02-06 20:46:46 +0100 <EvanR> ghc-vis is another debugging-like tool
2024-02-06 20:47:21 +0100 <mauke> alycidyne: what do you mean by the monad values?
2024-02-06 20:47:35 +0100tri(~tri@24.187.239.26)
2024-02-06 20:48:09 +0100 <geekosaur> there's also ghcitui
2024-02-06 20:49:13 +0100xdminsy(~xdminsy@117.147.71.221) (Read error: Connection reset by peer)
2024-02-06 20:51:54 +0100 <alycidyne> mauke: I will have to go soon, but I assume that monads imply some sort of state threading, and that some magic to make this state accessible/visible would be possible
2024-02-06 20:52:05 +0100Goodbye_Vincent(cyvahl@freakshells.net) (Ping timeout: 260 seconds)
2024-02-06 20:52:07 +0100 <alycidyne> Then again, my understanding of monads is still fragile
2024-02-06 20:54:25 +0100 <mauke> consider that (->) e is a monad and hence (->) e r (better known as e -> r) is a "monadic action"
2024-02-06 20:54:45 +0100 <geekosaur> the only monad that involves state threading is ST
2024-02-06 20:55:32 +0100 <ncf> ??
2024-02-06 20:55:48 +0100tri(~tri@24.187.239.26) (Ping timeout: 268 seconds)
2024-02-06 20:55:52 +0100 <geekosaur> unless you count StateT, which just passes and returns the "state" transparently
2024-02-06 20:56:13 +0100 <geekosaur> @unmtl State s a
2024-02-06 20:56:13 +0100 <lambdabot> s -> (a, s)
2024-02-06 20:56:18 +0100 <mauke> but in ST, the "state" is trivial :-)
2024-02-06 20:56:28 +0100cstml(~cstml@user/cstml) (Quit: WeeChat 4.1.1)
2024-02-06 20:56:54 +0100 <EvanR> in haskell we value the separation of church and state. Then monads mix them up again as values
2024-02-06 20:58:27 +0100 <alycidyne> I'll sadly have to go, but I've at least written this down, I'll have to get back to this
2024-02-06 20:58:39 +0100 <alycidyne> Thanks for the info nevertheless o/
2024-02-06 20:59:28 +0100alycidyne(~kova@user/alycidyne) (Quit: leaving)
2024-02-06 20:59:46 +0100Goodbye_Vincent(cyvahl@freakshells.net)
2024-02-06 21:12:26 +0100duncan(~duncan@user/duncan) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-06 21:12:27 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 21:14:47 +0100 <energizer> is there a reason why ++ is a good name for the concatenation operator?
2024-02-06 21:15:25 +0100Goodbye_Vincent(cyvahl@freakshells.net) (Ping timeout: 264 seconds)
2024-02-06 21:16:39 +0100 <EvanR> because it concatenates the two operands?
2024-02-06 21:17:40 +0100 <tomsmeding> you can also use <> if you prefer
2024-02-06 21:18:11 +0100 <energizer> eg it's associative like * usually is but not commutative like + usually is, so i wouldve thought **, but ++ was preferred for some reason
2024-02-06 21:18:19 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-06 21:18:59 +0100 <tomsmeding> naming is supposed to be intuitive, and for the vast majority of people, list concatenation feels like putting two things together, not like multiplying two things
2024-02-06 21:19:31 +0100 <EvanR> on, I read the question backwards, you're asking why ++ is the symbols for the concatenation operator, not why concatenation operator is the name for ++
2024-02-06 21:19:46 +0100 <haskellbridge> <m​agic_rb> python comes in with ** for powers
2024-02-06 21:19:52 +0100 <EvanR> length(a ++ b) = length(a) + length(b)
2024-02-06 21:20:06 +0100 <energizer> yeah but python is uh ynkow
2024-02-06 21:20:14 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 21:20:18 +0100 <energizer> yeah but python is uh yknow
2024-02-06 21:20:24 +0100 <mauke> > 2 ** 0.5
2024-02-06 21:20:26 +0100 <lambdabot> 1.4142135623730951
2024-02-06 21:20:43 +0100 <tomsmeding> well at least exponentiation is higher on the list of hyperoperations than multiplication
2024-02-06 21:20:49 +0100 <tomsmeding> it's like multiplication 2.0
2024-02-06 21:20:49 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2024-02-06 21:20:56 +0100 <EvanR> length(as x bs) = length(as) * length(bs), where x is cross join
2024-02-06 21:21:12 +0100aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2024-02-06 21:21:36 +0100aljazmc(~aljazmc@user/aljazmc)
2024-02-06 21:21:55 +0100Goodbye_Vincent(cyvahl@freakshells.net)
2024-02-06 21:22:27 +0100 <tomsmeding> energizer: in group theory in mathematics, groups may be written either additively (with +) or multiplicatively (with *), and the convention is that non-abelian groups (i.e. for a non-commutative operator) are written multiplicatively
2024-02-06 21:22:35 +0100 <tomsmeding> that goes the other way :)
2024-02-06 21:22:39 +0100 <tomsmeding> (source: wikipedia)
2024-02-06 21:22:53 +0100 <tomsmeding> (and memories from uni)
2024-02-06 21:23:23 +0100 <energizer> tomsmeding: that supports *
2024-02-06 21:23:27 +0100 <energizer> for concatenation
2024-02-06 21:23:49 +0100 <tomsmeding> oh right
2024-02-06 21:24:01 +0100 <tomsmeding> well, everything else then :p
2024-02-06 21:24:05 +0100 <tomsmeding> that we've said above
2024-02-06 21:24:28 +0100 <tomsmeding> would you honestly find it more intuitive if concatenation was written with (*)?
2024-02-06 21:25:40 +0100 <haskellbridge> <m​agic_rb> tomsmeding: what uni taught you group theory and was it in a math degree
2024-02-06 21:25:58 +0100 <energizer> if it were that way from the beginning then i would be used to it of course
2024-02-06 21:26:04 +0100 <tomsmeding> magic_rb: I did a math + CS double undergraduate degree
2024-02-06 21:26:10 +0100 <tomsmeding> so it's unsurprising there was group theory in there
2024-02-06 21:26:53 +0100 <haskellbridge> <m​agic_rb> ah nice, im at the VU in amsterdam, the math bachelor has group theory, but im scared of the bachelor, i know multiple people from there and not a single one told me its a good idea to do it
2024-02-06 21:26:55 +0100 <EvanR> ++ and cross join corresponds to addition and multiplication formulas above
2024-02-06 21:27:02 +0100 <EvanR> no one is confused about the lack of commutativity
2024-02-06 21:27:19 +0100 <tomsmeding> EvanR: does x distribute over ++
2024-02-06 21:27:23 +0100 <tomsmeding> is it a semiring
2024-02-06 21:27:32 +0100 <EvanR> when you map it via length yes
2024-02-06 21:27:48 +0100 <tomsmeding> magic_rb: I did my bachelors in Leiden
2024-02-06 21:27:49 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-06 21:28:15 +0100 <tomsmeding> they have a 240 EC double program
2024-02-06 21:28:21 +0100 <haskellbridge> <m​agic_rb> oh nice! im planning to do masters in utrecht, they seem to have a programming language focused track iirc
2024-02-06 21:28:22 +0100 <tomsmeding> utrecht also has it iirc
2024-02-06 21:28:35 +0100 <haskellbridge> <m​agic_rb> yeah well slightly too late for me
2024-02-06 21:28:36 +0100lg188(~lg188@82.18.98.230) (Read error: Connection reset by peer)
2024-02-06 21:28:38 +0100 <tomsmeding> magic_rb: they do, and you may even see me pop up at some point lol
2024-02-06 21:28:44 +0100 <tomsmeding> I'm doing a PhD in Utrecht
2024-02-06 21:28:50 +0100 <ncf> ℕ is [()], and i'd definitely expect concatenation to be written + there :)
2024-02-06 21:29:30 +0100 <ncf> (i guess this is the same argument as the length homomorphism)
2024-02-06 21:29:39 +0100 <tomsmeding> in a way :)
2024-02-06 21:29:40 +0100mobivme(~mobivme@130.105.162.31)
2024-02-06 21:29:40 +0100mobivme(~mobivme@130.105.162.31) (Changing host)
2024-02-06 21:29:40 +0100mobivme(~mobivme@user/mobivme)
2024-02-06 21:29:54 +0100 <haskellbridge> <m​agic_rb> tomsmeding: well, ive still 2 years to go, im extending by one year, the minor i want to do (deep programming) is extremely heavy, but id be down for a meetup for discussions of all things haskell then and now
2024-02-06 21:30:06 +0100 <tomsmeding> what even is "deep programming"
2024-02-06 21:30:31 +0100 <tomsmeding> (also this is slightly offtopic, but the #haskell-offtopic channel isn't mirrored to matrix, is it?)
2024-02-06 21:32:00 +0100 <haskellbridge> <m​agic_rb> ill list the courses, equational programming (haskell as a tool to teach lambda calculus and basic pure FP), concurrency and multithreading (mt algos in java), advanced network programming (huge info dump and write your own TCP stack), secure programming (write secure code in C and get graded on how fast other students break in + the teacher) and finally compiler construction
2024-02-06 21:32:00 +0100 <haskellbridge> (build your own co…
2024-02-06 21:32:00 +0100 <haskellbridge> <m​agic_rb> mpiler on an ancient version of LLVM)
2024-02-06 21:32:09 +0100 <haskellbridge> <m​agic_rb> ill check the offtopic
2024-02-06 21:32:10 +0100 <geekosaur> not presently
2024-02-06 21:32:16 +0100 <haskellbridge> <m​agic_rb> ah
2024-02-06 21:32:16 +0100 <geekosaur> that could be arranged though
2024-02-06 21:32:57 +0100 <haskellbridge> <m​agic_rb> i could also relatively quickly bridge it on my side, ill do that, give me a second
2024-02-06 21:36:12 +0100SAJAT(~sajat@87-97-88-242.pool.digikabel.hu) (Ping timeout: 268 seconds)
2024-02-06 21:37:47 +0100SAJAT(~sajat@77-234-80-211.pool.digikabel.hu)
2024-02-06 21:47:15 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 21:50:14 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Read error: Connection reset by peer)
2024-02-06 21:50:18 +0100tri_(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 21:56:19 +0100tri_(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-06 21:58:11 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
2024-02-06 21:59:32 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-02-06 22:02:44 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-02-06 22:04:52 +0100 <EvanR> graded on how fast you can break into securely written C
2024-02-06 22:06:35 +0100 <EvanR> sounds like that will need a harsh curve
2024-02-06 22:07:43 +0100 <tomsmeding> or a _very_ well-constructed assignment
2024-02-06 22:10:11 +0100 <sm> @where+ strictness https://www.fpcomplete.com/haskell/tutorial/all-about-strictness
2024-02-06 22:10:11 +0100 <lambdabot> Done.
2024-02-06 22:11:08 +0100 <haskellbridge> <m​agic_rb> EvanR its extremely difficult, should be illegal honestly, deep programming is criminally difficult while assuming that the student has full 40 hours per week for it. which is obviously correct, because students as we know dont need to pay rent, or transportation and can live of off nothing but air :)
2024-02-06 22:12:07 +0100 <monochrom> Oh, so "deep programming" just means "40 hours per day"?
2024-02-06 22:12:27 +0100 <tomsmeding> all of university is supposed to mean 40 hours per week
2024-02-06 22:12:31 +0100 <tomsmeding> at least in NL
2024-02-06 22:12:41 +0100 <tomsmeding> not that it's always _true_
2024-02-06 22:12:52 +0100 <tomsmeding> monochrom: 40 hours per day is maybe a bit much
2024-02-06 22:13:38 +0100 <tomsmeding> in europe we even have a "standardised" system of "credits", indicating the size of the workload for a course in a number of credits
2024-02-06 22:13:42 +0100 <EvanR> yeah it would be outrangeous to ask a student to move to a slower planet
2024-02-06 22:13:43 +0100 <monochrom> That's a reference to twosetviolin lingling40hours :) https://en.wikipedia.org/wiki/TwoSet_Violin
2024-02-06 22:13:45 +0100 <tomsmeding> 1 credit is supposed to be 28 hours
2024-02-06 22:13:47 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-02-06 22:13:58 +0100 <tomsmeding> supposed
2024-02-06 22:14:17 +0100 <tomsmeding> an n-credit course in country A is intended to be, but in practice definitely not necessarily, comparable to an n-credit course in country B
2024-02-06 22:14:23 +0100 <monochrom> But work-8-hours-per-day is different from code-8-hours-per-day.
2024-02-06 22:14:28 +0100 <haskellbridge> <m​agic_rb> the problem is, that 40h / w is not realistic and most of the bachelor understands that, just some professors seem to somehow be disconnected from reality
2024-02-06 22:14:44 +0100 <tomsmeding> hell, two n-credit courses in the same year in the same program at the same university can differ hugely in workload
2024-02-06 22:15:24 +0100 <haskellbridge> <m​agic_rb> yeah, mostly they try to pair up one very harsh course, with a bs one which can be crammed into one week before the exam
2024-02-06 22:15:32 +0100 <haskellbridge> <m​agic_rb> but it doesnt always work out sadly
2024-02-06 22:15:38 +0100 <tomsmeding> magic_rb: to change that one would need to change how the european ECTS credit system works in the first place
2024-02-06 22:16:20 +0100 <tomsmeding> or convince the university board that it's not feasible for all courses in a program to have roughly the same workload
2024-02-06 22:16:33 +0100 <haskellbridge> <m​agic_rb> yeah i know, still annoying tho :) and its very sad to see people that are struggling to make ends meet, or struggling with depression and stuff, being essentially bullied by the system
2024-02-06 22:16:35 +0100liskin(~liskin@xmonad/liskin) (Quit: liskin)
2024-02-06 22:16:41 +0100 <tomsmeding> which would then mean that they ought to take different amounts of time in of a year, which results in scheduling hell
2024-02-06 22:16:44 +0100 <haskellbridge> <m​agic_rb> but, like, thats reality ig :/
2024-02-06 22:17:21 +0100 <tomsmeding> at hogescholen ("university of applied sciences" sometimes) in NL, it's much more common for there to be no well-defined year organsation in semesters/trimesters/quarters
2024-02-06 22:17:34 +0100 <tomsmeding> but instead having courses starting and ending at random times
2024-02-06 22:17:39 +0100 <tomsmeding> you can imagine the scheduling hell
2024-02-06 22:18:05 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Read error: Connection reset by peer)
2024-02-06 22:18:05 +0100 <tomsmeding> but yeah, I agree, every step of the system is sensible but the result is pretty harsh on students
2024-02-06 22:18:19 +0100 <tomsmeding> if they don't have rich parents
2024-02-06 22:18:25 +0100 <haskellbridge> <m​agic_rb> scheduling > that does sound awful, for the students too
2024-02-06 22:18:30 +0100 <tomsmeding> yes
2024-02-06 22:19:06 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-02-06 22:19:20 +0100tomsmedinghas fond memories of Leiden where one got a single-page PDF giving your schedule for the coming semester
2024-02-06 22:19:21 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-02-06 22:19:34 +0100 <sm> @where+ appliedhaskell https://www.fpcomplete.com/haskell/syllabus Applied Haskell syllabus
2024-02-06 22:19:35 +0100 <lambdabot> I will never forget.
2024-02-06 22:19:57 +0100 <haskellbridge> <m​agic_rb> tomsmeding: again, offtopic btw :)
2024-02-06 22:20:17 +0100 <tomsmeding> it's EvanR's fault
2024-02-06 22:20:20 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 22:20:25 +0100 <haskellbridge> <m​agic_rb> :D
2024-02-06 22:21:04 +0100aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2024-02-06 22:21:33 +0100aljazmc(~aljazmc@user/aljazmc)
2024-02-06 22:23:06 +0100mreh(~matthew@host86-160-168-73.range86-160.btcentralplus.com)
2024-02-06 22:26:35 +0100 <EvanR> don't implicate me bro
2024-02-06 22:27:21 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-06 22:27:26 +0100liskin(~liskin@xmonad/liskin)
2024-02-06 22:27:59 +0100Square3(~Square4@user/square) (Ping timeout: 272 seconds)
2024-02-06 22:30:25 +0100Benzi-Junior(~BenziJuni@dsl-149-65-224.hive.is) (Ping timeout: 264 seconds)
2024-02-06 22:30:50 +0100Benzi-Junior(~BenziJuni@88-149-64-222.du.xdsl.is)
2024-02-06 22:31:40 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi)
2024-02-06 22:33:22 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-06 22:40:20 +0100 <sm> where is that excellent paste site that shows code compiled by different ghc versions ?
2024-02-06 22:40:53 +0100todi(~todi@p5dca5fa8.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
2024-02-06 22:41:25 +0100mobivme(~mobivme@user/mobivme) (Ping timeout: 246 seconds)
2024-02-06 22:42:53 +0100 <monochrom> https://haskell.godbolt.org/
2024-02-06 22:43:55 +0100average(uid473595@user/average) (Quit: Connection closed for inactivity)
2024-02-06 22:44:22 +0100 <sm> woah.. I was thinking of https://play.haskell.org , but that is also cool
2024-02-06 22:45:25 +0100 <sm> @where+ play
2024-02-06 22:45:25 +0100 <lambdabot> It is forgotten.
2024-02-06 22:46:07 +0100 <tomsmeding> sm: it's in the /topic ;)
2024-02-06 22:46:40 +0100 <sm> thanks, that's something my client never shows nowadays
2024-02-06 22:46:51 +0100 <tomsmeding> what client is that? :p
2024-02-06 22:46:52 +0100 <sm> @where+ playground https://play.haskell.org paste code snippets, see it compiled by different ghc versions
2024-02-06 22:46:52 +0100 <lambdabot> Good to know.
2024-02-06 22:46:58 +0100 <sm> erc in emacs
2024-02-06 22:48:01 +0100 <tomsmeding> I guess it only shows on join
2024-02-06 22:48:25 +0100 <tomsmeding> which is not terribly helpful if you have the thing running for longer and/or have multiple autojoin channels on startup
2024-02-06 22:48:32 +0100 <sm> yeah, or when I request it with /topic. Yup.
2024-02-06 22:50:18 +0100 <sm> @where+ godbolt https://haskell.godbolt.org paste code snippets/files, see them compiled by different ghc versions
2024-02-06 22:50:19 +0100 <lambdabot> Done.
2024-02-06 22:50:27 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 22:52:58 +0100chomwitt(~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Ping timeout: 268 seconds)
2024-02-06 22:53:24 +0100phma(phma@2001:5b0:215d:dac8:5473:cd1c:1142:a768) (Read error: Connection reset by peer)
2024-02-06 22:54:21 +0100phma(~phma@host-67-44-208-73.hnremote.net)
2024-02-06 22:57:05 +0100evj(~evj@2a09:bac5:174a:1ad2::2ac:68)
2024-02-06 22:58:19 +0100aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2024-02-06 22:58:57 +0100aljazmc(~aljazmc@user/aljazmc)
2024-02-06 23:00:51 +0100aljazmc(~aljazmc@user/aljazmc) (Client Quit)
2024-02-06 23:05:21 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-06 23:07:08 +0100alexherbo2(~alexherbo@2a02-8440-3440-d7d5-14d1-65d1-7cb0-0517.rev.sfr.net)
2024-02-06 23:08:26 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2024-02-06 23:09:04 +0100califax(~califax@user/califx)
2024-02-06 23:09:47 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2024-02-06 23:10:32 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-06 23:11:03 +0100xff0x(~xff0x@2405:6580:b080:900:b52c:33c8:5337:f03e) (Ping timeout: 272 seconds)
2024-02-06 23:11:11 +0100evj(~evj@2a09:bac5:174a:1ad2::2ac:68) (Changing host)
2024-02-06 23:11:11 +0100evj(~evj@user/evj)
2024-02-06 23:11:34 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2024-02-06 23:12:39 +0100xff0x(~xff0x@2405:6580:b080:900:5fca:dd8c:766e:9634)
2024-02-06 23:17:28 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-02-06 23:19:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-06 23:20:31 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 23:22:14 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-06 23:22:18 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2024-02-06 23:23:41 +0100mreh(~matthew@host86-160-168-73.range86-160.btcentralplus.com) (Ping timeout: 240 seconds)
2024-02-06 23:24:02 +0100michalz(~michalz@185.246.207.222) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-06 23:27:07 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds)
2024-02-06 23:27:49 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-02-06 23:28:10 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-06 23:39:05 +0100dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds)
2024-02-06 23:39:06 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-06 23:39:13 +0100mechap(~mechap@user/mechap) (Ping timeout: 256 seconds)
2024-02-06 23:40:38 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 23:40:46 +0100Erutuon(~Erutuon@user/erutuon)
2024-02-06 23:40:51 +0100mechap(~mechap@user/mechap)
2024-02-06 23:45:15 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-06 23:46:31 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
2024-02-06 23:47:09 +0100mei(~mei@user/mei) (Remote host closed the connection)
2024-02-06 23:49:33 +0100mei(~mei@user/mei)
2024-02-06 23:49:41 +0100acidjnk_new(~acidjnk@p200300d6e737e714747a0600998052c8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-02-06 23:50:33 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-06 23:50:45 +0100Chai-T-Rex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-02-06 23:51:22 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-02-06 23:56:57 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-06 23:57:17 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)