2022/11/03

2022-11-03 00:01:31 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-03 00:03:11 +0000crns(~netcrns@p4ff5e3ac.dip0.t-ipconnect.de)
2022-11-03 00:03:11 +0000crns(~netcrns@p4ff5e3ac.dip0.t-ipconnect.de) (Changing host)
2022-11-03 00:03:11 +0000crns(~netcrns@user/crns)
2022-11-03 00:03:33 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
2022-11-03 00:10:50 +0000lambdap237(~lambdap@static.167.190.119.168.clients.your-server.de) (Read error: Software caused connection abort)
2022-11-03 00:11:22 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 00:12:06 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68) (Ping timeout: 255 seconds)
2022-11-03 00:12:55 +0000lambdap237(~lambdap@static.167.190.119.168.clients.your-server.de)
2022-11-03 00:15:48 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-03 00:25:15 +0000k8yun_(~k8yun@user/k8yun) (Quit: Leaving)
2022-11-03 00:27:06 +0000lbseale(~quassel@user/ep1ctetus) (Ping timeout: 260 seconds)
2022-11-03 00:27:11 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 00:27:24 +0000lbseale(~quassel@user/ep1ctetus)
2022-11-03 00:28:29 +0000mmhat(~mmh@p200300f1c7307621ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
2022-11-03 00:29:24 +0000Topsi1(~Topsi@ipb218f713.dynamic.kabel-deutschland.de)
2022-11-03 00:30:34 +0000Topsi(~Topsi@ipb218f713.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2022-11-03 00:32:13 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-11-03 00:34:24 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-03 00:35:22 +0000tcard(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Read error: Software caused connection abort)
2022-11-03 00:37:00 +0000tcard(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9)
2022-11-03 00:37:05 +0000finsternis(~X@23.226.237.192)
2022-11-03 00:40:54 +0000nilradical(~nilradica@user/naso)
2022-11-03 00:45:00 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 00:51:42 +0000Feuermagier(~Feuermagi@user/feuermagier)
2022-11-03 00:52:20 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-11-03 00:56:51 +0000ski(~ski@remote11.chalmers.se) (Read error: Software caused connection abort)
2022-11-03 00:58:55 +0000gabiruh_(~gabiruh@vps19177.publiccloud.com.br)
2022-11-03 00:59:14 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Remote host closed the connection)
2022-11-03 00:59:43 +0000gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
2022-11-03 01:00:46 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 01:01:15 +0000jakalx(~jakalx@base.jakalx.net)
2022-11-03 01:01:28 +0000ub(~Thunderbi@77.119.196.32.wireless.dyn.drei.com)
2022-11-03 01:01:47 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-03 01:02:12 +0000zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!)
2022-11-03 01:02:44 +0000ubert(~Thunderbi@91.141.39.16.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
2022-11-03 01:02:44 +0000ububert
2022-11-03 01:02:50 +0000califax(~califax@user/califx)
2022-11-03 01:03:05 +0000ski(~ski@remote11.chalmers.se)
2022-11-03 01:09:38 +0000chomwitt(~chomwitt@athe730-c-multi-217.home.otenet.gr) (Ping timeout: 246 seconds)
2022-11-03 01:11:13 +0000nilradical(~nilradica@user/naso) ()
2022-11-03 01:11:51 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-11-03 01:12:00 +0000_leo92_(~emmanuelu@user/emmanuelux)
2022-11-03 01:13:22 +0000emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 255 seconds)
2022-11-03 01:14:34 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds)
2022-11-03 01:16:36 +0000bgamari_(~bgamari@64.223.168.223)
2022-11-03 01:16:44 +0000bgamari(~bgamari@64.223.227.132) (Ping timeout: 268 seconds)
2022-11-03 01:16:48 +0000monochrom(trebla@216.138.220.146) (Read error: Software caused connection abort)
2022-11-03 01:17:17 +0000gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-11-03 01:17:59 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-11-03 01:20:46 +0000monochrom(trebla@216.138.220.146)
2022-11-03 01:21:24 +0000Xeroine(~Xeroine@user/xeroine) (Ping timeout: 248 seconds)
2022-11-03 01:21:36 +0000 <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 01:22:44 +0000Xeroine(~Xeroine@user/xeroine)
2022-11-03 01:25:15 +0000 <chromoblob> i'm struggling because R is recursive data type, and because of laziness (maybe these both are a same point)
2022-11-03 01:25:40 +0000 <ski> what's the intended interpretation of `M1',`Z',`P1' ?
2022-11-03 01:26:14 +0000 <chromoblob> minus one digit, zero digit, one digit
2022-11-03 01:26:41 +0000 <chromoblob> one could code thus data Digit = M1 | Z | P1; data R = R Digit R
2022-11-03 01:27:55 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-03 01:28:41 +0000califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-11-03 01:30:17 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 01:30:59 +0000 <ski> chromoblob : symmetric base three ?
2022-11-03 01:31:12 +0000califax(~califax@user/califx)
2022-11-03 01:31:48 +0000 <ski> anyway, `R = Nat -> Digit', so `R -> R = (Nat -> Digit) -> Nat -> Digit = Nat -> Cont Digit Nat'
2022-11-03 01:32:05 +0000 <ski> (not sure if that helps, really .. just noting it)
2022-11-03 01:32:42 +0000 <ski> .. i guess maybe you could do some bar recursion or fan theorem kind of thing .. hmm
2022-11-03 01:33:13 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 01:34:18 +0000 <ski> type R_to_R = (Tree,Tree,Tree)
2022-11-03 01:34:18 +0000 <ski> data Tree = Const Digit | Branch Tree Tree Tree
2022-11-03 01:34:44 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 248 seconds)
2022-11-03 01:36:18 +0000nate3(~nate@98.45.169.16)
2022-11-03 01:36:18 +0000 <ski> (that's a redundant representation, not "tight")
2022-11-03 01:36:19 +0000 <chromoblob> i don't see how it reflects a function
2022-11-03 01:36:45 +0000 <chromoblob> there's only one digit at the end of each path
2022-11-03 01:36:57 +0000 <ski> er, hm, `type R_to_R = Nat -> Tree', rather
2022-11-03 01:38:23 +0000 <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 01:38:48 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-11-03 01:39:15 +0000 <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 01:41:21 +0000nate3(~nate@98.45.169.16) (Ping timeout: 272 seconds)
2022-11-03 01:42:21 +0000 <ski> <https://math.andrej.com/2009/10/12/constructive-gem-double-exponentials/> has the basic idea
2022-11-03 01:42:29 +0000 <ski> you may also want to compare with
2022-11-03 01:42:33 +0000 <ski> @where impossible
2022-11-03 01:42:34 +0000 <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 01:48:46 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 01:53:37 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 01:58:34 +0000taeaad(~taeaad@user/taeaad) (Ping timeout: 252 seconds)
2022-11-03 02:01:04 +0000taeaad(~taeaad@user/taeaad)
2022-11-03 02:04:05 +0000glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-03 02:04:46 +0000abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 02:05:26 +0000nate3(~nate@98.45.169.16)
2022-11-03 02:07:54 +0000califax_(~califax@user/califx)
2022-11-03 02:07:55 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 02:07:57 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-03 02:09:37 +0000califax_califax
2022-11-03 02:11:13 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 02:12:35 +0000bilegeek(~bilegeek@2600:1008:b044:33bf:f451:b0ca:9bd5:7375)
2022-11-03 02:12:59 +0000Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 246 seconds)
2022-11-03 02:14:03 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2022-11-03 02:14:03 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-11-03 02:15:20 +0000Lord_of_Life_Lord_of_Life
2022-11-03 02:16:18 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 255 seconds)
2022-11-03 02:17:16 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Ping timeout: 252 seconds)
2022-11-03 02:21:15 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 02:30:47 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-03 02:31:34 +0000lbseale(~quassel@user/ep1ctetus) (Ping timeout: 252 seconds)
2022-11-03 02:32:05 +0000lbseale(~quassel@user/ep1ctetus)
2022-11-03 02:32:35 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-03 02:37:34 +0000mixfix41(~sdeny9ee@user/mixfix41)
2022-11-03 02:40:52 +0000ksqsf(~ksqsf@2001:da8:d800:611:302c:76b8:e8aa:8bc8)
2022-11-03 02:56:52 +0000irrgit(~irrgit@89.47.234.74) (Ping timeout: 252 seconds)
2022-11-03 02:57:19 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-11-03 02:59:32 +0000Sauvin(~sauvin@user/Sauvin) (Ping timeout: 248 seconds)
2022-11-03 02:59:53 +0000Athas(~athas@2a01:7c8:aaac:1cf:ba6c:ed85:faef:e8b1) (Quit: ZNC 1.8.2 - https://znc.in)
2022-11-03 03:00:03 +0000Athas(~athas@sigkill.dk)
2022-11-03 03:01:42 +0000ksqsf(~ksqsf@2001:da8:d800:611:302c:76b8:e8aa:8bc8) (Quit: Leaving...)
2022-11-03 03:04:01 +0000nate3(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-11-03 03:04:52 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-11-03 03:09:24 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
2022-11-03 03:09:44 +0000irrgit(~irrgit@86.106.90.226)
2022-11-03 03:10:37 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 03:11:00 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-11-03 03:24:05 +0000polomoney
2022-11-03 03:24:35 +0000td_(~td@83.135.9.45) (Ping timeout: 272 seconds)
2022-11-03 03:26:11 +0000td_(~td@83.135.9.44)
2022-11-03 03:31:07 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 03:35:59 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-11-03 03:40:57 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-11-03 03:40:57 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-11-03 03:40:57 +0000finn_elijaFinnElija
2022-11-03 03:41:35 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 03:44:14 +0000tgi(~thegeekin@189.180.115.115)
2022-11-03 03:47:50 +0000thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 246 seconds)
2022-11-03 03:48:57 +0000thegeekinside(~thegeekin@189.180.115.115)
2022-11-03 03:50:44 +0000tgi(~thegeekin@189.180.115.115) (Ping timeout: 248 seconds)
2022-11-03 03:51:12 +0000tgi(~thegeekin@189.180.115.115)
2022-11-03 03:53:24 +0000thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 248 seconds)
2022-11-03 03:57:19 +0000cleetus(~cleetus@63.239.66.138)
2022-11-03 03:57:37 +0000tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 255 seconds)
2022-11-03 03:59:23 +0000cleetus(~cleetus@63.239.66.138) ()
2022-11-03 03:59:25 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 272 seconds)
2022-11-03 04:03:47 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 04:05:11 +0000talismanick(~talismani@2601:200:c100:c9e0::1b0b)
2022-11-03 04:07:59 +0000 <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 04:08:11 +0000abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 04:08:20 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2022-11-03 04:08:22 +0000abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 252 seconds)
2022-11-03 04:08:22 +0000 <talismanick> does that mean the compiler uses Either String's MonadFail instance to turn all the calls to `error` into `Left`?
2022-11-03 04:10:06 +0000 <talismanick> (leaving aside from the moment that `Left "an error occurred"` isn't that much better than an exception)
2022-11-03 04:10:14 +0000niko(niko@libera/staff/niko) (Ping timeout: 612 seconds)
2022-11-03 04:10:15 +0000 <talismanick> for the moment*
2022-11-03 04:15:25 +0000 <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 04:16:05 +0000 <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 04:16:33 +0000 <ski> @undo do Just x <- return Nothing; return x
2022-11-03 04:16:33 +0000 <lambdabot> return Nothing >>= \ a -> case a of { Just x -> return x; _ -> fail ""}
2022-11-03 04:17:18 +0000justsomeguy(~justsomeg@user/justsomeguy)
2022-11-03 04:19:27 +0000 <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 04:20:34 +0000 <talismanick> then s/error/fail/g and I'm off to the races
2022-11-03 04:24:33 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds)
2022-11-03 04:27:39 +0000kadoban(~kadoban@user/kadoban) ()
2022-11-03 04:37:31 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 04:37:43 +0000tomboy64(~tomboy64@user/tomboy64)
2022-11-03 04:44:04 +0000justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds)
2022-11-03 04:44:08 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-03 04:44:36 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Ping timeout: 248 seconds)
2022-11-03 04:45:57 +0000Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-11-03 04:46:07 +0000Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-11-03 04:46:49 +0000niko(niko@libera/staff/niko)
2022-11-03 04:50:28 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-03 04:52:19 +0000zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-11-03 04:59:36 +0000sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-03 05:00:43 +0000sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-03 05:08:01 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 05:12:11 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:50b:c529:3f17:f97) (Ping timeout: 246 seconds)
2022-11-03 05:14:13 +0000bilegeek(~bilegeek@2600:1008:b044:33bf:f451:b0ca:9bd5:7375) (Quit: Leaving)
2022-11-03 05:24:26 +0000mixfix41(~sdeny9ee@user/mixfix41) (Ping timeout: 246 seconds)
2022-11-03 05:25:57 +0000Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-11-03 05:26:20 +0000Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-11-03 05:28:27 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68) (Ping timeout: 255 seconds)
2022-11-03 06:05:18 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 06:06:03 +0000jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-11-03 06:17:33 +0000ncf(~n@monade.li) (Ping timeout: 268 seconds)
2022-11-03 06:17:52 +0000ncf(~n@monade.li)
2022-11-03 06:22:23 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-03 06:25:34 +0000drdo(~drdo@2a0b:b800:2:31e6::1) (Ping timeout: 268 seconds)
2022-11-03 06:25:58 +0000chomwitt(~chomwitt@2a02:587:dc18:4a00:1ac0:4dff:fedb:a3f1)
2022-11-03 06:26:30 +0000Topsi1(~Topsi@ipb218f713.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2022-11-03 06:27:23 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Remote host closed the connection)
2022-11-03 06:29:46 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 06:34:50 +0000irrgit_(~irrgit@146.70.27.242)
2022-11-03 06:35:47 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-03 06:37:58 +0000irrgit(~irrgit@86.106.90.226) (Ping timeout: 252 seconds)
2022-11-03 06:38:31 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 06:42:05 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-11-03 06:44:38 +0000abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 06:45:21 +0000abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 272 seconds)
2022-11-03 06:45:46 +0000kenran(~user@user/kenran)
2022-11-03 06:53:47 +0000elevenkb(~elevenkb@105.184.125.168)
2022-11-03 06:55:37 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Remote host closed the connection)
2022-11-03 06:56:09 +0000tgi(~thegeekin@189.180.115.115) (Ping timeout: 246 seconds)
2022-11-03 06:57:22 +0000odnes(~odnes@5-203-216-155.pat.nym.cosmote.net)
2022-11-03 06:57:40 +0000odnes(~odnes@5-203-216-155.pat.nym.cosmote.net) (Remote host closed the connection)
2022-11-03 06:58:09 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 07:00:00 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-11-03 07:01:18 +0000nate3(~nate@98.45.169.16)
2022-11-03 07:06:06 +0000nate3(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-11-03 07:08:01 +0000mncheck(~mncheck@193.224.205.254)
2022-11-03 07:13:35 +0000xax__(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-11-03 07:14:31 +0000acidjnk(~acidjnk@p200300d6e7137a343957ed7bae49a26a.dip0.t-ipconnect.de)
2022-11-03 07:14:38 +0000titibandit(~titibandi@xdsl-87-79-250-160.nc.de)
2022-11-03 07:18:55 +0000kenran`(~user@user/kenran)
2022-11-03 07:21:17 +0000kenran(~user@user/kenran) (Ping timeout: 276 seconds)
2022-11-03 07:24:08 +0000 <dminuoso> That being said, I think `fail` abused this way.
2022-11-03 07:25:03 +0000Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving)
2022-11-03 07:25:39 +0000Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-03 07:26:26 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-11-03 07:27:53 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 07:32:59 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Ping timeout: 276 seconds)
2022-11-03 07:35:16 +0000jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 248 seconds)
2022-11-03 07:35:31 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2022-11-03 07:38:30 +0000kenran`(~user@user/kenran) (Remote host closed the connection)
2022-11-03 07:39:24 +0000kenran(~user@user/kenran)
2022-11-03 07:40:34 +0000chele(~chele@user/chele)
2022-11-03 07:42:02 +0000kenran`(~user@user/kenran)
2022-11-03 07:43:45 +0000kenran(~user@user/kenran) (Ping timeout: 246 seconds)
2022-11-03 07:49:27 +0000jonathanx(~jonathan@98.128.168.222)
2022-11-03 07:52:04 +0000elevenkb(~elevenkb@105.184.125.168) (Remote host closed the connection)
2022-11-03 07:54:14 +0000statusfailed(~statusfai@statusfailed.com) (Quit: leaving)
2022-11-03 07:54:29 +0000causal(~user@50.35.83.177) (Quit: WeeChat 3.7.1)
2022-11-03 07:56:40 +0000mmhat(~mmh@2003:f1:c730:7621:ee08:6bff:fe09:5315)
2022-11-03 07:58:50 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-03 08:01:09 +0000hook54321(sid149355@user/hook54321) (Ping timeout: 268 seconds)
2022-11-03 08:02:18 +0000CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-03 08:02:48 +0000Kaipei(~Kaiepi@108.175.84.104)
2022-11-03 08:03:31 +0000hook54321(sid149355@user/hook54321)
2022-11-03 08:04:02 +0000statusfailed(~statusfai@statusfailed.com)
2022-11-03 08:10:24 +0000zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494)
2022-11-03 08:13:19 +0000Heyting(~Heyting@193.198.16.217)
2022-11-03 08:15:50 +0000jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-03 08:17:32 +0000shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-11-03 08:20:17 +0000RobertKrook(~RobertKro@ext-1-087.eduroam.chalmers.se)
2022-11-03 08:21:12 +0000RobertKrook(~RobertKro@ext-1-087.eduroam.chalmers.se) (Client Quit)
2022-11-03 08:22:50 +0000Robert43(~Robert@ext-1-087.eduroam.chalmers.se)
2022-11-03 08:24:24 +0000 <Robert43> Good morning!
2022-11-03 08:24:25 +0000 <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 08:25:43 +0000Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-03 08:32:57 +0000talismanick(~talismani@2601:200:c100:c9e0::1b0b) (Ping timeout: 255 seconds)
2022-11-03 08:35:04 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 08:37:21 +0000 <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 08:37:46 +0000 <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 08:38:02 +0000 <dminuoso> Under the hood its just a pointer to memory.
2022-11-03 08:38:19 +0000Topsi(~Topsi@ipb218f6c1.dynamic.kabel-deutschland.de)
2022-11-03 08:38:51 +0000michalz(~michalz@185.246.207.203)
2022-11-03 08:38:53 +0000Topsi(~Topsi@ipb218f6c1.dynamic.kabel-deutschland.de) (Client Quit)
2022-11-03 08:40:00 +0000 <dminuoso> See https://gitlab.haskell.org/ghc/ghc/-/issues/7662\
2022-11-03 08:41:36 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-03 08:43:08 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-11-03 08:43:22 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-03 08:48:13 +0000jargon_(~jargon@174-22-194-21.phnx.qwest.net)
2022-11-03 08:48:17 +0000 <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 08:50:07 +0000jargon(~jargon@174-22-194-21.phnx.qwest.net) (Ping timeout: 272 seconds)
2022-11-03 08:51:18 +0000 <merijn> dminuoso: I mean the GC cost of IORef seems the same as "literally every other think that might reference something"
2022-11-03 08:52:15 +0000 <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 08:52:40 +0000razetime(~quassel@117.254.34.146)
2022-11-03 08:54:17 +0000titibandit(~titibandi@xdsl-87-79-250-160.nc.de) (Remote host closed the connection)
2022-11-03 08:54:41 +0000 <dminuoso> merijn: well yes, but you pay this cost per minor GC
2022-11-03 08:55:36 +0000 <dminuoso> You wouldnt pay this up front for arbitrary references
2022-11-03 08:56:06 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-11-03 08:56:52 +0000abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 248 seconds)
2022-11-03 08:57:03 +0000abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 08:57:56 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-03 09:00:03 +0000cp1313[m](~cp1313mat@2001:470:69fc:105::2:9293) (Quit: You have been kicked for being idle)
2022-11-03 09:02:00 +0000ft(~ft@p508dbd59.dip0.t-ipconnect.de) (Quit: leaving)
2022-11-03 09:04:22 +0000fserucas_(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-11-03 09:09:37 +0000mncheckm(~mncheck@193.224.205.254)
2022-11-03 09:09:54 +0000 <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 09:11:24 +0000 <merijn> I mean, I wouldn't even bother testing unless you were planning to go, like, >10k IORefs :p
2022-11-03 09:11:55 +0000 <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 09:12:28 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 09:12:31 +0000mncheck(~mncheck@193.224.205.254) (Ping timeout: 252 seconds)
2022-11-03 09:13:12 +0000 <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 09:13:28 +0000 <merijn> And really, if you have >10k IORef you should probably question what you're doing, tbh
2022-11-03 09:13:33 +0000 <Robert43> Right
2022-11-03 09:16:55 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 09:18:38 +0000 <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 09:19:47 +0000 <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 09:23:08 +0000 <Robert43> Interesting
2022-11-03 09:25:04 +0000 <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 09:26:24 +0000 <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 09:28:28 +0000 <dminuoso> Robert43: MVar and IORef are exactly the same.
2022-11-03 09:28:31 +0000 <dminuoso> data MVar a = MVar (MVar# RealWorld a)
2022-11-03 09:28:40 +0000 <dminuoso> Ah hold on
2022-11-03 09:28:43 +0000 <dminuoso> No I lied, they are not.
2022-11-03 09:28:47 +0000 <merijn> dminuoso: No they're not??
2022-11-03 09:28:49 +0000 <dminuoso> I was thinking STRef.
2022-11-03 09:28:54 +0000 <dminuoso> STRef and IORef are the same thing under the hood.
2022-11-03 09:29:01 +0000Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Ping timeout: 252 seconds)
2022-11-03 09:29:02 +0000 <Robert43> Yes
2022-11-03 09:29:20 +0000vito(sid1962@user/vito) (Ping timeout: 268 seconds)
2022-11-03 09:29:28 +0000 <merijn> Robert43: The bookkeeping is mostly for blocked threads, but if no threads block on it, then that's not used
2022-11-03 09:29:30 +0000vito(sid1962@user/vito)
2022-11-03 09:29:30 +0000 <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 09:29:44 +0000 <merijn> Robert43: I mean, that's like a handful of pointers per MVar, so also fairly negligible
2022-11-03 09:29:45 +0000 <Robert43> It has this nice property that you can create an empty mvar
2022-11-03 09:30:17 +0000 <Robert43> Whereas for an IORef I'd need to do something like `IORef (Maybe a)` to create a logically 'empty' one
2022-11-03 09:30:38 +0000 <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 09:30:52 +0000Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-03 09:30:54 +0000 <dminuoso> Robert43: You can, if need be, also do `newIORef undefined` - with some discipline it *can* be fine
2022-11-03 09:31:12 +0000 <dminuoso> (Or better yet `newIORef (error "uninitialized foo")`)
2022-11-03 09:31:16 +0000 <Robert43> Ahaha right, I don't trust myself though dminuoso
2022-11-03 09:31:17 +0000jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 276 seconds)
2022-11-03 09:31:33 +0000 <Robert43> Thanks for the clarification @meri
2022-11-03 09:31:36 +0000 <Robert43> merijn
2022-11-03 09:32:13 +0000 <dminuoso> merijn: interesting, that reminds me a bit about how TChan is implemented.
2022-11-03 09:34:29 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Remote host closed the connection)
2022-11-03 09:34:55 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 09:35:11 +0000 <[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 09:36:36 +0000 <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 09:36:37 +0000 <Robert43> Sounds good :)
2022-11-03 09:37:49 +0000 <merijn> That seems kinda pointless?
2022-11-03 09:38:08 +0000 <merijn> Like, just delay "newIORef" until your "fill" call
2022-11-03 09:38:34 +0000 <merijn> The type changes anyway and you're doing IO anyway, so you can just delay creation until the fill
2022-11-03 09:39:51 +0000 <[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 09:40:51 +0000 <[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 09:41:25 +0000 <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 09:42:15 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 09:42:17 +0000chele_(~chele@user/chele)
2022-11-03 09:42:55 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 09:43:31 +0000 <dminuoso> Robert43: Honestly, it doesnt really change anything.
2022-11-03 09:43:47 +0000 <dminuoso> Robert43: If you try to read from an uninitialized MVar, it will block - this is just bottom.
2022-11-03 09:43:59 +0000 <dminuoso> If you use an undefined/error from an IORef, it will crash - this too is bottom.
2022-11-03 09:44:21 +0000 <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 09:44:35 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-03 09:44:40 +0000 <dminuoso> Or you end up using tryTakeMVar everywhere, but that's really the same as `IORef (Maybe a)` anyhow
2022-11-03 09:44:58 +0000chele(~chele@user/chele) (Ping timeout: 252 seconds)
2022-11-03 09:45:02 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-11-03 09:45:13 +0000 <Robert43> I populate the MVar almost immediately, the rest of the code (rightly) assumes that it is filled
2022-11-03 09:45:37 +0000 <kuribas> at lower cost (no semaphores needed)
2022-11-03 09:46:34 +0000ec(~ec@gateway/tor-sasl/ec)
2022-11-03 09:46:45 +0000 <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 09:46:48 +0000 <dminuoso> Except it really wont tell you where.
2022-11-03 09:46:59 +0000 <dminuoso> That makes MVar way less useful for what you're doing
2022-11-03 09:47:17 +0000 <dminuoso> With `error` you at least can include a name for the thing you are planning to initialize
2022-11-03 09:47:37 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-03 09:48:29 +0000__monty__(~toonn@user/toonn)
2022-11-03 09:49:20 +0000 <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 09:49:54 +0000 <dminuoso> Turning the "uninitialized variable" into a proper IO exception (and you have IO anyway, since readIORef demands it)
2022-11-03 09:52:05 +0000 <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 09:52:28 +0000 <dminuoso> Well you get some other problems with respect to imprecise exception semantics, but oh well
2022-11-03 09:55:30 +0000 <Robert43> I'll experiment with all of these variants
2022-11-03 09:55:35 +0000vpan(~0@212.117.1.172)
2022-11-03 09:57:37 +0000 <dminuoso> Robert43: Or better yet, in that wrapper use an Maybe internally!
2022-11-03 09:58:09 +0000 <dminuoso> `data MyRef a = MyRef { ref :: IORef (Maybe a), nam :: T.Text }`
2022-11-03 09:58:31 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-03 09:59:33 +0000CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-03 10:03:08 +0000king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-03 10:04:17 +0000Kaipii(~Kaiepi@108.175.84.104)
2022-11-03 10:06:58 +0000Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds)
2022-11-03 10:10:09 +0000king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Ping timeout: 268 seconds)
2022-11-03 10:14:25 +0000razetime(~quassel@117.254.34.146) (Ping timeout: 246 seconds)
2022-11-03 10:15:15 +0000razetime(~quassel@117.254.34.146)
2022-11-03 10:16:01 +0000teo(~teo@user/teo)
2022-11-03 10:16:19 +0000abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 252 seconds)
2022-11-03 10:20:34 +0000fkjac(~fkjac@gw1.compute.dtu.dk)
2022-11-03 10:21:50 +0000fkjac(~fkjac@gw1.compute.dtu.dk) (Client Quit)
2022-11-03 10:22:46 +0000gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-11-03 10:28:24 +0000MajorBiscuit(~MajorBisc@145.94.167.250)
2022-11-03 10:32:56 +0000bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-11-03 10:35:41 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-03 10:36:23 +0000vglfr(~vglfr@145.224.100.22)
2022-11-03 10:36:59 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-03 10:38:57 +0000jco(~jco@90-228-194-139-no542.tbcn.telia.com)
2022-11-03 10:42:10 +0000michalz(~michalz@185.246.207.203) (Ping timeout: 252 seconds)
2022-11-03 10:42:28 +0000michalz(~michalz@185.246.207.222)
2022-11-03 10:42:34 +0000 <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 10:46:41 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-03 10:49:36 +0000 <kuribas> jco: TaggedObject? https://hackage.haskell.org/package/aeson-1.3.1.1/docs/Data-Aeson-Types.html#t:SumEncoding
2022-11-03 10:49:44 +0000ec(~ec@gateway/tor-sasl/ec)
2022-11-03 10:53:05 +0000 <dminuoso> jco: Just write out the instance by hand?
2022-11-03 10:56:28 +0000_leo92_(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2022-11-03 10:57:22 +0000 <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 10:58:45 +0000Robert43(~Robert@ext-1-087.eduroam.chalmers.se) (Ping timeout: 255 seconds)
2022-11-03 10:59:05 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-03 10:59:11 +0000 <kuribas> "If the constructor is a record the encoded record fields will be unpacked into this object."
2022-11-03 10:59:15 +0000zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-11-03 10:59:49 +0000 <kuribas> If you have nested types, then you'll need to write the instance by hand, as dminuoso said.
2022-11-03 11:02:30 +0000elevenkb(~elevenkb@105.184.125.168)
2022-11-03 11:02:47 +0000nate3(~nate@98.45.169.16)
2022-11-03 11:04:10 +0000 <jco> dminuoso: Makes sense! :)
2022-11-03 11:07:32 +0000nate3(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2022-11-03 11:09:56 +0000king_gs(~Thunderbi@187.201.83.115)
2022-11-03 11:11:14 +0000skinotes 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 11:15:20 +0000freeside_(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 11:15:43 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 11:17:44 +0000 <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 11:17:50 +0000 <ski> Nothing' yourself
2022-11-03 11:18:41 +0000 <ski> (adapting the actual Clean syntax to an imagined Haskell syntax in those examples)
2022-11-03 11:20:12 +0000 <dminuoso> jco: I think there's generally an overreliance on generic deriving for aeson. In many cases its a bad idea.
2022-11-03 11:20:57 +0000 <ski> @type liftM Data.Dynamic.toDyn (System.IO.openFile "foobar" System.IO.ReadMode)
2022-11-03 11:20:58 +0000 <lambdabot> IO Dynamic
2022-11-03 11:21:00 +0000 <ski> @type liftM Data.Dynamic.toDyn (Data.IORef.newIORef ())
2022-11-03 11:21:01 +0000 <lambdabot> IO Dynamic
2022-11-03 11:27:14 +0000bjourne(~bjourne@2001:6b0:1:1140:42bf:ff4:f8fa:50e5)
2022-11-03 11:29:52 +0000king_gs(~Thunderbi@187.201.83.115) (Read error: Connection reset by peer)
2022-11-03 11:29:56 +0000king_gs1(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-03 11:30:22 +0000CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-03 11:31:15 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 11:32:09 +0000 <jco> dminuoso: Yeah, I wasn't even thinking of doing it manually here. Simplest.
2022-11-03 11:32:15 +0000king_gs1king_gs
2022-11-03 11:35:39 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Ping timeout: 255 seconds)
2022-11-03 11:43:50 +0000Sauvin(~sauvin@user/Sauvin)
2022-11-03 11:46:10 +0000elevenkb(~elevenkb@105.184.125.168) (Remote host closed the connection)
2022-11-03 11:49:37 +0000CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-03 11:56:40 +0000cfricke(~cfricke@user/cfricke)
2022-11-03 11:57:17 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Read error: Connection reset by peer)
2022-11-03 11:57:25 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 12:07:28 +0000king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Ping timeout: 246 seconds)
2022-11-03 12:10:43 +0000freeside_(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 12:11:29 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-11-03 12:18:26 +0000zaquest(~notzaques@5.130.79.72)
2022-11-03 12:18:42 +0000jakalx(~jakalx@base.jakalx.net)
2022-11-03 12:19:06 +0000cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds)
2022-11-03 12:19:19 +0000cods(~fred@82-65-232-44.subs.proxad.net)
2022-11-03 12:19:31 +0000teo(~teo@user/teo) (Ping timeout: 252 seconds)
2022-11-03 12:20:49 +0000teo(~teo@user/teo)
2022-11-03 12:22:35 +0000abhiroop(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-03 12:26:39 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 12:29:15 +0000Heyting(~Heyting@193.198.16.217)
2022-11-03 12:30:12 +0000Guest283(bnc4free@has.arrived.and.is.ready-to.party) (Remote host closed the connection)
2022-11-03 12:34:29 +0000nilradical(~nilradica@user/naso)
2022-11-03 12:34:51 +0000Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-03 12:35:55 +0000elevenkb(~elevenkb@105.184.125.168)
2022-11-03 12:37:25 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-11-03 12:37:31 +0000kenran`(~user@user/kenran) (Remote host closed the connection)
2022-11-03 12:39:52 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-11-03 12:43:26 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-11-03 12:55:13 +0000nicmollel[m]nicm[m]
2022-11-03 12:58:24 +0000justsomeguy(~justsomeg@user/justsomeguy)
2022-11-03 13:01:33 +0000elevenkb(~elevenkb@105.184.125.168) (Ping timeout: 272 seconds)
2022-11-03 13:02:29 +0000doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-11-03 13:04:46 +0000elevenkb(~elevenkb@197-101-14-138.ip.broadband.is)
2022-11-03 13:04:58 +0000king_gs(~Thunderbi@187.201.83.115)
2022-11-03 13:11:24 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 13:14:42 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:58cc:160d:9dd:aaf4)
2022-11-03 13:15:00 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 248 seconds)
2022-11-03 13:16:41 +0000ozkutuk5(~ozkutuk@176.240.173.153)
2022-11-03 13:17:02 +0000xstill_(xstill@fimu/xstill) (Quit: Ping timeout (120 seconds))
2022-11-03 13:17:19 +0000xstill_(xstill@fimu/xstill)
2022-11-03 13:17:25 +0000freeside_(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 13:18:19 +0000haasn`(~nand@haasn.dev)
2022-11-03 13:18:55 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 13:19:07 +0000kawen_(~quassel@static.208.191.216.95.clients.your-server.de)
2022-11-03 13:19:51 +0000CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-03 13:24:17 +0000freeside_(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 13:27:19 +0000Sgeo(~Sgeo@user/sgeo)
2022-11-03 13:27:40 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 13:28:15 +0000ozkutuk(~ozkutuk@176.240.173.153) (Quit: Ping timeout (120 seconds))
2022-11-03 13:28:15 +0000ozkutuk5ozkutuk
2022-11-03 13:28:36 +0000haasn(~nand@haasn.dev) (Killed (NickServ (GHOST command used by haasn`)))
2022-11-03 13:28:36 +0000haasn`haasn
2022-11-03 13:28:46 +0000Heyting(~Heyting@193.198.16.217)
2022-11-03 13:32:43 +0000xff0x(~xff0x@2405:6580:b080:900:9a4a:3159:118e:c175) (Ping timeout: 255 seconds)
2022-11-03 13:33:06 +0000Guest71(~Guest71@ext-1-450.eduroam.chalmers.se)
2022-11-03 13:34:07 +0000kenran(~user@user/kenran)
2022-11-03 13:35:35 +0000nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-11-03 13:36:53 +0000littlefinger(~littlefin@pool-108-53-194-91.nwrknj.fios.verizon.net)
2022-11-03 13:37:01 +0000littlefinger(~littlefin@pool-108-53-194-91.nwrknj.fios.verizon.net) ()
2022-11-03 13:37:24 +0000Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-03 13:38:13 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 13:39:12 +0000juri_(~juri@84-19-175-179.pool.ovpn.com) (*.net *.split)
2022-11-03 13:39:12 +0000drewolson(~drewolson@user/drewolson) (*.net *.split)
2022-11-03 13:39:12 +0000mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (*.net *.split)
2022-11-03 13:39:12 +0000wz1000(~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split)
2022-11-03 13:39:12 +0000kawen(~quassel@static.208.191.216.95.clients.your-server.de) (*.net *.split)
2022-11-03 13:39:12 +0000spider_(~spider@vps-951ce37a.vps.ovh.ca) (*.net *.split)
2022-11-03 13:39:12 +0000vulpine(xfnw@tilde.team) (*.net *.split)
2022-11-03 13:39:12 +0000yaroot(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (*.net *.split)
2022-11-03 13:39:12 +0000hololeap(~quassel@user/hololeap) (*.net *.split)
2022-11-03 13:42:55 +0000mmhat(~mmh@2003:f1:c730:7621:ee08:6bff:fe09:5315) (Quit: WeeChat 3.7.1)
2022-11-03 13:43:10 +0000nilradical(~nilradica@user/naso)
2022-11-03 13:44:08 +0000ygsjg(~quassel@189.124.224.160)
2022-11-03 13:44:20 +0000jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-03 13:45:15 +0000xff0x(~xff0x@2405:6580:b080:900:aa5a:50b3:fed5:3fc2)
2022-11-03 13:45:24 +0000doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 248 seconds)
2022-11-03 13:50:02 +0000Guest13(~Guest13@2001:6b0:4f:2801:1467:20e3:85d3:3c07)
2022-11-03 13:50:27 +0000elevenkb(~elevenkb@197-101-14-138.ip.broadband.is) (Remote host closed the connection)
2022-11-03 13:53:33 +0000Guest13(~Guest13@2001:6b0:4f:2801:1467:20e3:85d3:3c07) (Client Quit)
2022-11-03 13:55:04 +0000Xeroine(~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2022-11-03 13:57:37 +0000Xeroine(~Xeroine@user/xeroine)
2022-11-03 13:58:45 +0000king_gs(~Thunderbi@187.201.83.115) (Read error: Connection reset by peer)
2022-11-03 13:59:00 +0000comerijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 14:01:16 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 14:01:43 +0000drewolson(~drewolson@user/drewolson)
2022-11-03 14:01:56 +0000king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-03 14:04:14 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2022-11-03 14:04:27 +0000nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-11-03 14:06:20 +0000 <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 14:07:49 +0000 <geekosaur> that expects "Cents 7" instead of just "7"
2022-11-03 14:08:57 +0000 <geekosaur> what are you trying to accomplish with the newtype, exactly?
2022-11-03 14:09:03 +0000 <kuribas> {- LANGUAGE GeneralizedNewtypeDeriving -}
2022-11-03 14:09:57 +0000 <geekosaur> you missed the pragma marks (`{-#`) and it won't help here
2022-11-03 14:10:04 +0000 <vpan> geekosaur: I need `FromField` cassava instances to parse CSV fields into fields of fixed precision types
2022-11-03 14:11:25 +0000 <kuribas> geekosaur: why not?
2022-11-03 14:12:15 +0000 <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 14:12:49 +0000jco(~jco@90-228-194-139-no542.tbcn.telia.com) (Quit: leaving)
2022-11-03 14:12:53 +0000 <kuribas> that's what I thought he wanted.
2022-11-03 14:13:20 +0000 <geekosaur> instance FromField Centi where … -- may require FlexibleInstances
2022-11-03 14:13:31 +0000thegeekinside(~thegeekin@189.180.115.115)
2022-11-03 14:13:44 +0000Xeroine(~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2022-11-03 14:17:16 +0000juri_(~juri@84-19-175-179.pool.ovpn.com)
2022-11-03 14:17:16 +0000mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-11-03 14:17:16 +0000wz1000(~zubin@static.11.113.47.78.clients.your-server.de)
2022-11-03 14:17:16 +0000spider_(~spider@vps-951ce37a.vps.ovh.ca)
2022-11-03 14:17:16 +0000vulpine(xfnw@tilde.team)
2022-11-03 14:17:16 +0000yaroot(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c)
2022-11-03 14:17:16 +0000hololeap(~quassel@user/hololeap)
2022-11-03 14:17:20 +0000hololeap(~quassel@user/hololeap) (Max SendQ exceeded)
2022-11-03 14:17:21 +0000vulpine(xfnw@tilde.team) (Max SendQ exceeded)
2022-11-03 14:17:25 +0000Xeroine(~Xeroine@user/xeroine)
2022-11-03 14:17:36 +0000hololeap(~quassel@user/hololeap)
2022-11-03 14:17:52 +0000vulpine(xfnw@tilde.team)
2022-11-03 14:20:34 +0000 <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 14:21:25 +0000 <vpan> i.e. without enabling an extension
2022-11-03 14:22:09 +0000 <geekosaur> either use TypeSynonymInstances like it says, or define the instance for Fixed E2 instead of Centi
2022-11-03 14:22:10 +0000zaquest(~notzaques@5.130.79.72) (Ping timeout: 252 seconds)
2022-11-03 14:22:43 +0000cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds)
2022-11-03 14:23:22 +0000 <vpan> thanks
2022-11-03 14:23:27 +0000 <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 14:23:39 +0000 <geekosaur> \s/or/nor/
2022-11-03 14:23:49 +0000 <kuribas> a newtype is not a type synonym
2022-11-03 14:23:52 +0000 <geekosaur> Fixed uses some type trickery
2022-11-03 14:24:00 +0000Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi)
2022-11-03 14:24:03 +0000 <comerijn> kuribas: Centi isn't a newtype, so...
2022-11-03 14:24:10 +0000 <kuribas> oh right
2022-11-03 14:24:22 +0000 <geekosaur> it's a type alias for Fixed E2
2022-11-03 14:24:30 +0000cods(~fred@82-65-232-44.subs.proxad.net)
2022-11-03 14:25:58 +0000abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-03 14:26:01 +0000abhiroop(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 252 seconds)
2022-11-03 14:28:26 +0000motherfsck(~motherfsc@user/motherfsck)
2022-11-03 14:32:40 +0000nilradical(~nilradica@user/naso)
2022-11-03 14:33:24 +0000gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-11-03 14:33:53 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 14:35:35 +0000zaquest(~notzaques@5.130.79.72)
2022-11-03 14:38:21 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Ping timeout: 255 seconds)
2022-11-03 14:39:35 +0000xsarnik(xsarnik@lounge.fi.muni.cz) (Quit: Ping timeout (120 seconds))
2022-11-03 14:40:15 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2022-11-03 14:40:21 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-11-03 14:40:36 +0000shriekingnoise(~shrieking@186.137.167.202)
2022-11-03 14:49:44 +0000xsarnik(xsarnik@lounge.fi.muni.cz)
2022-11-03 14:52:18 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 14:53:21 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-11-03 14:53:56 +0000nil(~user@202.38.78.189)
2022-11-03 14:54:09 +0000nil(~user@202.38.78.189) ()
2022-11-03 14:54:28 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-03 14:55:03 +0000jakalx(~jakalx@base.jakalx.net)
2022-11-03 14:56:49 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-11-03 15:04:17 +0000nate3(~nate@98.45.169.16)
2022-11-03 15:04:24 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 15:04:32 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-03 15:05:56 +0000vglfr(~vglfr@145.224.100.22) (Read error: Connection reset by peer)
2022-11-03 15:06:07 +0000vglfr(~vglfr@145.224.100.22)
2022-11-03 15:06:31 +0000ec(~ec@gateway/tor-sasl/ec)
2022-11-03 15:08:53 +0000drdo(~drdo@overlord.drdo.eu)
2022-11-03 15:08:56 +0000nate3(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-11-03 15:09:14 +0000nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-11-03 15:10:32 +0000nilradical(~nilradica@user/naso)
2022-11-03 15:17:15 +0000hexeme(~hexeme@user/hexeme)
2022-11-03 15:17:17 +0000hexeme_(~hexeme@user/hexeme) (Ping timeout: 240 seconds)
2022-11-03 15:19:22 +0000motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 252 seconds)
2022-11-03 15:23:14 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 15:29:54 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Remote host closed the connection)
2022-11-03 15:30:19 +0000vglfr(~vglfr@145.224.100.22) (Remote host closed the connection)
2022-11-03 15:30:44 +0000vglfr(~vglfr@145.224.100.22)
2022-11-03 15:35:13 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-11-03 15:35:13 +0000AlexNoo(~AlexNoo@178.34.163.109) (Read error: Connection reset by peer)
2022-11-03 15:35:42 +0000vglfr(~vglfr@145.224.100.22) (Remote host closed the connection)
2022-11-03 15:35:57 +0000AlexNoo(~AlexNoo@178.34.163.109)
2022-11-03 15:36:08 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 15:36:26 +0000vglfr(~vglfr@145.224.100.22)
2022-11-03 15:39:00 +0000Alex_test(~al_test@178.34.163.109) (Ping timeout: 248 seconds)
2022-11-03 15:39:32 +0000AlexZenon(~alzenon@178.34.163.109) (Ping timeout: 248 seconds)
2022-11-03 15:39:38 +0000motherfsck(~motherfsc@user/motherfsck)
2022-11-03 15:40:37 +0000AlexZenon(~alzenon@178.34.163.109)
2022-11-03 15:41:21 +0000kenran(~user@user/kenran) (Remote host closed the connection)
2022-11-03 15:43:46 +0000Alex_test(~al_test@178.34.163.109)
2022-11-03 15:43:54 +0000zebrag(~chris@user/zebrag)
2022-11-03 15:44:03 +0000catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Ping timeout: 255 seconds)
2022-11-03 15:47:27 +0000elevenkb(~elevenkb@105.184.125.168)
2022-11-03 15:47:55 +0000nilradical(~nilradica@user/naso) ()
2022-11-03 15:49:13 +0000AlexNoo(~AlexNoo@178.34.163.109) (Read error: Connection reset by peer)
2022-11-03 15:49:19 +0000statusfailed(~statusfai@statusfailed.com) ()
2022-11-03 15:49:36 +0000AlexNoo(~AlexNoo@178.34.163.109)
2022-11-03 15:57:40 +0000Xeroine(~Xeroine@user/xeroine) (Ping timeout: 248 seconds)
2022-11-03 15:58:46 +0000Xeroine(~Xeroine@user/xeroine)
2022-11-03 15:59:08 +0000 <bjourne> are alex and happy supported anymore? they seem very outdated
2022-11-03 15:59:56 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Remote host closed the connection)
2022-11-03 16:00:15 +0000CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-11-03 16:00:52 +0000MajorBiscuit(~MajorBisc@145.94.167.250) (Ping timeout: 248 seconds)
2022-11-03 16:01:18 +0000 <geekosaur[m]> They're required to build GHC, not that you will be doing that
2022-11-03 16:01:31 +0000econo(uid147250@user/econo)
2022-11-03 16:01:56 +0000Taneb(~Taneb@runciman.hacksoc.org) (Quit: I seem to have stopped.)
2022-11-03 16:02:16 +0000jonathanx(~jonathan@98.128.168.222) (Ping timeout: 268 seconds)
2022-11-03 16:02:36 +0000 <geekosaur[m]> And happy in particular should be fairly up to date. Alex doesn't generally need changes
2022-11-03 16:03:01 +0000Taneb(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
2022-11-03 16:03:44 +0000drewolson3(~drewolson@user/drewolson)
2022-11-03 16:04:11 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-03 16:04:44 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-11-03 16:05:04 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-03 16:05:22 +0000 <bjourne> the code generated by alex contains deprecation warnings
2022-11-03 16:05:34 +0000drewolson(~drewolson@user/drewolson) (Ping timeout: 252 seconds)
2022-11-03 16:05:34 +0000drewolson3drewolson
2022-11-03 16:05:55 +0000 <comerijn> bjourne: Which deprecation warning(s)?
2022-11-03 16:12:54 +0000jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-03 16:12:58 +0000 <Hecate> haha that fucking sucks
2022-11-03 16:13:51 +0000 <Hecate> I believe ericson2314 has some leverage on Alex
2022-11-03 16:14:41 +0000 <AndreasK> I find all the fun bugs https://gitlab.haskell.org/ghc/ghc/-/issues/22402
2022-11-03 16:15:33 +0000 <Hecate> AndreasK: :'''')
2022-11-03 16:15:34 +0000 <Hecate> wow
2022-11-03 16:15:59 +0000tgi(~thegeekin@189.180.115.115)
2022-11-03 16:17:07 +0000thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 252 seconds)
2022-11-03 16:17:24 +0000comerijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2022-11-03 16:18:55 +0000dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-03 16:19:17 +0000cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
2022-11-03 16:19:56 +0000 <AndreasK> I will leave it at the diagnosis for today. But seems like a tricky one
2022-11-03 16:21:24 +0000dcoutts_(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Ping timeout: 255 seconds)
2022-11-03 16:21:31 +0000hololeap(~quassel@user/hololeap) (Ping timeout: 252 seconds)
2022-11-03 16:22:16 +0000hololeap(~quassel@user/hololeap)
2022-11-03 16:27:24 +0000dcoutts_(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-03 16:27:34 +0000Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi) (Ping timeout: 252 seconds)
2022-11-03 16:27:42 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds)
2022-11-03 16:28:03 +0000Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi)
2022-11-03 16:28:52 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-03 16:29:46 +0000dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Ping timeout: 252 seconds)
2022-11-03 16:29:55 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 16:31:57 +0000 <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 16:32:03 +0000 <absence> that delegates to the oldStuff field, so i wonder if there's a better way to extend a reader?
2022-11-03 16:33:50 +0000CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-03 16:36:31 +0000Spukgespenst(~user@user/siracusa) (Quit: Bye!)
2022-11-03 16:40:09 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-03 16:40:15 +0000 <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 16:40:55 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 16:44:08 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 16:47:35 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-03 16:49:58 +0000ec(~ec@gateway/tor-sasl/ec)
2022-11-03 16:50:08 +0000Alex_test_(~al_test@178.34.163.109)
2022-11-03 16:50:08 +0000 <[exa]> absence: anything would prevent you from using the DuplicateRecordFields or so and just feeding it more data structures?
2022-11-03 16:50:21 +0000rodental(~rodental@38.146.5.222) (Remote host closed the connection)
2022-11-03 16:50:21 +0000AlexNoo_(~AlexNoo@178.34.163.109)
2022-11-03 16:50:22 +0000rodental(~rodental@38.146.5.222)
2022-11-03 16:51:39 +0000 <[exa]> (...still that makes you copy most of the structure definition which is likely not what you want)
2022-11-03 16:52:05 +0000Alex_test(~al_test@178.34.163.109) (Ping timeout: 272 seconds)
2022-11-03 16:52:06 +0000teo_(~teo@user/teo)
2022-11-03 16:53:59 +0000AlexNoo(~AlexNoo@178.34.163.109) (Ping timeout: 272 seconds)
2022-11-03 16:53:59 +0000teo(~teo@user/teo) (Ping timeout: 272 seconds)
2022-11-03 16:54:57 +0000 <geekosaur> row types when?
2022-11-03 16:58:30 +0000 <Hecate> I wish
2022-11-03 17:01:07 +0000irrgit_(~irrgit@146.70.27.242) (Ping timeout: 252 seconds)
2022-11-03 17:04:16 +0000Alex_test_Alex_test
2022-11-03 17:05:28 +0000AlexNoo_AlexNoo
2022-11-03 17:06:51 +0000 <absence> [exa]: i guess that would move the boilerplate to the conversion function passed to withReaderT
2022-11-03 17:08:49 +0000vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-03 17:09:07 +0000vglfr(~vglfr@145.224.100.22)
2022-11-03 17:11:04 +0000drdo5(~drdo@overlord.drdo.eu)
2022-11-03 17:11:36 +0000drdo(~drdo@overlord.drdo.eu) (Killed (NickServ (GHOST command used by drdo5)))
2022-11-03 17:11:47 +0000drdo5drdo
2022-11-03 17:14:06 +0000irrgit_(~irrgit@146.70.27.242)
2022-11-03 17:16:47 +0000causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d)
2022-11-03 17:17:37 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 17:17:47 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-03 17:18:07 +0000Kaipii(~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds)
2022-11-03 17:20:15 +0000ccapndave(~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
2022-11-03 17:21:19 +0000causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d) (Ping timeout: 255 seconds)
2022-11-03 17:24:27 +0000ccapndave(~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Client Quit)
2022-11-03 17:24:46 +0000teo_(~teo@user/teo) (Ping timeout: 252 seconds)
2022-11-03 17:25:23 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2022-11-03 17:29:47 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2022-11-03 17:35:24 +0000causal(~user@50.35.83.177)
2022-11-03 17:37:31 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-03 17:38:04 +0000Alex_test_(~al_test@178.34.163.109)
2022-11-03 17:38:25 +0000chele_(~chele@user/chele) (Remote host closed the connection)
2022-11-03 17:39:36 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-03 17:39:37 +0000Alex_test(~al_test@178.34.163.109) (Ping timeout: 252 seconds)
2022-11-03 17:40:11 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-03 17:42:01 +0000razetime(~quassel@117.254.34.146) (Remote host closed the connection)
2022-11-03 17:43:17 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 17:44:27 +0000 <Profpatsch> I wish
2022-11-03 17:45:55 +0000CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-03 17:46:14 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 17:46:57 +0000Guest75(~Guest75@178.141.177.81)
2022-11-03 17:47:51 +0000zebrag(~chris@user/zebrag) (Read error: Connection reset by peer)
2022-11-03 17:48:15 +0000zebrag(~chris@user/zebrag)
2022-11-03 17:48:21 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-03 17:50:46 +0000 <monochrom> Buy row types on wish.com :)
2022-11-03 17:51:10 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 17:59:28 +0000Kaipii(~Kaiepi@108.175.84.104)
2022-11-03 17:59:39 +0000vpan(~0@212.117.1.172) (Quit: Leaving.)
2022-11-03 18:02:04 +0000ft(~ft@80.141.189.89)
2022-11-03 18:04:28 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Ping timeout: 246 seconds)
2022-11-03 18:07:10 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-03 18:07:39 +0000fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
2022-11-03 18:07:41 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 18:08:26 +0000talismanick(~talismani@96-67-197-217-static.hfc.comcastbusiness.net)
2022-11-03 18:09:58 +0000califax(~califax@user/califx)
2022-11-03 18:09:59 +0000L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 276 seconds)
2022-11-03 18:12:42 +0000freeside(~mengwong@115.66.48.84)
2022-11-03 18:14:34 +0000jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-03 18:14:34 +0000jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
2022-11-03 18:15:22 +0000EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-11-03 18:16:20 +0000EvanR(~EvanR@user/evanr)
2022-11-03 18:19:33 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 18:24:06 +0000freeside(~mengwong@115.66.48.84) (Ping timeout: 268 seconds)
2022-11-03 18:24:27 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 18:25:08 +0000Guest75(~Guest75@178.141.177.81) (Ping timeout: 260 seconds)
2022-11-03 18:25:35 +0000fserucas_(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 276 seconds)
2022-11-03 18:26:13 +0000emmanuelux(~emmanuelu@user/emmanuelux)
2022-11-03 18:33:00 +0000chronon(~chronon@user/chronon) (Quit: leaving)
2022-11-03 18:33:08 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-11-03 18:34:28 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 248 seconds)
2022-11-03 18:36:07 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-03 18:36:08 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-03 18:36:13 +0000jakalx(~jakalx@base.jakalx.net)
2022-11-03 18:39:12 +0000simple(skralg@user/simple)
2022-11-03 18:40:20 +0000gmg(~user@user/gehmehgeh)
2022-11-03 18:40:27 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 255 seconds)
2022-11-03 18:41:30 +0000eggplant_(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 18:43:25 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-11-03 18:45:55 +0000king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Remote host closed the connection)
2022-11-03 18:46:14 +0000king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-03 18:46:16 +0000sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-03 18:47:23 +0000sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-03 18:49:52 +0000Guest71(~Guest71@ext-1-450.eduroam.chalmers.se) (Quit: Client closed)
2022-11-03 18:52:37 +0000Alex_test_Alex_test
2022-11-03 18:52:46 +0000rodental(~rodental@38.146.5.222) (Ping timeout: 252 seconds)
2022-11-03 18:53:10 +0000rodental(~rodental@38.146.5.222)
2022-11-03 18:53:32 +0000whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-03 19:01:40 +0000finsternis(~X@23.226.237.192) (Ping timeout: 248 seconds)
2022-11-03 19:02:04 +0000finsternis(~X@23.226.237.192)
2022-11-03 19:03:55 +0000rond_(~rond_@87.74.205.31)
2022-11-03 19:04:11 +0000ephemient(uid407513@id-407513.lymington.irccloud.com)
2022-11-03 19:04:38 +0000chronon(~chronon@user/chronon)
2022-11-03 19:05:25 +0000irrgit_(~irrgit@146.70.27.242) (Ping timeout: 252 seconds)
2022-11-03 19:05:47 +0000nate3(~nate@98.45.169.16)
2022-11-03 19:05:47 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-03 19:10:39 +0000nate3(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-11-03 19:12:00 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-11-03 19:12:34 +0000vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-03 19:13:07 +0000drdo1(~drdo@overlord.drdo.eu)
2022-11-03 19:13:17 +0000vglfr(~vglfr@145.224.100.22)
2022-11-03 19:13:18 +0000drdo(~drdo@overlord.drdo.eu) (Killed (NickServ (GHOST command used by drdo1)))
2022-11-03 19:13:18 +0000drdo1drdo
2022-11-03 19:13:45 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68) (Ping timeout: 255 seconds)
2022-11-03 19:14:48 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 19:17:34 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 19:20:55 +0000jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
2022-11-03 19:23:26 +0000Alex_test_(~al_test@178.34.163.109)
2022-11-03 19:23:34 +0000AlexNoo_(~AlexNoo@178.34.163.109)
2022-11-03 19:24:11 +0000AlexNoo(~AlexNoo@178.34.163.109) (Read error: Connection reset by peer)
2022-11-03 19:25:21 +0000Alex_test(~al_test@178.34.163.109) (Ping timeout: 271 seconds)
2022-11-03 19:25:57 +0000ss4(~wootehfoo@user/wootehfoot)
2022-11-03 19:27:14 +0000caryhartline(~caryhartl@2603-8080-6a0e-8d88-01fd-d633-9a8e-c806.res6.spectrum.com)
2022-11-03 19:28:38 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-03 19:29:04 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
2022-11-03 19:33:30 +0000ss4(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2022-11-03 19:35:52 +0000eggplant_(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Remote host closed the connection)
2022-11-03 19:37:24 +0000Xeroine(~Xeroine@user/xeroine) (Ping timeout: 248 seconds)
2022-11-03 19:39:29 +0000gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2022-11-03 19:43:36 +0000Xeroine(~Xeroine@user/xeroine)
2022-11-03 19:44:57 +0000gentauro(~gentauro@user/gentauro)
2022-11-03 19:49:25 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-03 19:50:29 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:58cc:160d:9dd:aaf4) (Quit: WeeChat 2.8)
2022-11-03 19:51:04 +0000zebrag(~chris@user/zebrag) (Ping timeout: 252 seconds)
2022-11-03 19:51:39 +0000zebrag(~chris@user/zebrag)
2022-11-03 19:53:31 +0000AlexNoo_AlexNoo
2022-11-03 19:53:47 +0000Alex_test_Alex_test
2022-11-03 19:56:49 +0000redmp(~redmp@lib-02-subnet-194.rdns.cenic.net)
2022-11-03 19:57:16 +0000burakcan-(burakcank@2a01:4f8:c17:efa0::3)
2022-11-03 19:57:23 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 20:00:22 +0000Kaipei(~Kaiepi@108.175.84.104)
2022-11-03 20:01:54 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds)
2022-11-03 20:03:43 +0000Kaipii(~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds)
2022-11-03 20:04:11 +0000seriously_guest(~seriously@2001:1c06:2715:c200:de2b:899c:1c2e:ded7)
2022-11-03 20:09:01 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 20:13:29 +0000acidjnk(~acidjnk@p200300d6e7137a343957ed7bae49a26a.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2022-11-03 20:14:08 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2022-11-03 20:16:05 +0000jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-03 20:16:05 +0000jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
2022-11-03 20:16:55 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 20:19:04 +0000acidjnk(~acidjnk@p200300d6e7137a515579cbbbe79af53b.dip0.t-ipconnect.de)
2022-11-03 20:21:47 +0000pavonia(~user@user/siracusa)
2022-11-03 20:22:58 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Ping timeout: 252 seconds)
2022-11-03 20:23:44 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-03 20:25:03 +0000olivermead(~olivermea@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net) (Remote host closed the connection)
2022-11-03 20:30:11 +0000whatsupdoc(uid509081@2a03:5180:f:4::7:c499)
2022-11-03 20:30:41 +0000 <ski> convoluted in the day, or well composed, i effect my actions
2022-11-03 20:31:21 +0000sadmax(~user@209.205.174.253)
2022-11-03 20:33:02 +0000califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-11-03 20:34:06 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-03 20:35:20 +0000califax(~califax@user/califx)
2022-11-03 20:36:21 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-03 20:41:07 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-11-03 20:44:53 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 20:49:36 +0000abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 255 seconds)
2022-11-03 20:57:34 +0000jlgw(~jw@83-233-104-81.cust.bredband2.com)
2022-11-03 21:03:46 +0000sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-03 21:04:10 +0000gqplox(~textual@147.188.245.207)
2022-11-03 21:05:03 +0000sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-03 21:05:10 +0000seriously_guest(~seriously@2001:1c06:2715:c200:de2b:899c:1c2e:ded7) (Quit: Client closed)
2022-11-03 21:06:11 +0000 <gqplox> hello guys
2022-11-03 21:06:36 +0000 <[exa]> o/
2022-11-03 21:06:57 +0000 <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 21:07:20 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 21:07:33 +0000 <gqplox> http://sprunge.us/xIWuRw
2022-11-03 21:07:37 +0000 <gqplox> sorry here is all of it
2022-11-03 21:07:42 +0000 <gqplox> so i wanted to make it better using all
2022-11-03 21:07:55 +0000 <gqplox> but im confused how i can do that as I need two arguments for my isfactor function
2022-11-03 21:07:56 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-03 21:08:14 +0000 <gqplox> but i want to make it something like all isFactor n x [1..12
2022-11-03 21:08:17 +0000 <byorgey> gqplox: do you know about lambdas?
2022-11-03 21:08:37 +0000chronon(~chronon@user/chronon) (Ping timeout: 252 seconds)
2022-11-03 21:09:08 +0000 <gqplox> yes i do
2022-11-03 21:09:21 +0000 <[exa]> :t all
2022-11-03 21:09:22 +0000 <lambdabot> Foldable t => (a -> Bool) -> t a -> Bool
2022-11-03 21:09:37 +0000 <[exa]> > all isEven [2,4,6]
2022-11-03 21:09:39 +0000 <lambdabot> error:
2022-11-03 21:09:39 +0000 <lambdabot> Variable not in scope: isEven :: a0 -> Bool
2022-11-03 21:09:46 +0000 <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 21:10:00 +0000 <byorgey> then that lambda can be the input to 'all'
2022-11-03 21:10:12 +0000chronon(~chronon@user/chronon)
2022-11-03 21:10:41 +0000 <[exa]> > all even [2,4,6] -- gqplox corrected example, sorry for the previous one
2022-11-03 21:10:42 +0000 <lambdabot> True
2022-11-03 21:11:52 +0000L29Ah(~L29Ah@wikipedia/L29Ah)
2022-11-03 21:13:40 +0000harsy(~harsy@2409:4072:6211:4f25::169f:60ad)
2022-11-03 21:14:45 +0000jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-03 21:14:52 +0000 <harsy> for every cabal project haskell is downloaded again and again?
2022-11-03 21:15:16 +0000 <sclv> what? no
2022-11-03 21:16:19 +0000vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-03 21:16:39 +0000 <harsy> okay thanks. i think its just checking all indexes
2022-11-03 21:16:48 +0000 <gqplox> ah thank you byorgey
2022-11-03 21:16:51 +0000 <gqplox> i have this now
2022-11-03 21:16:52 +0000 <gqplox> http://sprunge.us/cioZM9
2022-11-03 21:17:36 +0000 <gqplox> so the x inside the lambda is being taken from outside of it?
2022-11-03 21:18:45 +0000 <harsy> i have small doubt.  can we use hackage packages in stack project?
2022-11-03 21:19:05 +0000oo_miguel[m](~oomiguelm@2001:470:69fc:105::1:5ab0)
2022-11-03 21:19:16 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2022-11-03 21:19:47 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 276 seconds)
2022-11-03 21:19:55 +0000 <[exa]> harsy: https://github.com/commercialhaskell/stack/issues/2122 might be relevant
2022-11-03 21:20:26 +0000 <harsy> thank you i will look into it.
2022-11-03 21:20:33 +0000 <ski> all (`isFactor` x) [1 .. 12] -- gqplox
2022-11-03 21:21:03 +0000 <ski> x `isFactor` y = y `mod` x == 0 -- is also possible
2022-11-03 21:21:43 +0000 <ski> gqplox : yes, `x' was a nonlocal variable in the lambda abstraction
2022-11-03 21:21:54 +0000 <gqplox> ah nice
2022-11-03 21:22:16 +0000 <gqplox> so thats quite useful then i guess
2022-11-03 21:22:21 +0000harsy(~harsy@2409:4072:6211:4f25::169f:60ad) (Quit: Client closed)
2022-11-03 21:22:44 +0000 <gqplox> oh cool that's even better `isFactor` x thank you
2022-11-03 21:24:04 +0000 <gqplox> so how does that work? it just assumes because isFactor takes two that you will be supplied the first?
2022-11-03 21:24:05 +0000skiwould call it `divides', though
2022-11-03 21:24:13 +0000 <gqplox> oh yeah true
2022-11-03 21:24:22 +0000 <ski> d `divides` n = n `mod` d == 0
2022-11-03 21:24:46 +0000nisstyre(~wes@user/nisstyre) (Ping timeout: 260 seconds)
2022-11-03 21:25:11 +0000 <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 21:25:55 +0000 <gqplox> oh right thanks
2022-11-03 21:26:01 +0000 <ski> (doesn't really matter for `highlyDivisible', though)
2022-11-03 21:26:24 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-11-03 21:26:28 +0000 <gqplox> so in the all(`isFactor` x) the way you have left out the first argument, it is just implied?
2022-11-03 21:26:46 +0000Alex_test(~al_test@178.34.163.109) (Ping timeout: 252 seconds)
2022-11-03 21:26:54 +0000 <ski> it's called a section
2022-11-03 21:27:04 +0000Alex_test(~al_test@178.34.163.109)
2022-11-03 21:27:08 +0000 <ski> > map (^ 2) [0 .. 9] -- another example
2022-11-03 21:27:10 +0000 <lambdabot> [0,1,4,9,16,25,36,49,64,81]
2022-11-03 21:27:27 +0000 <gqplox> oh nice
2022-11-03 21:27:49 +0000 <ski> `(^ 2)' means `\x -> x ^ 2'. `(2 ^)' means `\y -> 2 ^ y' (or `(^) 2' ..)
2022-11-03 21:28:03 +0000 <ski> ditto for the nonsymbolic infix operators, using the backticks
2022-11-03 21:28:32 +0000 <gqplox> very cool
2022-11-03 21:28:33 +0000 <gqplox> thanks
2022-11-03 21:28:50 +0000 <gqplox> really is very concise
2022-11-03 21:29:21 +0000nineonine(~nineonine@2604:3d08:7780:cd00:a9d4:e2db:2f89:8800)
2022-11-03 21:29:30 +0000abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 21:29:37 +0000 <Athas> Like 80% of Haskell's greatness over other functional languages comes from such small syntactic niceties.
2022-11-03 21:29:57 +0000sadmax`(~user@209.205.174.253)
2022-11-03 21:30:49 +0000sadmax`(~user@209.205.174.253) (Client Quit)
2022-11-03 21:31:00 +0000 <[exa]> ...such as monads
2022-11-03 21:32:54 +0000off^(~off@76.145.185.103)
2022-11-03 21:34:01 +0000ystael(~ystael@user/ystael) (Quit: Lost terminal)
2022-11-03 21:34:53 +0000Xeroine(~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2022-11-03 21:37:44 +0000Xeroine(~Xeroine@user/xeroine)
2022-11-03 21:38:21 +0000abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 272 seconds)
2022-11-03 21:39:03 +0000jmdaemon(~jmdaemon@user/jmdaemon)
2022-11-03 21:40:04 +0000gqplox(~textual@147.188.245.207) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-11-03 21:40:35 +0000AlexNoo_(~AlexNoo@178.34.163.109)
2022-11-03 21:44:03 +0000AlexNoo(~AlexNoo@178.34.163.109) (Ping timeout: 272 seconds)
2022-11-03 21:44:42 +0000gqplox(~textual@147.188.245.207)
2022-11-03 21:47:55 +0000michalz(~michalz@185.246.207.222) (Remote host closed the connection)
2022-11-03 21:48:13 +0000gentauro(~gentauro@user/gentauro) (Ping timeout: 252 seconds)
2022-11-03 21:48:26 +0000gentauro(~gentauro@user/gentauro)
2022-11-03 21:48:38 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 21:50:12 +0000talismanick(~talismani@96-67-197-217-static.hfc.comcastbusiness.net) (Ping timeout: 248 seconds)
2022-11-03 21:51:45 +0000madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2022-11-03 21:53:10 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-03 21:54:02 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-11-03 21:54:49 +0000sadmax(~user@209.205.174.253) (Ping timeout: 272 seconds)
2022-11-03 21:55:24 +0000gmg(~user@user/gehmehgeh)
2022-11-03 21:59:51 +0000ystael(~ystael@user/ystael)
2022-11-03 22:03:50 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2022-11-03 22:04:40 +0000catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2022-11-03 22:05:15 +0000ChaiTRex(~ChaiTRex@user/chaitrex)
2022-11-03 22:06:32 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-03 22:09:07 +0000thegeekinside(~thegeekin@189.180.115.115)
2022-11-03 22:10:45 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2022-11-03 22:11:05 +0000gqplox(~textual@147.188.245.207) (Quit: Textual IRC Client: www.textualapp.com)
2022-11-03 22:11:47 +0000tgi(~thegeekin@189.180.115.115) (Ping timeout: 276 seconds)
2022-11-03 22:16:35 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-03 22:17:34 +0000jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-03 22:19:16 +0000acidjnk(~acidjnk@p200300d6e7137a515579cbbbe79af53b.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-03 22:19:50 +0000tgi(~thegeekin@189.180.115.115)
2022-11-03 22:20:07 +0000jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 252 seconds)
2022-11-03 22:22:19 +0000thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 252 seconds)
2022-11-03 22:27:27 +0000caryhartline(~caryhartl@2603-8080-6a0e-8d88-01fd-d633-9a8e-c806.res6.spectrum.com) (Quit: caryhartline)
2022-11-03 22:29:45 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-03 22:35:57 +0000Topsi(~Topsi@ipb218f69e.dynamic.kabel-deutschland.de)
2022-11-03 22:37:20 +0000king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Quit: king_gs)
2022-11-03 22:37:35 +0000king_gs(~Thunderbi@187.201.83.115)
2022-11-03 22:39:19 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2022-11-03 22:39:47 +0000elevenkb(~elevenkb@105.184.125.168) (Ping timeout: 272 seconds)
2022-11-03 22:39:58 +0000rond_(~rond_@87.74.205.31) (Quit: Client closed)
2022-11-03 22:42:06 +0000redmp(~redmp@lib-02-subnet-194.rdns.cenic.net) (Ping timeout: 255 seconds)
2022-11-03 22:46:00 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-03 22:52:51 +0000mncheckm(~mncheck@193.224.205.254) (Ping timeout: 268 seconds)
2022-11-03 22:54:21 +0000madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Remote host closed the connection)
2022-11-03 22:55:23 +0000 <Axman6> anyone know of any parser combinator libraries that let you use regular expressions as part of the parser?
2022-11-03 22:57:18 +0000Topsi(~Topsi@ipb218f69e.dynamic.kabel-deutschland.de) (Quit: Leaving.)
2022-11-03 23:00:01 +0000 <geekosaur> no parser combinator library that I know of… but perhaps this would be a good use case for alex+happy?
2022-11-03 23:00:52 +0000jlgw_(~jw@83-233-104-81.cust.bredband2.com)
2022-11-03 23:01:22 +0000jlgw(~jw@83-233-104-81.cust.bredband2.com) (Ping timeout: 252 seconds)
2022-11-03 23:02:09 +0000 <geekosaur> also, uh, which variety of regular expression?
2022-11-03 23:04:08 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-03 23:06:52 +0000ski. o O ( "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...)" by Russ Cox in 2007-01 at <https://swtch.com/~rsc/regexp/regexp1.html> )
2022-11-03 23:07:03 +0000 <Axman6> not sure - i feel it shouldnt be too hard to write a small library that adds attoparsec combinators to parse a given expression 'here'. I'm reading https://keleshev.com/compiling-to-assembly-from-scratch/ and its combination of parser combinators and regular expressions is quite nice
2022-11-03 23:07:17 +0000nate3(~nate@98.45.169.16)
2022-11-03 23:07:25 +0000jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2022-11-03 23:08:00 +0000 <Axman6> one thing though would be that the regex would need to be resumable, if it hasn't succeeded or failed yet, but we run out of input
2022-11-03 23:08:40 +0000 <geekosaur> it has occurred to me that pretty much any use of regex can be "compiled" to any parser combinator. and if you compile it to attoparsec it should be resumable
2022-11-03 23:10:02 +0000 <Axman6> also, on a completely unrelated note, iGot this iPad Pro recently, and having the Blink app with mosh so I can rejoin IRC from anywhere, is fantastic
2022-11-03 23:11:06 +0000 <Axman6> yeah thats an interesting idea - would the performance be comparable though? I guess all the tricks to make regex parsing linear would also apply to how you'd compile it too
2022-11-03 23:12:20 +0000nate3(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2022-11-03 23:13:18 +0000 <geekosaur> I expect it'd be similar performance, but admit to optimizations that might well make it noticeably faster than most regexes can get
2022-11-03 23:13:31 +0000absence(torgeihe@hildring.pvv.ntnu.no) (Ping timeout: 246 seconds)
2022-11-03 23:13:51 +0000teddyc(theodorc@cassarossa.samfundet.no) (Ping timeout: 260 seconds)
2022-11-03 23:19:27 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2022-11-03 23:20:33 +0000dcoutts(~duncan@host86-171-59-120.range86-171.btcentralplus.com)
2022-11-03 23:22:16 +0000dcoutts_(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Ping timeout: 246 seconds)
2022-11-03 23:25:24 +0000dcoutts_(~duncan@86.150.41.170)
2022-11-03 23:27:27 +0000 <AndreasK> I remember hearing a talk about staging a regex compiler which then was a lot faster. But I don't remember where it was
2022-11-03 23:27:37 +0000AlexNoo__(~AlexNoo@178.34.163.109)
2022-11-03 23:27:46 +0000dcoutts(~duncan@host86-171-59-120.range86-171.btcentralplus.com) (Ping timeout: 252 seconds)
2022-11-03 23:27:53 +0000 <Axman6> I'd love to see that if you fi9nd it
2022-11-03 23:28:34 +0000 <AndreasK> https://icfp22.sigplan.org/home/haskellsymp-2022# it was at icfp
2022-11-03 23:28:49 +0000 <AndreasK> https://icfp22.sigplan.org/details/haskellsymp-2022/2/Staging-Regular-Expressions-with-Moore-Cayle…
2022-11-03 23:29:04 +0000 <Axman6> A few months ago I ported this to our Daml codebase, because we needed a better implementation of regexes, and it happened to be for validating regular expressions defined in XML Schema: https://wiki.haskell.org/Regular_expressions_for_XML_Schema
2022-11-03 23:29:11 +0000geekosaurcompletely fails to be surprised
2022-11-03 23:29:14 +0000 <AndreasK> https://www.youtube.com/watch?v=6oTJbtH0PeI
2022-11-03 23:29:24 +0000 <AndreasK> The talk is on youtube it seems
2022-11-03 23:30:23 +0000 <Axman6> You're a champ AndreasK
2022-11-03 23:30:31 +0000Alex_test(~al_test@178.34.163.109) (Ping timeout: 252 seconds)
2022-11-03 23:31:04 +0000AlexNoo_(~AlexNoo@178.34.163.109) (Ping timeout: 252 seconds)
2022-11-03 23:33:55 +0000redmp(~redmp@mobile-166-170-43-0.mycingular.net)
2022-11-03 23:36:01 +0000Alex_test(~al_test@178.34.163.109)
2022-11-03 23:36:07 +0000dyniec(~dyniec@mail.dybiec.info)
2022-11-03 23:37:16 +0000 <monochrom> No, translating regexes to most parser combinator libraries is an uphill battle, because most parser combinator libraries kill the very nondeterminism that regexes stand for. This is right at the API level.
2022-11-03 23:38:03 +0000ski. o O ( "IrRegex : IrRegular Expressions" at <http://synthcode.com/scheme/irregex/>,"irregex - Portable Efficient IrRegular Expressions" at <https://github.com/ashinn/irregex/>, by foof )
2022-11-03 23:38:04 +0000 <monochrom> For example, (00)* 0 (000)* is not going to be simply many "00" >> char "0" >> many "000".
2022-11-03 23:39:31 +0000 <monochrom> Unless you go way back to the very original papers that use String -> [(a, String)] so full nondeterminism is restored.
2022-11-03 23:39:52 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb)
2022-11-03 23:39:52 +0000 <monochrom> (which kills efficiency, which is why everyone ditched it)
2022-11-03 23:43:07 +0000pyrexcoolbat666
2022-11-03 23:43:30 +0000 <ski> <https://hackage.haskell.org/package/base-4.17.0.0/docs/Text-ParserCombinators-ReadP.html>
2022-11-03 23:43:37 +0000 <ski> @hackage parsek
2022-11-03 23:43:37 +0000 <lambdabot> https://hackage.haskell.org/package/parsek
2022-11-03 23:44:06 +0000 <monochrom> Yeah, or a few nondet parser libraries like ReadP.
2022-11-03 23:44:12 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b8c3:aabe:4f47:1efb) (Ping timeout: 255 seconds)
2022-11-03 23:44:25 +0000coolbat666pyrex
2022-11-03 23:49:33 +0000dcoutts(~duncan@host81-156-211-164.range81-156.btcentralplus.com)
2022-11-03 23:51:41 +0000teddyc(theodorc@cassarossa.samfundet.no)
2022-11-03 23:51:58 +0000dcoutts_(~duncan@86.150.41.170) (Ping timeout: 252 seconds)
2022-11-03 23:51:58 +0000gentauro(~gentauro@user/gentauro) (Ping timeout: 252 seconds)
2022-11-03 23:52:05 +0000abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-03 23:52:55 +0000dcoutts_(~duncan@host81-156-211-164.range81-156.btcentralplus.com)
2022-11-03 23:53:37 +0000gentauro(~gentauro@user/gentauro)
2022-11-03 23:54:43 +0000dcoutts(~duncan@host81-156-211-164.range81-156.btcentralplus.com) (Ping timeout: 252 seconds)
2022-11-03 23:58:43 +0000dcoutts(~duncan@host81-156-211-164.range81-156.btcentralplus.com)
2022-11-03 23:59:58 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)