2022/11/03

2022-11-03 00:00:11 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-11-03 00:02:01 +0100TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 252 seconds)
2022-11-03 00:02:56 +0100zmt01(~zmt00@user/zmt00) (Read error: Connection reset by peer)
2022-11-03 00:03:09 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-03 00:05:59 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 276 seconds)
2022-11-03 00:07:47 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 00:08:14 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-03 00:08:22 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-11-03 00:11:25 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 00:11:25 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-03 00:12:32 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-03 00:15:30 +0100TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
2022-11-03 00:15:34 +0100Neuromancer(~Neuromanc@user/neuromancer)
2022-11-03 00:15:47 +0100k8yun_(~k8yun@user/k8yun)
2022-11-03 00:18:28 +0100olivermead(~user@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Remote host closed the connection)
2022-11-03 00:19:04 +0100k8yun(~k8yun@user/k8yun) (Ping timeout: 252 seconds)
2022-11-03 00:19:31 +0100acidjnk(~acidjnk@p200300d6e7137a4458b560a11cdd3b2c.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-11-03 00:20:43 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 252 seconds)
2022-11-03 00:22:01 +0100sadmax`(~user@209.205.174.253) (Ping timeout: 272 seconds)
2022-11-03 00:23:09 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
2022-11-03 00:23:35 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-03 00:23:40 +0100markasoftware(~quassel@107.161.26.124) (Read error: Software caused connection abort)
2022-11-03 00:28:01 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff)
2022-11-03 00:28:28 +0100markasoftware(~quassel@107.161.26.124)
2022-11-03 00:38:52 +0100heinz19(~trace@user/trace) (Remote host closed the connection)
2022-11-03 00:39:30 +0100zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494)
2022-11-03 00:42:08 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-11-03 00:42:35 +0100Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi) (Quit: Leaving.)
2022-11-03 00:43:09 +0100finsternis(~X@23.226.237.192) (Read error: Connection reset by peer)
2022-11-03 00:43:56 +0100kaskal(~kaskal@2001:4bb8:2dc:7b0e:55ee:692c:e44d:a4b0) (Read error: Connection reset by peer)
2022-11-03 00:44:06 +0100kaskal-(~kaskal@2001:4bb8:2dc:7b0e:55ee:692c:e44d:a4b0)
2022-11-03 00:44:58 +0100zmt00(~zmt00@user/zmt00)
2022-11-03 00:45:38 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 00:48:13 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 252 seconds)
2022-11-03 00:48:27 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-11-03 00:50:11 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2022-11-03 00:51:39 +0100taeaad(~taeaad@user/taeaad) (Read error: Software caused connection abort)
2022-11-03 00:52:48 +0100lieven(~mal@ns2.wyrd.be) (Read error: Software caused connection abort)
2022-11-03 00:54:54 +0100taeaad(~taeaad@user/taeaad)
2022-11-03 00:57:24 +0100crns(~netcrns@user/crns) (Read error: Software caused connection abort)
2022-11-03 00:58:56 +0100lieven(~mal@ns2.wyrd.be)
2022-11-03 01:01:31 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-03 01:03:11 +0100crns(~netcrns@p4ff5e3ac.dip0.t-ipconnect.de)
2022-11-03 01:03:11 +0100crns(~netcrns@p4ff5e3ac.dip0.t-ipconnect.de) (Changing host)
2022-11-03 01:03:11 +0100crns(~netcrns@user/crns)
2022-11-03 01:03:33 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
2022-11-03 01:10:50 +0100lambdap237(~lambdap@static.167.190.119.168.clients.your-server.de) (Read error: Software caused connection abort)
2022-11-03 01:11:22 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 01:12:06 +0100mvk(~mvk@2607:fea8:5ce3:8500::4b68) (Ping timeout: 255 seconds)
2022-11-03 01:12:55 +0100lambdap237(~lambdap@static.167.190.119.168.clients.your-server.de)
2022-11-03 01:15:48 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-03 01:25:15 +0100k8yun_(~k8yun@user/k8yun) (Quit: Leaving)
2022-11-03 01:27:06 +0100lbseale(~quassel@user/ep1ctetus) (Ping timeout: 260 seconds)
2022-11-03 01:27:11 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 01:27:24 +0100lbseale(~quassel@user/ep1ctetus)
2022-11-03 01:28:29 +0100mmhat(~mmh@p200300f1c7307621ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
2022-11-03 01:29:24 +0100Topsi1(~Topsi@ipb218f713.dynamic.kabel-deutschland.de)
2022-11-03 01:30:34 +0100Topsi(~Topsi@ipb218f713.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2022-11-03 01:32:13 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-11-03 01:34:24 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-03 01:35:22 +0100tcard(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Read error: Software caused connection abort)
2022-11-03 01:37:00 +0100tcard(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9)
2022-11-03 01:37:05 +0100finsternis(~X@23.226.237.192)
2022-11-03 01:40:54 +0100nilradical(~nilradica@user/naso)
2022-11-03 01:45:00 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 01:51:42 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-11-03 01:52:20 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-11-03 01:56:51 +0100ski(~ski@remote11.chalmers.se) (Read error: Software caused connection abort)
2022-11-03 01:58:55 +0100gabiruh_(~gabiruh@vps19177.publiccloud.com.br)
2022-11-03 01:59:14 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Remote host closed the connection)
2022-11-03 01:59:43 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
2022-11-03 02:00:46 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 02:01:15 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-03 02:01:28 +0100ub(~Thunderbi@77.119.196.32.wireless.dyn.drei.com)
2022-11-03 02:01:47 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-11-03 02:02:12 +0100zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!)
2022-11-03 02:02:44 +0100ubert(~Thunderbi@91.141.39.16.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
2022-11-03 02:02:44 +0100ububert
2022-11-03 02:02:50 +0100califax(~califax@user/califx)
2022-11-03 02:03:05 +0100ski(~ski@remote11.chalmers.se)
2022-11-03 02:09:38 +0100chomwitt(~chomwitt@athe730-c-multi-217.home.otenet.gr) (Ping timeout: 246 seconds)
2022-11-03 02:11:13 +0100nilradical(~nilradica@user/naso) ()
2022-11-03 02:11:51 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-11-03 02:12:00 +0100_leo92_(~emmanuelu@user/emmanuelux)
2022-11-03 02:13:22 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 255 seconds)
2022-11-03 02:14:34 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds)
2022-11-03 02:16:36 +0100bgamari_(~bgamari@64.223.168.223)
2022-11-03 02:16:44 +0100bgamari(~bgamari@64.223.227.132) (Ping timeout: 268 seconds)
2022-11-03 02:16:48 +0100monochrom(trebla@216.138.220.146) (Read error: Software caused connection abort)
2022-11-03 02:17:17 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-11-03 02:17:59 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-11-03 02:20:46 +0100monochrom(trebla@216.138.220.146)
2022-11-03 02:21:24 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 248 seconds)
2022-11-03 02:21:36 +0100 <chromoblob> suppose i define reals in [-1, 1] as signed digit streams: data R = M1 R | Z R | P1 R. what is the type that is equivalent to type of functions R -> R?
2022-11-03 02:22:44 +0100Xeroine(~Xeroine@user/xeroine)
2022-11-03 02:25:15 +0100 <chromoblob> i'm struggling because R is recursive data type, and because of laziness (maybe these both are a same point)
2022-11-03 02:25:40 +0100 <ski> what's the intended interpretation of `M1',`Z',`P1' ?
2022-11-03 02:26:14 +0100 <chromoblob> minus one digit, zero digit, one digit
2022-11-03 02:26:41 +0100 <chromoblob> one could code thus data Digit = M1 | Z | P1; data R = R Digit R
2022-11-03 02:27:55 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-03 02:28:41 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-11-03 02:30:17 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 02:30:59 +0100 <ski> chromoblob : symmetric base three ?
2022-11-03 02:31:12 +0100califax(~califax@user/califx)
2022-11-03 02:31:48 +0100 <ski> anyway, `R = Nat -> Digit', so `R -> R = (Nat -> Digit) -> Nat -> Digit = Nat -> Cont Digit Nat'
2022-11-03 02:32:05 +0100 <ski> (not sure if that helps, really .. just noting it)
2022-11-03 02:32:42 +0100 <ski> .. i guess maybe you could do some bar recursion or fan theorem kind of thing .. hmm
2022-11-03 02:33:13 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 02:34:18 +0100 <ski> type R_to_R = (Tree,Tree,Tree)
2022-11-03 02:34:18 +0100 <ski> data Tree = Const Digit | Branch Tree Tree Tree
2022-11-03 02:34:44 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 248 seconds)
2022-11-03 02:36:18 +0100nate3(~nate@98.45.169.16)
2022-11-03 02:36:18 +0100 <ski> (that's a redundant representation, not "tight")
2022-11-03 02:36:19 +0100 <chromoblob> i don't see how it reflects a function
2022-11-03 02:36:45 +0100 <chromoblob> there's only one digit at the end of each path
2022-11-03 02:36:57 +0100 <ski> er, hm, `type R_to_R = Nat -> Tree', rather
2022-11-03 02:38:23 +0100 <ski> imagine writing a `phi :: (Nat -> Digit) -> Digit'. you go `phi p = ..(p 0)..(p 1)....' .. since you produce a finite output, you can only look at finitely many elements of the stream `p'
2022-11-03 02:38:48 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-11-03 02:39:15 +0100 <ski> which means that you can encode `phi' as a tree, where you go down the branch which corresponds to the current element of the input stream `p', until you reach `Const d', at which point you ignore the rest of the stream and just return `d'
2022-11-03 02:41:21 +0100nate3(~nate@98.45.169.16) (Ping timeout: 272 seconds)
2022-11-03 02:42:21 +0100 <ski> <https://math.andrej.com/2009/10/12/constructive-gem-double-exponentials/> has the basic idea
2022-11-03 02:42:29 +0100 <ski> you may also want to compare with
2022-11-03 02:42:33 +0100 <ski> @where impossible
2022-11-03 02:42:34 +0100 <lambdabot> <http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/>,<http://math.andrej.com/2008/11/21/a-haskell-monad-for-infinite-search-in-finite-time/>
2022-11-03 02:48:46 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 02:53:37 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 02:58:34 +0100taeaad(~taeaad@user/taeaad) (Ping timeout: 252 seconds)
2022-11-03 03:01:04 +0100taeaad(~taeaad@user/taeaad)
2022-11-03 03:04:05 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-03 03:04:46 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 03:05:26 +0100nate3(~nate@98.45.169.16)
2022-11-03 03:07:54 +0100califax_(~califax@user/califx)
2022-11-03 03:07:55 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 03:07:57 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-11-03 03:09:37 +0100califax_califax
2022-11-03 03:11:13 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 03:12:35 +0100bilegeek(~bilegeek@2600:1008:b044:33bf:f451:b0ca:9bd5:7375)
2022-11-03 03:12:59 +0100Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 246 seconds)
2022-11-03 03:14:03 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2022-11-03 03:14:03 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-11-03 03:15:20 +0100Lord_of_Life_Lord_of_Life
2022-11-03 03:16:18 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 255 seconds)
2022-11-03 03:17:16 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Ping timeout: 252 seconds)
2022-11-03 03:21:15 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 03:30:47 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-03 03:31:34 +0100lbseale(~quassel@user/ep1ctetus) (Ping timeout: 252 seconds)
2022-11-03 03:32:05 +0100lbseale(~quassel@user/ep1ctetus)
2022-11-03 03:32:35 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-03 03:37:34 +0100mixfix41(~sdeny9ee@user/mixfix41)
2022-11-03 03:40:52 +0100ksqsf(~ksqsf@2001:da8:d800:611:302c:76b8:e8aa:8bc8)
2022-11-03 03:56:52 +0100irrgit(~irrgit@89.47.234.74) (Ping timeout: 252 seconds)
2022-11-03 03:57:19 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-11-03 03:59:32 +0100Sauvin(~sauvin@user/Sauvin) (Ping timeout: 248 seconds)
2022-11-03 03:59:53 +0100Athas(~athas@2a01:7c8:aaac:1cf:ba6c:ed85:faef:e8b1) (Quit: ZNC 1.8.2 - https://znc.in)
2022-11-03 04:00:03 +0100Athas(~athas@sigkill.dk)
2022-11-03 04:01:42 +0100ksqsf(~ksqsf@2001:da8:d800:611:302c:76b8:e8aa:8bc8) (Quit: Leaving...)
2022-11-03 04:04:01 +0100nate3(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-11-03 04:04:52 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-11-03 04:09:24 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
2022-11-03 04:09:44 +0100irrgit(~irrgit@86.106.90.226)
2022-11-03 04:10:37 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 04:11:00 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-11-03 04:24:05 +0100polomoney
2022-11-03 04:24:35 +0100td_(~td@83.135.9.45) (Ping timeout: 272 seconds)
2022-11-03 04:26:11 +0100td_(~td@83.135.9.44)
2022-11-03 04:31:07 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 04:35:59 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-11-03 04:40:57 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-11-03 04:40:57 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-11-03 04:40:57 +0100finn_elijaFinnElija
2022-11-03 04:41:35 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 04:44:14 +0100tgi(~thegeekin@189.180.115.115)
2022-11-03 04:47:50 +0100thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 246 seconds)
2022-11-03 04:48:57 +0100thegeekinside(~thegeekin@189.180.115.115)
2022-11-03 04:50:44 +0100tgi(~thegeekin@189.180.115.115) (Ping timeout: 248 seconds)
2022-11-03 04:51:12 +0100tgi(~thegeekin@189.180.115.115)
2022-11-03 04:53:24 +0100thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 248 seconds)
2022-11-03 04:57:19 +0100cleetus(~cleetus@63.239.66.138)
2022-11-03 04:57:37 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 255 seconds)
2022-11-03 04:59:23 +0100cleetus(~cleetus@63.239.66.138) ()
2022-11-03 04:59:25 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 272 seconds)
2022-11-03 05:03:47 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 05:05:11 +0100talismanick(~talismani@2601:200:c100:c9e0::1b0b)
2022-11-03 05:07:59 +0100 <talismanick> I factored and refactored some old code until it fit into the Procrustean bed of a monadic interpreter, then took the leap of faith and changed the placeholder `type M a = Wrapper a` to `type M a = Either String (Wrapper a)` and... it compiled
2022-11-03 05:08:11 +0100abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 05:08:20 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2022-11-03 05:08:22 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 252 seconds)
2022-11-03 05:08:22 +0100 <talismanick> does that mean the compiler uses Either String's MonadFail instance to turn all the calls to `error` into `Left`?
2022-11-03 05:10:06 +0100 <talismanick> (leaving aside from the moment that `Left "an error occurred"` isn't that much better than an exception)
2022-11-03 05:10:14 +0100niko(niko@libera/staff/niko) (Ping timeout: 612 seconds)
2022-11-03 05:10:15 +0100 <talismanick> for the moment*
2022-11-03 05:15:25 +0100 <talismanick> nvm, it needs to be `fail`, not `error`, and no way to declare a non-orphan instance of MonadFail (Either String) :(
2022-11-03 05:16:05 +0100 <ski> "turn all the calls to `error` into `Left`?" -- no, that's just failable `<pat> <- <act>' matches .. and there's no .. yea, what you said
2022-11-03 05:16:33 +0100 <ski> @undo do Just x <- return Nothing; return x
2022-11-03 05:16:33 +0100 <lambdabot> return Nothing >>= \ a -> case a of { Just x -> return x; _ -> fail ""}
2022-11-03 05:17:18 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-11-03 05:19:27 +0100 <talismanick> Well, on the bright side, it won't be an orphan MonadFail instance if I write for my own more elaborate error-handling data structure
2022-11-03 05:20:34 +0100 <talismanick> then s/error/fail/g and I'm off to the races
2022-11-03 05:24:33 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds)
2022-11-03 05:27:39 +0100kadoban(~kadoban@user/kadoban) ()
2022-11-03 05:37:31 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 05:37:43 +0100tomboy64(~tomboy64@user/tomboy64)
2022-11-03 05:44:04 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds)
2022-11-03 05:44:08 +0100mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-03 05:44:36 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Ping timeout: 248 seconds)
2022-11-03 05:45:57 +0100Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-11-03 05:46:07 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-11-03 05:46:49 +0100niko(niko@libera/staff/niko)
2022-11-03 05:50:28 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-03 05:52:19 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-11-03 05:59:36 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-03 06:00:43 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-03 06:08:01 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 06:12:11 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:50b:c529:3f17:f97) (Ping timeout: 246 seconds)
2022-11-03 06:14:13 +0100bilegeek(~bilegeek@2600:1008:b044:33bf:f451:b0ca:9bd5:7375) (Quit: Leaving)
2022-11-03 06:24:26 +0100mixfix41(~sdeny9ee@user/mixfix41) (Ping timeout: 246 seconds)
2022-11-03 06:25:57 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-11-03 06:26:20 +0100Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-11-03 06:28:27 +0100mvk(~mvk@2607:fea8:5ce3:8500::4b68) (Ping timeout: 255 seconds)
2022-11-03 07:05:18 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 07:06:03 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-11-03 07:17:33 +0100ncf(~n@monade.li) (Ping timeout: 268 seconds)
2022-11-03 07:17:52 +0100ncf(~n@monade.li)
2022-11-03 07:22:23 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-03 07:25:34 +0100drdo(~drdo@2a0b:b800:2:31e6::1) (Ping timeout: 268 seconds)
2022-11-03 07:25:58 +0100chomwitt(~chomwitt@2a02:587:dc18:4a00:1ac0:4dff:fedb:a3f1)
2022-11-03 07:26:30 +0100Topsi1(~Topsi@ipb218f713.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2022-11-03 07:27:23 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Remote host closed the connection)
2022-11-03 07:29:46 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 07:34:50 +0100irrgit_(~irrgit@146.70.27.242)
2022-11-03 07:35:47 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-03 07:37:58 +0100irrgit(~irrgit@86.106.90.226) (Ping timeout: 252 seconds)
2022-11-03 07:38:31 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 07:42:05 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-11-03 07:44:38 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 07:45:21 +0100abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 272 seconds)
2022-11-03 07:45:46 +0100kenran(~user@user/kenran)
2022-11-03 07:53:47 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-03 07:55:37 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Remote host closed the connection)
2022-11-03 07:56:09 +0100tgi(~thegeekin@189.180.115.115) (Ping timeout: 246 seconds)
2022-11-03 07:57:22 +0100odnes(~odnes@5-203-216-155.pat.nym.cosmote.net)
2022-11-03 07:57:40 +0100odnes(~odnes@5-203-216-155.pat.nym.cosmote.net) (Remote host closed the connection)
2022-11-03 07:58:09 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 08:00:00 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-11-03 08:01:18 +0100nate3(~nate@98.45.169.16)
2022-11-03 08:06:06 +0100nate3(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-11-03 08:08:01 +0100mncheck(~mncheck@193.224.205.254)
2022-11-03 08:13:35 +0100xax__(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-11-03 08:14:31 +0100acidjnk(~acidjnk@p200300d6e7137a343957ed7bae49a26a.dip0.t-ipconnect.de)
2022-11-03 08:14:38 +0100titibandit(~titibandi@xdsl-87-79-250-160.nc.de)
2022-11-03 08:18:55 +0100kenran`(~user@user/kenran)
2022-11-03 08:21:17 +0100kenran(~user@user/kenran) (Ping timeout: 276 seconds)
2022-11-03 08:24:08 +0100 <dminuoso> That being said, I think `fail` abused this way.
2022-11-03 08:25:03 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving)
2022-11-03 08:25:39 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-03 08:26:26 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-11-03 08:27:53 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 08:32:59 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Ping timeout: 276 seconds)
2022-11-03 08:35:16 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 248 seconds)
2022-11-03 08:35:31 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2022-11-03 08:38:30 +0100kenran`(~user@user/kenran) (Remote host closed the connection)
2022-11-03 08:39:24 +0100kenran(~user@user/kenran)
2022-11-03 08:40:34 +0100chele(~chele@user/chele)
2022-11-03 08:42:02 +0100kenran`(~user@user/kenran)
2022-11-03 08:43:45 +0100kenran(~user@user/kenran) (Ping timeout: 246 seconds)
2022-11-03 08:49:27 +0100jonathanx(~jonathan@98.128.168.222)
2022-11-03 08:52:04 +0100elevenkb(~elevenkb@105.184.125.168) (Remote host closed the connection)
2022-11-03 08:54:14 +0100statusfailed(~statusfai@statusfailed.com) (Quit: leaving)
2022-11-03 08:54:29 +0100causal(~user@50.35.83.177) (Quit: WeeChat 3.7.1)
2022-11-03 08:56:40 +0100mmhat(~mmh@2003:f1:c730:7621:ee08:6bff:fe09:5315)
2022-11-03 08:58:50 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-03 09:01:09 +0100hook54321(sid149355@user/hook54321) (Ping timeout: 268 seconds)
2022-11-03 09:02:18 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-03 09:02:48 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-03 09:03:31 +0100hook54321(sid149355@user/hook54321)
2022-11-03 09:04:02 +0100statusfailed(~statusfai@statusfailed.com)
2022-11-03 09:10:24 +0100zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494)
2022-11-03 09:13:19 +0100Heyting(~Heyting@193.198.16.217)
2022-11-03 09:15:50 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-03 09:17:32 +0100shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-11-03 09:20:17 +0100RobertKrook(~RobertKro@ext-1-087.eduroam.chalmers.se)
2022-11-03 09:21:12 +0100RobertKrook(~RobertKro@ext-1-087.eduroam.chalmers.se) (Client Quit)
2022-11-03 09:22:50 +0100Robert43(~Robert@ext-1-087.eduroam.chalmers.se)
2022-11-03 09:24:24 +0100 <Robert43> Good morning!
2022-11-03 09:24:25 +0100 <Robert43> Brief question -- what kind of overheads does IORef impose? E.g imagine I am passing around a state explicitly in a recursive function. Lifting a component of the state or the complete state out to an IORef and mutating that instead.
2022-11-03 09:25:43 +0100Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-03 09:32:57 +0100talismanick(~talismani@2601:200:c100:c9e0::1b0b) (Ping timeout: 255 seconds)
2022-11-03 09:35:04 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 09:37:21 +0100 <dminuoso> Robert43: So in principle IORef has no overhead worthy mentioning, except that there is a linear GC cost in existing mutable references.
2022-11-03 09:37:46 +0100 <dminuoso> If you just use IORef in a singular place, this is not relevant at all. But if you start using large numbers of IORefs concurrently that becomes a penalty worthy considering
2022-11-03 09:38:02 +0100 <dminuoso> Under the hood its just a pointer to memory.
2022-11-03 09:38:19 +0100Topsi(~Topsi@ipb218f6c1.dynamic.kabel-deutschland.de)
2022-11-03 09:38:51 +0100michalz(~michalz@185.246.207.203)
2022-11-03 09:38:53 +0100Topsi(~Topsi@ipb218f6c1.dynamic.kabel-deutschland.de) (Client Quit)
2022-11-03 09:40:00 +0100 <dminuoso> See https://gitlab.haskell.org/ghc/ghc/-/issues/7662\
2022-11-03 09:41:36 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-03 09:43:08 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-11-03 09:43:22 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-03 09:48:13 +0100jargon_(~jargon@174-22-194-21.phnx.qwest.net)
2022-11-03 09:48:17 +0100 <dminuoso> So as long as you dont keep say a huge tree of IORefs or something along these lines, there's no relevant overhead to talk about.
2022-11-03 09:50:07 +0100jargon(~jargon@174-22-194-21.phnx.qwest.net) (Ping timeout: 272 seconds)
2022-11-03 09:51:18 +0100 <merijn> dminuoso: I mean the GC cost of IORef seems the same as "literally every other think that might reference something"
2022-11-03 09:52:15 +0100 <merijn> Oh, I guess a tiny bit more maybe, because they can violate generations? but I find it hard to see how they'd create any notable impact worth mentioning separately?
2022-11-03 09:52:40 +0100razetime(~quassel@117.254.34.146)
2022-11-03 09:54:17 +0100titibandit(~titibandi@xdsl-87-79-250-160.nc.de) (Remote host closed the connection)
2022-11-03 09:54:41 +0100 <dminuoso> merijn: well yes, but you pay this cost per minor GC
2022-11-03 09:55:36 +0100 <dminuoso> You wouldnt pay this up front for arbitrary references
2022-11-03 09:56:06 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-11-03 09:56:52 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 248 seconds)
2022-11-03 09:57:03 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 09:57:56 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-03 10:00:03 +0100cp1313[m](~cp1313mat@2001:470:69fc:105::2:9293) (Quit: You have been kicked for being idle)
2022-11-03 10:02:00 +0100ft(~ft@p508dbd59.dip0.t-ipconnect.de) (Quit: leaving)
2022-11-03 10:04:22 +0100fserucas_(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-11-03 10:09:37 +0100mncheckm(~mncheck@193.224.205.254)
2022-11-03 10:09:54 +0100 <Robert43> Thanks for the help, I will run some experiments. I'll not have a huge number of them, never more than the number of available HECs
2022-11-03 10:11:24 +0100 <merijn> I mean, I wouldn't even bother testing unless you were planning to go, like, >10k IORefs :p
2022-11-03 10:11:55 +0100 <dminuoso> Even that number may not be too horrible, it really depends on how much GC latency you are willing to accept
2022-11-03 10:12:28 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 10:12:31 +0100mncheck(~mncheck@193.224.205.254) (Ping timeout: 252 seconds)
2022-11-03 10:13:12 +0100 <Robert43> Hah okay, I'll just assume this cost is negligible then. I will have #HECs processes (at most), and I want to be able to install an exception handler (catch Ctrl-C) to them that can access some data they are continuously working with, and aggregate a result before terminating
2022-11-03 10:13:28 +0100 <merijn> And really, if you have >10k IORef you should probably question what you're doing, tbh
2022-11-03 10:13:33 +0100 <Robert43> Right
2022-11-03 10:16:55 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 10:18:38 +0100 <dminuoso> I dont know about that.. Im actually in a spot where I have about that number of IORefs for a while.
2022-11-03 10:19:47 +0100 <dminuoso> I have a DSL that describes a tree, but its written in such a way that I need to continuously lookup previous nodes and mutate them. It turns out that using an IntTree (IORef a) is better than doing this purely on `IntTree a` in my case.
2022-11-03 10:23:08 +0100 <Robert43> Interesting
2022-11-03 10:25:04 +0100 <dminuoso> (But I dont keep this tree long, at the end I just do `traverse readIORef` over it, and all the IORefs are gone. So I guess I just temporarily pay a bit of minor GC latency
2022-11-03 10:26:24 +0100 <Robert43> What about MVar vs IORef? MVars does some extra bookkeeping w.r.t blocked processes etc. There will be no concurrent reads or writes
2022-11-03 10:28:28 +0100 <dminuoso> Robert43: MVar and IORef are exactly the same.
2022-11-03 10:28:31 +0100 <dminuoso> data MVar a = MVar (MVar# RealWorld a)
2022-11-03 10:28:40 +0100 <dminuoso> Ah hold on
2022-11-03 10:28:43 +0100 <dminuoso> No I lied, they are not.
2022-11-03 10:28:47 +0100 <merijn> dminuoso: No they're not??
2022-11-03 10:28:49 +0100 <dminuoso> I was thinking STRef.
2022-11-03 10:28:54 +0100 <dminuoso> STRef and IORef are the same thing under the hood.
2022-11-03 10:29:01 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Ping timeout: 252 seconds)
2022-11-03 10:29:02 +0100 <Robert43> Yes
2022-11-03 10:29:20 +0100vito(sid1962@user/vito) (Ping timeout: 268 seconds)
2022-11-03 10:29:28 +0100 <merijn> Robert43: The bookkeeping is mostly for blocked threads, but if no threads block on it, then that's not used
2022-11-03 10:29:30 +0100vito(sid1962@user/vito)
2022-11-03 10:29:30 +0100 <Robert43> I guess I am wondering if I will pay some price for using an MVar instead of an IORef, if I don't use the MVar facilities for blocking etc
2022-11-03 10:29:44 +0100 <merijn> Robert43: I mean, that's like a handful of pointers per MVar, so also fairly negligible
2022-11-03 10:29:45 +0100 <Robert43> It has this nice property that you can create an empty mvar
2022-11-03 10:30:17 +0100 <Robert43> Whereas for an IORef I'd need to do something like `IORef (Maybe a)` to create a logically 'empty' one
2022-11-03 10:30:38 +0100 <merijn> Robert43: Basically, an MVar has 2 pointers to a queue for reads and a queue for writes, but if you never read from empty/write to full, those queues aren't used
2022-11-03 10:30:52 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-03 10:30:54 +0100 <dminuoso> Robert43: You can, if need be, also do `newIORef undefined` - with some discipline it *can* be fine
2022-11-03 10:31:12 +0100 <dminuoso> (Or better yet `newIORef (error "uninitialized foo")`)
2022-11-03 10:31:16 +0100 <Robert43> Ahaha right, I don't trust myself though dminuoso
2022-11-03 10:31:17 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 276 seconds)
2022-11-03 10:31:33 +0100 <Robert43> Thanks for the clarification @meri
2022-11-03 10:31:36 +0100 <Robert43> merijn
2022-11-03 10:32:13 +0100 <dminuoso> merijn: interesting, that reminds me a bit about how TChan is implemented.
2022-11-03 10:34:29 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Remote host closed the connection)
2022-11-03 10:34:55 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 10:35:11 +0100 <[Leary]> Robert43: When I don't trust myself (which is most of the time), I like to try and craft safe interfaces overtop of the unsafe stuff, which stays confined to an internal module. You could do e.g. `newtype Empty a = Empty (IORef a); newEmpty = Empty <$> newIORef undefined; fill (Empty ref) a = writeIORef ref a $> ref`.
2022-11-03 10:36:36 +0100 <kuribas> The great thing about haskell is not that you don't need low level unsafe stuff, but rather that you can isolute the unsafe parts to a few lines of code, and then create nice (safe) abstractions over it.
2022-11-03 10:36:37 +0100 <Robert43> Sounds good :)
2022-11-03 10:37:49 +0100 <merijn> That seems kinda pointless?
2022-11-03 10:38:08 +0100 <merijn> Like, just delay "newIORef" until your "fill" call
2022-11-03 10:38:34 +0100 <merijn> The type changes anyway and you're doing IO anyway, so you can just delay creation until the fill
2022-11-03 10:39:51 +0100 <[Leary]> I just pulled that out of my arse to get the idea across, I'm not claiming it'll solve the problem as written.
2022-11-03 10:40:51 +0100 <[Leary]> So long as there is a "discipline" for it, you should be able to turn that discipline into an interface and have the compiler make sure you follow it.
2022-11-03 10:41:25 +0100 <Robert43> For my use case, an MVar sounds OK, and it will keep 'tricks' out of the code. While I may enjoy these tricks, I can't trust everyone to read the code to enjoy them as much
2022-11-03 10:42:15 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 10:42:17 +0100chele_(~chele@user/chele)
2022-11-03 10:42:55 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 10:43:31 +0100 <dminuoso> Robert43: Honestly, it doesnt really change anything.
2022-11-03 10:43:47 +0100 <dminuoso> Robert43: If you try to read from an uninitialized MVar, it will block - this is just bottom.
2022-11-03 10:43:59 +0100 <dminuoso> If you use an undefined/error from an IORef, it will crash - this too is bottom.
2022-11-03 10:44:21 +0100 <dminuoso> Advantage of `newIORef (error "foo is not initialized")` is that you at least get some indicator about *which* *part* hasnt been initialized yet
2022-11-03 10:44:35 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-03 10:44:40 +0100 <dminuoso> Or you end up using tryTakeMVar everywhere, but that's really the same as `IORef (Maybe a)` anyhow
2022-11-03 10:44:58 +0100chele(~chele@user/chele) (Ping timeout: 252 seconds)
2022-11-03 10:45:02 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-11-03 10:45:13 +0100 <Robert43> I populate the MVar almost immediately, the rest of the code (rightly) assumes that it is filled
2022-11-03 10:45:37 +0100 <kuribas> at lower cost (no semaphores needed)
2022-11-03 10:46:34 +0100ec(~ec@gateway/tor-sasl/ec)
2022-11-03 10:46:45 +0100 <dminuoso> Robert43: Sure, but like I said: might as well use `error` instead. In the mvar case it will crash anyway (since the RTS can detect if no other thread has references to an MVar you are blocking on)
2022-11-03 10:46:48 +0100 <dminuoso> Except it really wont tell you where.
2022-11-03 10:46:59 +0100 <dminuoso> That makes MVar way less useful for what you're doing
2022-11-03 10:47:17 +0100 <dminuoso> With `error` you at least can include a name for the thing you are planning to initialize
2022-11-03 10:47:37 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-03 10:48:29 +0100__monty__(~toonn@user/toonn)
2022-11-03 10:49:20 +0100 <dminuoso> Robert43: What you *can* do to turn this bottom into a usable exception, is an extension of what [Leary] proposed. Initialize each IORef with `undefined`, and hide `readIORef` behind a wrapper that will `evaluate` the inner thing
2022-11-03 10:49:54 +0100 <dminuoso> Turning the "uninitialized variable" into a proper IO exception (and you have IO anyway, since readIORef demands it)
2022-11-03 10:52:05 +0100 <dminuoso> Along the lines of: readMyRef (MyRef nam ref) = do v <- readIORef ref; catch (evaluate v) (\(e :: SomeException) -> throwIO (InternalError ("Uninitialized variable " <> nam)))
2022-11-03 10:52:28 +0100 <dminuoso> Well you get some other problems with respect to imprecise exception semantics, but oh well
2022-11-03 10:55:30 +0100 <Robert43> I'll experiment with all of these variants
2022-11-03 10:55:35 +0100vpan(~0@212.117.1.172)
2022-11-03 10:57:37 +0100 <dminuoso> Robert43: Or better yet, in that wrapper use an Maybe internally!
2022-11-03 10:58:09 +0100 <dminuoso> `data MyRef a = MyRef { ref :: IORef (Maybe a), nam :: T.Text }`
2022-11-03 10:58:31 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-03 10:59:33 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-03 11:03:08 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-03 11:04:17 +0100Kaipii(~Kaiepi@108.175.84.104)
2022-11-03 11:06:58 +0100Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds)
2022-11-03 11:10:09 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Ping timeout: 268 seconds)
2022-11-03 11:14:25 +0100razetime(~quassel@117.254.34.146) (Ping timeout: 246 seconds)
2022-11-03 11:15:15 +0100razetime(~quassel@117.254.34.146)
2022-11-03 11:16:01 +0100teo(~teo@user/teo)
2022-11-03 11:16:19 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 252 seconds)
2022-11-03 11:20:34 +0100fkjac(~fkjac@gw1.compute.dtu.dk)
2022-11-03 11:21:50 +0100fkjac(~fkjac@gw1.compute.dtu.dk) (Client Quit)
2022-11-03 11:22:46 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-11-03 11:28:24 +0100MajorBiscuit(~MajorBisc@145.94.167.250)
2022-11-03 11:32:56 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-11-03 11:35:41 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-03 11:36:23 +0100vglfr(~vglfr@145.224.100.22)
2022-11-03 11:36:59 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-03 11:38:57 +0100jco(~jco@90-228-194-139-no542.tbcn.telia.com)
2022-11-03 11:42:10 +0100michalz(~michalz@185.246.207.203) (Ping timeout: 252 seconds)
2022-11-03 11:42:28 +0100michalz(~michalz@185.246.207.222)
2022-11-03 11:42:34 +0100 <jco> Hi, using Aeson, can I "flatten" the encoding of a sum type, so that instead of a nested object, I get the constructor name as a field name. It's kind of difficult to explain, so the short code example at https://paste.tomsmeding.com/fShsZw6D is maybe clearer? Is there something other than `ObjectWithSingleField` that I can use to get what I want. Thankful for any help.
2022-11-03 11:46:41 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-03 11:49:36 +0100 <kuribas> jco: TaggedObject? https://hackage.haskell.org/package/aeson-1.3.1.1/docs/Data-Aeson-Types.html#t:SumEncoding
2022-11-03 11:49:44 +0100ec(~ec@gateway/tor-sasl/ec)
2022-11-03 11:53:05 +0100 <dminuoso> jco: Just write out the instance by hand?
2022-11-03 11:56:28 +0100_leo92_(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2022-11-03 11:57:22 +0100 <jco> kuribas: `TaggedObject` would only give me something like: `{"field_name":"Dummy","field_x":{"k":"cons_A","v":"Foo"}}` for `sumEncoding = TaggedObject "k" "v"`.
2022-11-03 11:58:45 +0100Robert43(~Robert@ext-1-087.eduroam.chalmers.se) (Ping timeout: 255 seconds)
2022-11-03 11:59:05 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-03 11:59:11 +0100 <kuribas> "If the constructor is a record the encoded record fields will be unpacked into this object."
2022-11-03 11:59:15 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-11-03 11:59:49 +0100 <kuribas> If you have nested types, then you'll need to write the instance by hand, as dminuoso said.
2022-11-03 12:02:30 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-03 12:02:47 +0100nate3(~nate@98.45.169.16)
2022-11-03 12:04:10 +0100 <jco> dminuoso: Makes sense! :)
2022-11-03 12:07:32 +0100nate3(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2022-11-03 12:09:56 +0100king_gs(~Thunderbi@187.201.83.115)
2022-11-03 12:11:14 +0100skinotes Clean's `Dynamic' <https://wiki.clean.cs.ru.nl/download/html_report/CleanRep.2.2_10.htm> can store polymorphic (although not overloaded, yet) operations .. although not resources like `World' and `File', because you can serialize/marshall these `Dynamic's
2022-11-03 12:15:20 +0100freeside_(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 12:15:43 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 12:17:44 +0100 <ski> also, due to having language sypport with pattern-matching, you can easily code up stuff like `dynApply :: Dynamic -> Dynamic -> Maybe Dynamic; dynApply (dynamic f :: a -> b) (dynamic x :: a) = Just (dynamic f x :: b); dynApply _ _ = Nothing' and `flexDynApply :: forall b. Typeable b => Dynamic -> Dynamic -> Maybe b; flexDynApply (dynamic f :: a -> b) (dynamic x :: a) = Just (f x); flexDynApply _ _ =
2022-11-03 12:17:50 +0100 <ski> Nothing' yourself
2022-11-03 12:18:41 +0100 <ski> (adapting the actual Clean syntax to an imagined Haskell syntax in those examples)
2022-11-03 12:20:12 +0100 <dminuoso> jco: I think there's generally an overreliance on generic deriving for aeson. In many cases its a bad idea.
2022-11-03 12:20:57 +0100 <ski> @type liftM Data.Dynamic.toDyn (System.IO.openFile "foobar" System.IO.ReadMode)
2022-11-03 12:20:58 +0100 <lambdabot> IO Dynamic
2022-11-03 12:21:00 +0100 <ski> @type liftM Data.Dynamic.toDyn (Data.IORef.newIORef ())
2022-11-03 12:21:01 +0100 <lambdabot> IO Dynamic
2022-11-03 12:27:14 +0100bjourne(~bjourne@2001:6b0:1:1140:42bf:ff4:f8fa:50e5)
2022-11-03 12:29:52 +0100king_gs(~Thunderbi@187.201.83.115) (Read error: Connection reset by peer)
2022-11-03 12:29:56 +0100king_gs1(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-03 12:30:22 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-03 12:31:15 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 12:32:09 +0100 <jco> dminuoso: Yeah, I wasn't even thinking of doing it manually here. Simplest.
2022-11-03 12:32:15 +0100king_gs1king_gs
2022-11-03 12:35:39 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Ping timeout: 255 seconds)
2022-11-03 12:43:50 +0100Sauvin(~sauvin@user/Sauvin)
2022-11-03 12:46:10 +0100elevenkb(~elevenkb@105.184.125.168) (Remote host closed the connection)
2022-11-03 12:49:37 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-03 12:56:40 +0100cfricke(~cfricke@user/cfricke)
2022-11-03 12:57:17 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Read error: Connection reset by peer)
2022-11-03 12:57:25 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 13:07:28 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Ping timeout: 246 seconds)
2022-11-03 13:10:43 +0100freeside_(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 13:11:29 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-11-03 13:18:26 +0100zaquest(~notzaques@5.130.79.72)
2022-11-03 13:18:42 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-03 13:19:06 +0100cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds)
2022-11-03 13:19:19 +0100cods(~fred@82-65-232-44.subs.proxad.net)
2022-11-03 13:19:31 +0100teo(~teo@user/teo) (Ping timeout: 252 seconds)
2022-11-03 13:20:49 +0100teo(~teo@user/teo)
2022-11-03 13:22:35 +0100abhiroop(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-03 13:26:39 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 13:29:15 +0100Heyting(~Heyting@193.198.16.217)
2022-11-03 13:30:12 +0100Guest283(bnc4free@has.arrived.and.is.ready-to.party) (Remote host closed the connection)
2022-11-03 13:34:29 +0100nilradical(~nilradica@user/naso)
2022-11-03 13:34:51 +0100Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-03 13:35:55 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-03 13:37:25 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-11-03 13:37:31 +0100kenran`(~user@user/kenran) (Remote host closed the connection)
2022-11-03 13:39:52 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-11-03 13:43:26 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-11-03 13:55:13 +0100nicmollel[m]nicm[m]
2022-11-03 13:58:24 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-11-03 14:01:33 +0100elevenkb(~elevenkb@105.184.125.168) (Ping timeout: 272 seconds)
2022-11-03 14:02:29 +0100doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-11-03 14:04:46 +0100elevenkb(~elevenkb@197-101-14-138.ip.broadband.is)
2022-11-03 14:04:58 +0100king_gs(~Thunderbi@187.201.83.115)
2022-11-03 14:11:24 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 14:14:42 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:58cc:160d:9dd:aaf4)
2022-11-03 14:15:00 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 248 seconds)
2022-11-03 14:16:41 +0100ozkutuk5(~ozkutuk@176.240.173.153)
2022-11-03 14:17:02 +0100xstill_(xstill@fimu/xstill) (Quit: Ping timeout (120 seconds))
2022-11-03 14:17:19 +0100xstill_(xstill@fimu/xstill)
2022-11-03 14:17:25 +0100freeside_(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 14:18:19 +0100haasn`(~nand@haasn.dev)
2022-11-03 14:18:55 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 14:19:07 +0100kawen_(~quassel@static.208.191.216.95.clients.your-server.de)
2022-11-03 14:19:51 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-03 14:24:17 +0100freeside_(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 14:27:19 +0100Sgeo(~Sgeo@user/sgeo)
2022-11-03 14:27:40 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 14:28:15 +0100ozkutuk(~ozkutuk@176.240.173.153) (Quit: Ping timeout (120 seconds))
2022-11-03 14:28:15 +0100ozkutuk5ozkutuk
2022-11-03 14:28:36 +0100haasn(~nand@haasn.dev) (Killed (NickServ (GHOST command used by haasn`)))
2022-11-03 14:28:36 +0100haasn`haasn
2022-11-03 14:28:46 +0100Heyting(~Heyting@193.198.16.217)
2022-11-03 14:32:43 +0100xff0x(~xff0x@2405:6580:b080:900:9a4a:3159:118e:c175) (Ping timeout: 255 seconds)
2022-11-03 14:33:06 +0100Guest71(~Guest71@ext-1-450.eduroam.chalmers.se)
2022-11-03 14:34:07 +0100kenran(~user@user/kenran)
2022-11-03 14:35:35 +0100nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-11-03 14:36:53 +0100littlefinger(~littlefin@pool-108-53-194-91.nwrknj.fios.verizon.net)
2022-11-03 14:37:01 +0100littlefinger(~littlefin@pool-108-53-194-91.nwrknj.fios.verizon.net) ()
2022-11-03 14:37:24 +0100Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-03 14:38:13 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 14:39:12 +0100juri_(~juri@84-19-175-179.pool.ovpn.com) (*.net *.split)
2022-11-03 14:39:12 +0100drewolson(~drewolson@user/drewolson) (*.net *.split)
2022-11-03 14:39:12 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (*.net *.split)
2022-11-03 14:39:12 +0100wz1000(~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split)
2022-11-03 14:39:12 +0100kawen(~quassel@static.208.191.216.95.clients.your-server.de) (*.net *.split)
2022-11-03 14:39:12 +0100spider_(~spider@vps-951ce37a.vps.ovh.ca) (*.net *.split)
2022-11-03 14:39:12 +0100vulpine(xfnw@tilde.team) (*.net *.split)
2022-11-03 14:39:12 +0100yaroot(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (*.net *.split)
2022-11-03 14:39:12 +0100hololeap(~quassel@user/hololeap) (*.net *.split)
2022-11-03 14:42:55 +0100mmhat(~mmh@2003:f1:c730:7621:ee08:6bff:fe09:5315) (Quit: WeeChat 3.7.1)
2022-11-03 14:43:10 +0100nilradical(~nilradica@user/naso)
2022-11-03 14:44:08 +0100ygsjg(~quassel@189.124.224.160)
2022-11-03 14:44:20 +0100jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-03 14:45:15 +0100xff0x(~xff0x@2405:6580:b080:900:aa5a:50b3:fed5:3fc2)
2022-11-03 14:45:24 +0100doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 248 seconds)
2022-11-03 14:50:02 +0100Guest13(~Guest13@2001:6b0:4f:2801:1467:20e3:85d3:3c07)
2022-11-03 14:50:27 +0100elevenkb(~elevenkb@197-101-14-138.ip.broadband.is) (Remote host closed the connection)
2022-11-03 14:53:33 +0100Guest13(~Guest13@2001:6b0:4f:2801:1467:20e3:85d3:3c07) (Client Quit)
2022-11-03 14:55:04 +0100Xeroine(~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2022-11-03 14:57:37 +0100Xeroine(~Xeroine@user/xeroine)
2022-11-03 14:58:45 +0100king_gs(~Thunderbi@187.201.83.115) (Read error: Connection reset by peer)
2022-11-03 14:59:00 +0100comerijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 15:01:16 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 15:01:43 +0100drewolson(~drewolson@user/drewolson)
2022-11-03 15:01:56 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-03 15:04:14 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2022-11-03 15:04:27 +0100nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-11-03 15:06:20 +0100 <vpan> hi, I'm trying to use a `newtype` to be able to define cassava instances for Data.Fixed types, see the reproducer I've minimized to - https://paste.tomsmeding.com/iHKJQS4D . What am I missing?
2022-11-03 15:07:49 +0100 <geekosaur> that expects "Cents 7" instead of just "7"
2022-11-03 15:08:57 +0100 <geekosaur> what are you trying to accomplish with the newtype, exactly?
2022-11-03 15:09:03 +0100 <kuribas> {- LANGUAGE GeneralizedNewtypeDeriving -}
2022-11-03 15:09:57 +0100 <geekosaur> you missed the pragma marks (`{-#`) and it won't help here
2022-11-03 15:10:04 +0100 <vpan> geekosaur: I need `FromField` cassava instances to parse CSV fields into fields of fixed precision types
2022-11-03 15:11:25 +0100 <kuribas> geekosaur: why not?
2022-11-03 15:12:15 +0100 <geekosaur> it's not a deriving error, it's just not doing what vpan wants. unless you mean using it to auto-derive FromField, and in that case I'm still not sure it would DTRT
2022-11-03 15:12:49 +0100jco(~jco@90-228-194-139-no542.tbcn.telia.com) (Quit: leaving)
2022-11-03 15:12:53 +0100 <kuribas> that's what I thought he wanted.
2022-11-03 15:13:20 +0100 <geekosaur> instance FromField Centi where … -- may require FlexibleInstances
2022-11-03 15:13:31 +0100thegeekinside(~thegeekin@189.180.115.115)
2022-11-03 15:13:44 +0100Xeroine(~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2022-11-03 15:17:16 +0100juri_(~juri@84-19-175-179.pool.ovpn.com)
2022-11-03 15:17:16 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-11-03 15:17:16 +0100wz1000(~zubin@static.11.113.47.78.clients.your-server.de)
2022-11-03 15:17:16 +0100spider_(~spider@vps-951ce37a.vps.ovh.ca)
2022-11-03 15:17:16 +0100vulpine(xfnw@tilde.team)
2022-11-03 15:17:16 +0100yaroot(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c)
2022-11-03 15:17:16 +0100hololeap(~quassel@user/hololeap)
2022-11-03 15:17:20 +0100hololeap(~quassel@user/hololeap) (Max SendQ exceeded)
2022-11-03 15:17:21 +0100vulpine(xfnw@tilde.team) (Max SendQ exceeded)
2022-11-03 15:17:25 +0100Xeroine(~Xeroine@user/xeroine)
2022-11-03 15:17:36 +0100hololeap(~quassel@user/hololeap)
2022-11-03 15:17:52 +0100vulpine(xfnw@tilde.team)
2022-11-03 15:20:34 +0100 <vpan> geekosaur: trying to define an instance for `Centi` fails - https://paste.tomsmeding.com/8w4ECAVb . That's why I tried a `newtype`. I realise the error is hinting at an extension, but I don't yet have an understanding which/how many extensions it is reasonable to enable, so I was trying to do it the "classic" way. :)
2022-11-03 15:21:25 +0100 <vpan> i.e. without enabling an extension
2022-11-03 15:22:09 +0100 <geekosaur> either use TypeSynonymInstances like it says, or define the instance for Fixed E2 instead of Centi
2022-11-03 15:22:10 +0100zaquest(~notzaques@5.130.79.72) (Ping timeout: 252 seconds)
2022-11-03 15:22:43 +0100cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds)
2022-11-03 15:23:22 +0100 <vpan> thanks
2022-11-03 15:23:27 +0100 <geekosaur> that may still demand an extension because neither Fixed or E2 is a type variable; you can't escape that one
2022-11-03 15:23:39 +0100 <geekosaur> \s/or/nor/
2022-11-03 15:23:49 +0100 <kuribas> a newtype is not a type synonym
2022-11-03 15:23:52 +0100 <geekosaur> Fixed uses some type trickery
2022-11-03 15:24:00 +0100Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi)
2022-11-03 15:24:03 +0100 <comerijn> kuribas: Centi isn't a newtype, so...
2022-11-03 15:24:10 +0100 <kuribas> oh right
2022-11-03 15:24:22 +0100 <geekosaur> it's a type alias for Fixed E2
2022-11-03 15:24:30 +0100cods(~fred@82-65-232-44.subs.proxad.net)
2022-11-03 15:25:58 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-03 15:26:01 +0100abhiroop(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 252 seconds)
2022-11-03 15:28:26 +0100motherfsck(~motherfsc@user/motherfsck)
2022-11-03 15:32:40 +0100nilradical(~nilradica@user/naso)
2022-11-03 15:33:24 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-11-03 15:33:53 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 15:35:35 +0100zaquest(~notzaques@5.130.79.72)
2022-11-03 15:38:21 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Ping timeout: 255 seconds)
2022-11-03 15:39:35 +0100xsarnik(xsarnik@lounge.fi.muni.cz) (Quit: Ping timeout (120 seconds))
2022-11-03 15:40:15 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-11-03 15:40:21 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-11-03 15:40:36 +0100shriekingnoise(~shrieking@186.137.167.202)
2022-11-03 15:49:44 +0100xsarnik(xsarnik@lounge.fi.muni.cz)
2022-11-03 15:52:18 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 15:53:21 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-11-03 15:53:56 +0100nil(~user@202.38.78.189)
2022-11-03 15:54:09 +0100nil(~user@202.38.78.189) ()
2022-11-03 15:54:28 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-03 15:55:03 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-03 15:56:49 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-11-03 16:04:17 +0100nate3(~nate@98.45.169.16)
2022-11-03 16:04:24 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 16:04:32 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-03 16:05:56 +0100vglfr(~vglfr@145.224.100.22) (Read error: Connection reset by peer)
2022-11-03 16:06:07 +0100vglfr(~vglfr@145.224.100.22)
2022-11-03 16:06:31 +0100ec(~ec@gateway/tor-sasl/ec)
2022-11-03 16:08:53 +0100drdo(~drdo@overlord.drdo.eu)
2022-11-03 16:08:56 +0100nate3(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-11-03 16:09:14 +0100nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-11-03 16:10:32 +0100nilradical(~nilradica@user/naso)
2022-11-03 16:17:15 +0100hexeme(~hexeme@user/hexeme)
2022-11-03 16:17:17 +0100hexeme_(~hexeme@user/hexeme) (Ping timeout: 240 seconds)
2022-11-03 16:19:22 +0100motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 252 seconds)
2022-11-03 16:23:14 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 16:29:54 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Remote host closed the connection)
2022-11-03 16:30:19 +0100vglfr(~vglfr@145.224.100.22) (Remote host closed the connection)
2022-11-03 16:30:44 +0100vglfr(~vglfr@145.224.100.22)
2022-11-03 16:35:13 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-11-03 16:35:13 +0100AlexNoo(~AlexNoo@178.34.163.109) (Read error: Connection reset by peer)
2022-11-03 16:35:42 +0100vglfr(~vglfr@145.224.100.22) (Remote host closed the connection)
2022-11-03 16:35:57 +0100AlexNoo(~AlexNoo@178.34.163.109)
2022-11-03 16:36:08 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 16:36:26 +0100vglfr(~vglfr@145.224.100.22)
2022-11-03 16:39:00 +0100Alex_test(~al_test@178.34.163.109) (Ping timeout: 248 seconds)
2022-11-03 16:39:32 +0100AlexZenon(~alzenon@178.34.163.109) (Ping timeout: 248 seconds)
2022-11-03 16:39:38 +0100motherfsck(~motherfsc@user/motherfsck)
2022-11-03 16:40:37 +0100AlexZenon(~alzenon@178.34.163.109)
2022-11-03 16:41:21 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2022-11-03 16:43:46 +0100Alex_test(~al_test@178.34.163.109)
2022-11-03 16:43:54 +0100zebrag(~chris@user/zebrag)
2022-11-03 16:44:03 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Ping timeout: 255 seconds)
2022-11-03 16:47:27 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-03 16:47:55 +0100nilradical(~nilradica@user/naso) ()
2022-11-03 16:49:13 +0100AlexNoo(~AlexNoo@178.34.163.109) (Read error: Connection reset by peer)
2022-11-03 16:49:19 +0100statusfailed(~statusfai@statusfailed.com) ()
2022-11-03 16:49:36 +0100AlexNoo(~AlexNoo@178.34.163.109)
2022-11-03 16:57:40 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 248 seconds)
2022-11-03 16:58:46 +0100Xeroine(~Xeroine@user/xeroine)
2022-11-03 16:59:08 +0100 <bjourne> are alex and happy supported anymore? they seem very outdated
2022-11-03 16:59:56 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Remote host closed the connection)
2022-11-03 17:00:15 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-11-03 17:00:52 +0100MajorBiscuit(~MajorBisc@145.94.167.250) (Ping timeout: 248 seconds)
2022-11-03 17:01:18 +0100 <geekosaur[m]> They're required to build GHC, not that you will be doing that
2022-11-03 17:01:31 +0100econo(uid147250@user/econo)
2022-11-03 17:01:56 +0100Taneb(~Taneb@runciman.hacksoc.org) (Quit: I seem to have stopped.)
2022-11-03 17:02:16 +0100jonathanx(~jonathan@98.128.168.222) (Ping timeout: 268 seconds)
2022-11-03 17:02:36 +0100 <geekosaur[m]> And happy in particular should be fairly up to date. Alex doesn't generally need changes
2022-11-03 17:03:01 +0100Taneb(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
2022-11-03 17:03:44 +0100drewolson3(~drewolson@user/drewolson)
2022-11-03 17:04:11 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-03 17:04:44 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-11-03 17:05:04 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-03 17:05:22 +0100 <bjourne> the code generated by alex contains deprecation warnings
2022-11-03 17:05:34 +0100drewolson(~drewolson@user/drewolson) (Ping timeout: 252 seconds)
2022-11-03 17:05:34 +0100drewolson3drewolson
2022-11-03 17:05:55 +0100 <comerijn> bjourne: Which deprecation warning(s)?
2022-11-03 17:12:54 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-03 17:12:58 +0100 <Hecate> haha that fucking sucks
2022-11-03 17:13:51 +0100 <Hecate> I believe ericson2314 has some leverage on Alex
2022-11-03 17:14:41 +0100 <AndreasK> I find all the fun bugs https://gitlab.haskell.org/ghc/ghc/-/issues/22402
2022-11-03 17:15:33 +0100 <Hecate> AndreasK: :'''')
2022-11-03 17:15:34 +0100 <Hecate> wow
2022-11-03 17:15:59 +0100tgi(~thegeekin@189.180.115.115)
2022-11-03 17:17:07 +0100thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 252 seconds)
2022-11-03 17:17:24 +0100comerijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2022-11-03 17:18:55 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-03 17:19:17 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
2022-11-03 17:19:56 +0100 <AndreasK> I will leave it at the diagnosis for today. But seems like a tricky one
2022-11-03 17:21:24 +0100dcoutts_(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Ping timeout: 255 seconds)
2022-11-03 17:21:31 +0100hololeap(~quassel@user/hololeap) (Ping timeout: 252 seconds)
2022-11-03 17:22:16 +0100hololeap(~quassel@user/hololeap)
2022-11-03 17:27:24 +0100dcoutts_(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-03 17:27:34 +0100Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi) (Ping timeout: 252 seconds)
2022-11-03 17:27:42 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds)
2022-11-03 17:28:03 +0100Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi)
2022-11-03 17:28:52 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-03 17:29:46 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Ping timeout: 252 seconds)
2022-11-03 17:29:55 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 17:31:57 +0100 <absence> if I have a (SomeField r, SomeOtherField r) => ReaderT r m a, i sometimes find myself wanting to temporarily "add" fields to r. i can do that by defining a new record that wraps the old one, i.e. data Wrapper r = Wrapper { x :: ExcitingNewField, oldStuff :: r }, and call withReaderT Wrapper, but then I have to write instances for SomeField and SomeOtherField for the Wrapper. it's just boring boilerplate
2022-11-03 17:32:03 +0100 <absence> that delegates to the oldStuff field, so i wonder if there's a better way to extend a reader?
2022-11-03 17:33:50 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-03 17:36:31 +0100Spukgespenst(~user@user/siracusa) (Quit: Bye!)
2022-11-03 17:40:09 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-03 17:40:15 +0100 <absence> i suppose it's possible to use DerivingVia and HasField to reduce the amount of boilerplate, but maybe there are better options
2022-11-03 17:40:55 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 17:44:08 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 17:47:35 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-03 17:49:58 +0100ec(~ec@gateway/tor-sasl/ec)
2022-11-03 17:50:08 +0100Alex_test_(~al_test@178.34.163.109)
2022-11-03 17:50:08 +0100 <[exa]> absence: anything would prevent you from using the DuplicateRecordFields or so and just feeding it more data structures?
2022-11-03 17:50:21 +0100rodental(~rodental@38.146.5.222) (Remote host closed the connection)
2022-11-03 17:50:21 +0100AlexNoo_(~AlexNoo@178.34.163.109)
2022-11-03 17:50:22 +0100rodental(~rodental@38.146.5.222)
2022-11-03 17:51:39 +0100 <[exa]> (...still that makes you copy most of the structure definition which is likely not what you want)
2022-11-03 17:52:05 +0100Alex_test(~al_test@178.34.163.109) (Ping timeout: 272 seconds)
2022-11-03 17:52:06 +0100teo_(~teo@user/teo)
2022-11-03 17:53:59 +0100AlexNoo(~AlexNoo@178.34.163.109) (Ping timeout: 272 seconds)
2022-11-03 17:53:59 +0100teo(~teo@user/teo) (Ping timeout: 272 seconds)
2022-11-03 17:54:57 +0100 <geekosaur> row types when?
2022-11-03 17:58:30 +0100 <Hecate> I wish
2022-11-03 18:01:07 +0100irrgit_(~irrgit@146.70.27.242) (Ping timeout: 252 seconds)
2022-11-03 18:04:16 +0100Alex_test_Alex_test
2022-11-03 18:05:28 +0100AlexNoo_AlexNoo
2022-11-03 18:06:51 +0100 <absence> [exa]: i guess that would move the boilerplate to the conversion function passed to withReaderT
2022-11-03 18:08:49 +0100vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-03 18:09:07 +0100vglfr(~vglfr@145.224.100.22)
2022-11-03 18:11:04 +0100drdo5(~drdo@overlord.drdo.eu)
2022-11-03 18:11:36 +0100drdo(~drdo@overlord.drdo.eu) (Killed (NickServ (GHOST command used by drdo5)))
2022-11-03 18:11:47 +0100drdo5drdo
2022-11-03 18:14:06 +0100irrgit_(~irrgit@146.70.27.242)
2022-11-03 18:16:47 +0100causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d)
2022-11-03 18:17:37 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 18:17:47 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-03 18:18:07 +0100Kaipii(~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds)
2022-11-03 18:20:15 +0100ccapndave(~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
2022-11-03 18:21:19 +0100causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d) (Ping timeout: 255 seconds)
2022-11-03 18:24:27 +0100ccapndave(~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Client Quit)
2022-11-03 18:24:46 +0100teo_(~teo@user/teo) (Ping timeout: 252 seconds)
2022-11-03 18:25:23 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-11-03 18:29:47 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2022-11-03 18:35:24 +0100causal(~user@50.35.83.177)
2022-11-03 18:37:31 +0100mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-03 18:38:04 +0100Alex_test_(~al_test@178.34.163.109)
2022-11-03 18:38:25 +0100chele_(~chele@user/chele) (Remote host closed the connection)
2022-11-03 18:39:36 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-03 18:39:37 +0100Alex_test(~al_test@178.34.163.109) (Ping timeout: 252 seconds)
2022-11-03 18:40:11 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-03 18:42:01 +0100razetime(~quassel@117.254.34.146) (Remote host closed the connection)
2022-11-03 18:43:17 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 18:44:27 +0100 <Profpatsch> I wish
2022-11-03 18:45:55 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-03 18:46:14 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 18:46:57 +0100Guest75(~Guest75@178.141.177.81)
2022-11-03 18:47:51 +0100zebrag(~chris@user/zebrag) (Read error: Connection reset by peer)
2022-11-03 18:48:15 +0100zebrag(~chris@user/zebrag)
2022-11-03 18:48:21 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-03 18:50:46 +0100 <monochrom> Buy row types on wish.com :)
2022-11-03 18:51:10 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 18:59:28 +0100Kaipii(~Kaiepi@108.175.84.104)
2022-11-03 18:59:39 +0100vpan(~0@212.117.1.172) (Quit: Leaving.)
2022-11-03 19:02:04 +0100ft(~ft@80.141.189.89)
2022-11-03 19:04:28 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Ping timeout: 246 seconds)
2022-11-03 19:07:10 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-11-03 19:07:39 +0100fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
2022-11-03 19:07:41 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 19:08:26 +0100talismanick(~talismani@96-67-197-217-static.hfc.comcastbusiness.net)
2022-11-03 19:09:58 +0100califax(~califax@user/califx)
2022-11-03 19:09:59 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 276 seconds)
2022-11-03 19:12:42 +0100freeside(~mengwong@115.66.48.84)
2022-11-03 19:14:34 +0100jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-03 19:14:34 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
2022-11-03 19:15:22 +0100EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-11-03 19:16:20 +0100EvanR(~EvanR@user/evanr)
2022-11-03 19:19:33 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 19:24:06 +0100freeside(~mengwong@115.66.48.84) (Ping timeout: 268 seconds)
2022-11-03 19:24:27 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 19:25:08 +0100Guest75(~Guest75@178.141.177.81) (Ping timeout: 260 seconds)
2022-11-03 19:25:35 +0100fserucas_(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 276 seconds)
2022-11-03 19:26:13 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2022-11-03 19:33:00 +0100chronon(~chronon@user/chronon) (Quit: leaving)
2022-11-03 19:33:08 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-11-03 19:34:28 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 248 seconds)
2022-11-03 19:36:07 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-03 19:36:08 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-03 19:36:13 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-03 19:39:12 +0100simple(skralg@user/simple)
2022-11-03 19:40:20 +0100gmg(~user@user/gehmehgeh)
2022-11-03 19:40:27 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 255 seconds)
2022-11-03 19:41:30 +0100eggplant_(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 19:43:25 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-11-03 19:45:55 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Remote host closed the connection)
2022-11-03 19:46:14 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-03 19:46:16 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-03 19:47:23 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-03 19:49:52 +0100Guest71(~Guest71@ext-1-450.eduroam.chalmers.se) (Quit: Client closed)
2022-11-03 19:52:37 +0100Alex_test_Alex_test
2022-11-03 19:52:46 +0100rodental(~rodental@38.146.5.222) (Ping timeout: 252 seconds)
2022-11-03 19:53:10 +0100rodental(~rodental@38.146.5.222)
2022-11-03 19:53:32 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-03 20:01:40 +0100finsternis(~X@23.226.237.192) (Ping timeout: 248 seconds)
2022-11-03 20:02:04 +0100finsternis(~X@23.226.237.192)
2022-11-03 20:03:55 +0100rond_(~rond_@87.74.205.31)
2022-11-03 20:04:11 +0100ephemient(uid407513@id-407513.lymington.irccloud.com)
2022-11-03 20:04:38 +0100chronon(~chronon@user/chronon)
2022-11-03 20:05:25 +0100irrgit_(~irrgit@146.70.27.242) (Ping timeout: 252 seconds)
2022-11-03 20:05:47 +0100nate3(~nate@98.45.169.16)
2022-11-03 20:05:47 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-03 20:10:39 +0100nate3(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-11-03 20:12:00 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-11-03 20:12:34 +0100vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-03 20:13:07 +0100drdo1(~drdo@overlord.drdo.eu)
2022-11-03 20:13:17 +0100vglfr(~vglfr@145.224.100.22)
2022-11-03 20:13:18 +0100drdo(~drdo@overlord.drdo.eu) (Killed (NickServ (GHOST command used by drdo1)))
2022-11-03 20:13:18 +0100drdo1drdo
2022-11-03 20:13:45 +0100mvk(~mvk@2607:fea8:5ce3:8500::4b68) (Ping timeout: 255 seconds)
2022-11-03 20:14:48 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 20:17:34 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 20:20:55 +0100jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
2022-11-03 20:23:26 +0100Alex_test_(~al_test@178.34.163.109)
2022-11-03 20:23:34 +0100AlexNoo_(~AlexNoo@178.34.163.109)
2022-11-03 20:24:11 +0100AlexNoo(~AlexNoo@178.34.163.109) (Read error: Connection reset by peer)
2022-11-03 20:25:21 +0100Alex_test(~al_test@178.34.163.109) (Ping timeout: 271 seconds)
2022-11-03 20:25:57 +0100ss4(~wootehfoo@user/wootehfoot)
2022-11-03 20:27:14 +0100caryhartline(~caryhartl@2603-8080-6a0e-8d88-01fd-d633-9a8e-c806.res6.spectrum.com)
2022-11-03 20:28:38 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 20:29:04 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
2022-11-03 20:33:30 +0100ss4(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2022-11-03 20:35:52 +0100eggplant_(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Remote host closed the connection)
2022-11-03 20:37:24 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 248 seconds)
2022-11-03 20:39:29 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2022-11-03 20:43:36 +0100Xeroine(~Xeroine@user/xeroine)
2022-11-03 20:44:57 +0100gentauro(~gentauro@user/gentauro)
2022-11-03 20:49:25 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 20:50:29 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:58cc:160d:9dd:aaf4) (Quit: WeeChat 2.8)
2022-11-03 20:51:04 +0100zebrag(~chris@user/zebrag) (Ping timeout: 252 seconds)
2022-11-03 20:51:39 +0100zebrag(~chris@user/zebrag)
2022-11-03 20:53:31 +0100AlexNoo_AlexNoo
2022-11-03 20:53:47 +0100Alex_test_Alex_test
2022-11-03 20:56:49 +0100redmp(~redmp@lib-02-subnet-194.rdns.cenic.net)
2022-11-03 20:57:16 +0100burakcan-(burakcank@2a01:4f8:c17:efa0::3)
2022-11-03 20:57:23 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 21:00:22 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-03 21:01:54 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds)
2022-11-03 21:03:43 +0100Kaipii(~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds)
2022-11-03 21:04:11 +0100seriously_guest(~seriously@2001:1c06:2715:c200:de2b:899c:1c2e:ded7)
2022-11-03 21:09:01 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 21:13:29 +0100acidjnk(~acidjnk@p200300d6e7137a343957ed7bae49a26a.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2022-11-03 21:14:08 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2022-11-03 21:16:05 +0100jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-03 21:16:05 +0100jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
2022-11-03 21:16:55 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 21:19:04 +0100acidjnk(~acidjnk@p200300d6e7137a515579cbbbe79af53b.dip0.t-ipconnect.de)
2022-11-03 21:21:47 +0100pavonia(~user@user/siracusa)
2022-11-03 21:22:58 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Ping timeout: 252 seconds)
2022-11-03 21:23:44 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 21:25:03 +0100olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Remote host closed the connection)
2022-11-03 21:30:11 +0100whatsupdoc(uid509081@2a03:5180:f:4::7:c499)
2022-11-03 21:30:41 +0100 <ski> convoluted in the day, or well composed, i effect my actions
2022-11-03 21:31:21 +0100sadmax(~user@209.205.174.253)
2022-11-03 21:33:02 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-11-03 21:34:06 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-03 21:35:20 +0100califax(~califax@user/califx)
2022-11-03 21:36:21 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-03 21:41:07 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-11-03 21:44:53 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 21:49:36 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 255 seconds)
2022-11-03 21:57:34 +0100jlgw(~jw@83-233-104-81.cust.bredband2.com)
2022-11-03 22:03:46 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-03 22:04:10 +0100gqplox(~textual@147.188.245.207)
2022-11-03 22:05:03 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-03 22:05:10 +0100seriously_guest(~seriously@2001:1c06:2715:c200:de2b:899c:1c2e:ded7) (Quit: Client closed)
2022-11-03 22:06:11 +0100 <gqplox> hello guys
2022-11-03 22:06:36 +0100 <[exa]> o/
2022-11-03 22:06:57 +0100 <gqplox> im going through some exercises, i wrote this function http://sprunge.us/1JnI85 but it is a bit stupid to see the isfactor 2, 3, etc.
2022-11-03 22:07:20 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 22:07:33 +0100 <gqplox> http://sprunge.us/xIWuRw
2022-11-03 22:07:37 +0100 <gqplox> sorry here is all of it
2022-11-03 22:07:42 +0100 <gqplox> so i wanted to make it better using all
2022-11-03 22:07:55 +0100 <gqplox> but im confused how i can do that as I need two arguments for my isfactor function
2022-11-03 22:07:56 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 22:08:14 +0100 <gqplox> but i want to make it something like all isFactor n x [1..12
2022-11-03 22:08:17 +0100 <byorgey> gqplox: do you know about lambdas?
2022-11-03 22:08:37 +0100chronon(~chronon@user/chronon) (Ping timeout: 252 seconds)
2022-11-03 22:09:08 +0100 <gqplox> yes i do
2022-11-03 22:09:21 +0100 <[exa]> :t all
2022-11-03 22:09:22 +0100 <lambdabot> Foldable t => (a -> Bool) -> t a -> Bool
2022-11-03 22:09:37 +0100 <[exa]> > all isEven [2,4,6]
2022-11-03 22:09:39 +0100 <lambdabot> error:
2022-11-03 22:09:39 +0100 <lambdabot> Variable not in scope: isEven :: a0 -> Bool
2022-11-03 22:09:46 +0100 <byorgey> gqplox: you're very much on the right track. You could just use a lambda to create a one-argument function that takes n as input and returns (isFactor n x)
2022-11-03 22:10:00 +0100 <byorgey> then that lambda can be the input to 'all'
2022-11-03 22:10:12 +0100chronon(~chronon@user/chronon)
2022-11-03 22:10:41 +0100 <[exa]> > all even [2,4,6] -- gqplox corrected example, sorry for the previous one
2022-11-03 22:10:42 +0100 <lambdabot> True
2022-11-03 22:11:52 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2022-11-03 22:13:40 +0100harsy(~harsy@2409:4072:6211:4f25::169f:60ad)
2022-11-03 22:14:45 +0100jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-03 22:14:52 +0100 <harsy> for every cabal project haskell is downloaded again and again?
2022-11-03 22:15:16 +0100 <sclv> what? no
2022-11-03 22:16:19 +0100vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-03 22:16:39 +0100 <harsy> okay thanks. i think its just checking all indexes
2022-11-03 22:16:48 +0100 <gqplox> ah thank you byorgey
2022-11-03 22:16:51 +0100 <gqplox> i have this now
2022-11-03 22:16:52 +0100 <gqplox> http://sprunge.us/cioZM9
2022-11-03 22:17:36 +0100 <gqplox> so the x inside the lambda is being taken from outside of it?
2022-11-03 22:18:45 +0100 <harsy> i have small doubt.  can we use hackage packages in stack project?
2022-11-03 22:19:05 +0100oo_miguel[m](~oomiguelm@2001:470:69fc:105::1:5ab0)
2022-11-03 22:19:16 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2022-11-03 22:19:47 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 276 seconds)
2022-11-03 22:19:55 +0100 <[exa]> harsy: https://github.com/commercialhaskell/stack/issues/2122 might be relevant
2022-11-03 22:20:26 +0100 <harsy> thank you i will look into it.
2022-11-03 22:20:33 +0100 <ski> all (`isFactor` x) [1 .. 12] -- gqplox
2022-11-03 22:21:03 +0100 <ski> x `isFactor` y = y `mod` x == 0 -- is also possible
2022-11-03 22:21:43 +0100 <ski> gqplox : yes, `x' was a nonlocal variable in the lambda abstraction
2022-11-03 22:21:54 +0100 <gqplox> ah nice
2022-11-03 22:22:16 +0100 <gqplox> so thats quite useful then i guess
2022-11-03 22:22:21 +0100harsy(~harsy@2409:4072:6211:4f25::169f:60ad) (Quit: Client closed)
2022-11-03 22:22:44 +0100 <gqplox> oh cool that's even better `isFactor` x thank you
2022-11-03 22:24:04 +0100 <gqplox> so how does that work? it just assumes because isFactor takes two that you will be supplied the first?
2022-11-03 22:24:05 +0100skiwould call it `divides', though
2022-11-03 22:24:13 +0100 <gqplox> oh yeah true
2022-11-03 22:24:22 +0100 <ski> d `divides` n = n `mod` d == 0
2022-11-03 22:24:46 +0100nisstyre(~wes@user/nisstyre) (Ping timeout: 260 seconds)
2022-11-03 22:25:11 +0100 <ski> 0 `divides` n = n == 0 -- might want this special case, since `mod' (and `rem') doesn't like zero denominator/divisor, for silly reasons
2022-11-03 22:25:55 +0100 <gqplox> oh right thanks
2022-11-03 22:26:01 +0100 <ski> (doesn't really matter for `highlyDivisible', though)
2022-11-03 22:26:24 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-11-03 22:26:28 +0100 <gqplox> so in the all(`isFactor` x) the way you have left out the first argument, it is just implied?
2022-11-03 22:26:46 +0100Alex_test(~al_test@178.34.163.109) (Ping timeout: 252 seconds)
2022-11-03 22:26:54 +0100 <ski> it's called a section
2022-11-03 22:27:04 +0100Alex_test(~al_test@178.34.163.109)
2022-11-03 22:27:08 +0100 <ski> > map (^ 2) [0 .. 9] -- another example
2022-11-03 22:27:10 +0100 <lambdabot> [0,1,4,9,16,25,36,49,64,81]
2022-11-03 22:27:27 +0100 <gqplox> oh nice
2022-11-03 22:27:49 +0100 <ski> `(^ 2)' means `\x -> x ^ 2'. `(2 ^)' means `\y -> 2 ^ y' (or `(^) 2' ..)
2022-11-03 22:28:03 +0100 <ski> ditto for the nonsymbolic infix operators, using the backticks
2022-11-03 22:28:32 +0100 <gqplox> very cool
2022-11-03 22:28:33 +0100 <gqplox> thanks
2022-11-03 22:28:50 +0100 <gqplox> really is very concise
2022-11-03 22:29:21 +0100nineonine(~nineonine@2604:3d08:7780:cd00:a9d4:e2db:2f89:8800)
2022-11-03 22:29:30 +0100abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 22:29:37 +0100 <Athas> Like 80% of Haskell's greatness over other functional languages comes from such small syntactic niceties.
2022-11-03 22:29:57 +0100sadmax`(~user@209.205.174.253)
2022-11-03 22:30:49 +0100sadmax`(~user@209.205.174.253) (Client Quit)
2022-11-03 22:31:00 +0100 <[exa]> ...such as monads
2022-11-03 22:32:54 +0100off^(~off@76.145.185.103)
2022-11-03 22:34:01 +0100ystael(~ystael@user/ystael) (Quit: Lost terminal)
2022-11-03 22:34:53 +0100Xeroine(~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2022-11-03 22:37:44 +0100Xeroine(~Xeroine@user/xeroine)
2022-11-03 22:38:21 +0100abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 272 seconds)
2022-11-03 22:39:03 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2022-11-03 22:40:04 +0100gqplox(~textual@147.188.245.207) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-11-03 22:40:35 +0100AlexNoo_(~AlexNoo@178.34.163.109)
2022-11-03 22:44:03 +0100AlexNoo(~AlexNoo@178.34.163.109) (Ping timeout: 272 seconds)
2022-11-03 22:44:42 +0100gqplox(~textual@147.188.245.207)
2022-11-03 22:47:55 +0100michalz(~michalz@185.246.207.222) (Remote host closed the connection)
2022-11-03 22:48:13 +0100gentauro(~gentauro@user/gentauro) (Ping timeout: 252 seconds)
2022-11-03 22:48:26 +0100gentauro(~gentauro@user/gentauro)
2022-11-03 22:48:38 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 22:50:12 +0100talismanick(~talismani@96-67-197-217-static.hfc.comcastbusiness.net) (Ping timeout: 248 seconds)
2022-11-03 22:51:45 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2022-11-03 22:53:10 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 22:54:02 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-11-03 22:54:49 +0100sadmax(~user@209.205.174.253) (Ping timeout: 272 seconds)
2022-11-03 22:55:24 +0100gmg(~user@user/gehmehgeh)
2022-11-03 22:59:51 +0100ystael(~ystael@user/ystael)
2022-11-03 23:03:50 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2022-11-03 23:04:40 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2022-11-03 23:05:15 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-11-03 23:06:32 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 23:09:07 +0100thegeekinside(~thegeekin@189.180.115.115)
2022-11-03 23:10:45 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2022-11-03 23:11:05 +0100gqplox(~textual@147.188.245.207) (Quit: Textual IRC Client: www.textualapp.com)
2022-11-03 23:11:47 +0100tgi(~thegeekin@189.180.115.115) (Ping timeout: 276 seconds)
2022-11-03 23:16:35 +0100mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-03 23:17:34 +0100jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-03 23:19:16 +0100acidjnk(~acidjnk@p200300d6e7137a515579cbbbe79af53b.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-03 23:19:50 +0100tgi(~thegeekin@189.180.115.115)
2022-11-03 23:20:07 +0100jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 252 seconds)
2022-11-03 23:22:19 +0100thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 252 seconds)
2022-11-03 23:27:27 +0100caryhartline(~caryhartl@2603-8080-6a0e-8d88-01fd-d633-9a8e-c806.res6.spectrum.com) (Quit: caryhartline)
2022-11-03 23:29:45 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 23:35:57 +0100Topsi(~Topsi@ipb218f69e.dynamic.kabel-deutschland.de)
2022-11-03 23:37:20 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Quit: king_gs)
2022-11-03 23:37:35 +0100king_gs(~Thunderbi@187.201.83.115)
2022-11-03 23:39:19 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2022-11-03 23:39:47 +0100elevenkb(~elevenkb@105.184.125.168) (Ping timeout: 272 seconds)
2022-11-03 23:39:58 +0100rond_(~rond_@87.74.205.31) (Quit: Client closed)
2022-11-03 23:42:06 +0100redmp(~redmp@lib-02-subnet-194.rdns.cenic.net) (Ping timeout: 255 seconds)
2022-11-03 23:46:00 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 23:52:51 +0100mncheckm(~mncheck@193.224.205.254) (Ping timeout: 268 seconds)
2022-11-03 23:54:21 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Remote host closed the connection)
2022-11-03 23:55:23 +0100 <Axman6> anyone know of any parser combinator libraries that let you use regular expressions as part of the parser?
2022-11-03 23:57:18 +0100Topsi(~Topsi@ipb218f69e.dynamic.kabel-deutschland.de) (Quit: Leaving.)