Home liberachat/#haskell: Logs Calendar

Logs on 2022-08-26 (liberachat/#haskell)

00:01:02 × xff0x quits (~xff0x@2405:6580:b080:900:6f8a:e9c1:3bc4:a024) (Quit: xff0x)
00:01:45 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
00:02:00 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
00:04:07 xff0x joins (~xff0x@ai071162.d.east.v6connect.net)
00:04:39 td_ joins (~td@94.134.91.83)
00:05:06 <glguy> johnw: Just glancing at the package (I haven't used it before) I imagine you could run into overflow issues given decimalPlaces :: Word8, but I'd be surprised if the Integer arithmetic had determinism issues
00:09:21 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Quit: Leaving)
00:09:48 TonyStone joins (~TonyStone@2603-7080-8607-c36a-a148-a5a9-53c4-68f2.res6.spectrum.com)
00:10:05 × dsrt^ quits (~dsrt@96.70.11.181) (Ping timeout: 255 seconds)
00:10:30 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-a148-a5a9-53c4-68f2.res6.spectrum.com) (Remote host closed the connection)
00:13:42 TonyStone joins (~TonyStone@2603-7080-8607-c36a-a148-a5a9-53c4-68f2.res6.spectrum.com)
00:13:56 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
00:15:26 nate4 joins (~nate@98.45.169.16)
00:16:06 matthewmosior joins (~matthewmo@173.170.253.91)
00:17:53 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
00:17:54 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
00:30:46 money joins (~Gambino@pool-100-11-18-203.phlapa.fios.verizon.net)
00:30:46 × money quits (~Gambino@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host)
00:30:46 money joins (~Gambino@user/polo)
00:30:48 money is now known as Polo
00:33:32 dsrt^ joins (~dsrt@96.70.11.181)
00:34:21 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
00:36:38 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
00:37:32 × eikke quits (~NicolasT@user/NicolasT) (Ping timeout: 255 seconds)
00:44:33 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
00:46:15 × Polo quits (~Gambino@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:46:32 notzmv joins (~zmv@user/notzmv)
00:47:24 king_gs joins (~Thunderbi@187.201.216.244)
00:51:05 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
00:51:07 × liz quits (~liz@host86-157-124-38.range86-157.btcentralplus.com) (Remote host closed the connection)
00:54:55 × hueso quits (~root@user/hueso) (Quit: No Ping reply in 210 seconds.)
00:55:21 hueso joins (~root@user/hueso)
01:04:41 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
01:06:14 matthewmosior joins (~matthewmo@173.170.253.91)
01:07:01 king_gs1 joins (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec)
01:08:11 × king_gs quits (~Thunderbi@187.201.216.244) (Ping timeout: 260 seconds)
01:08:12 king_gs1 is now known as king_gs
01:10:31 × xff0x quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 260 seconds)
01:11:52 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
01:13:53 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
01:16:12 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
01:18:41 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
01:25:14 causal joins (~user@50.35.83.177)
01:25:44 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
01:25:52 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:28:50 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
01:30:23 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
01:36:10 matthewmosior joins (~matthewmo@173.170.253.91)
01:40:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
01:40:48 × shailangsa quits (~shailangs@host86-185-98-81.range86-185.btcentralplus.com) ()
01:41:45 × beteigeuze quits (~Thunderbi@bl11-28-222.dsl.telepac.pt) (Ping timeout: 252 seconds)
01:44:36 SeanKing[m] joins (~seankingm@2001:470:69fc:105::cf9c)
01:46:25 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
01:51:24 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:52:16 iqubic joins (~iqubic@2601:602:9502:c70:8762:e35e:374b:9ef9)
01:56:58 <Axman6> johnw: Scientific might also be an option, but I think all these representations can run into calculations that run forever (the Word8 there might save you though)
01:58:20 <Axman6> (Hmmmm, the Decimal divide function looks like it could be really usefor for the project I'm working on at the moment...)
02:01:51 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
02:01:52 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
02:02:09 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
02:02:59 azimut joins (~azimut@gateway/tor-sasl/azimut)
02:07:20 × iqubic quits (~iqubic@2601:602:9502:c70:8762:e35e:374b:9ef9) (Quit: Client closed)
02:07:55 Guest5647 joins (~polo@user/polo)
02:11:45 matthewmosior joins (~matthewmo@173.170.253.91)
02:15:24 × td_ quits (~td@94.134.91.83) (Ping timeout: 268 seconds)
02:16:57 td_ joins (~td@94.134.91.103)
02:20:31 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
02:20:37 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
02:22:10 <Axman6> Possibly a #ghc question, but trying here first - if you have a literal in a compiled file for a ByteString, does anyone know how it's stored in the compiled binary? "foo
02:22:45 shailangsa joins (~shailangs@host86-185-98-81.range86-185.btcentralplus.com)
02:22:54 <Axman6> ""foo" :: ByteString - wondering if that goes voa String with the fromStringN call or if there's enough optimisation to store it as a C(ish) string and reference that directly
02:24:28 <johnw> > 15.034465284692086 ** 3.466120406090667
02:24:30 <lambdabot> 12020.670425990642
02:24:42 <johnw> on most machines, that answer is different
02:25:00 <johnw> Intel and M1 Mac give 12020.670425990644
02:25:57 <dolio> Axman6: I think GHC builds regular strings from something more compact, like C strings. And then there are probably rewrite rules for directly building bytestrings without an intermediate String.
02:26:18 <c_wraith> Axman6: if the Lift instance is any good at all, it stores it as a BytesPrimL
02:26:33 <c_wraith> Axman6: which is literally an Addr#
02:26:53 <c_wraith> which I'd assume is a pointer into the text segment
02:28:17 <c_wraith> https://hackage.haskell.org/package/bytestring-0.11.3.1/docs/src/Data.ByteString.Internal.html#line-275
02:28:34 <c_wraith> Well, if template-haskell is new enough, it does
02:28:53 <c_wraith> I suppose BytesPrimL was added in 2.16
02:29:14 × kimjetwav quits (~user@2607:fea8:235e:b600:7f88:edef:fe86:249f) (Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.50))
02:29:40 nate4 joins (~nate@98.45.169.16)
02:29:48 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
02:29:54 <c_wraith> Otherwise it uses a StringPrimL, which is also an Addr#, but it implies conversion to and from characters which may not be appropriate
02:30:49 <Axman6> hmm - wasn;t thinking about TH, but thats interesting too. I remember seeing in the past String literals being compiled as fromCString "some string literal"# or whatever, I wondered if the bytestring would point directly to that
02:31:26 <Axman6> c_wraith: how new is that version of TH?
02:31:37 <c_wraith> no idea!
02:31:59 <c_wraith> Looks like ghc 8.10
02:32:34 <c_wraith> So all the "modern" versions, for some definition of modern I just made up.
02:32:40 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
02:32:51 <Axman6> so basically ancient history at this point
02:33:15 <Axman6> (we need a GHC equivalent of BCE; B8.10E)
02:34:31 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
02:35:18 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
02:35:32 <Axman6> > 12020.670425990642 - 12020.670425990644
02:35:34 <lambdabot> -1.8189894035458565e-12
02:35:42 Guest5647 is now known as Polo
02:35:51 <Axman6> johnw: surely that's small enough for government work?
02:36:33 matthewmosior joins (~matthewmo@173.170.253.91)
02:38:33 <johnw> not when you're hashing outputs
02:39:08 <johnw> so it seems that GHC, same version, both Intel processors, gives different answers between mine and a co-worker's machine
02:39:49 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:40:41 tom joins (~chenqisu1@183.217.200.212)
02:40:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
02:41:40 × luffy quits (~chenqisu1@183.217.200.212) (Remote host closed the connection)
02:42:05 tom is now known as Guest4172
02:43:16 justsomeguy joins (~justsomeg@user/justsomeguy)
02:44:18 × dsrt^ quits (~dsrt@96.70.11.181) (Remote host closed the connection)
02:44:50 × king_gs quits (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) (Read error: Connection reset by peer)
02:45:01 king_gs1 joins (~Thunderbi@187.201.216.244)
02:45:45 dsrt^ joins (~dsrt@96.70.11.181)
02:47:19 king_gs1 is now known as king_gs
02:47:48 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
02:48:06 Feuermagier joins (~Feuermagi@user/feuermagier)
02:49:50 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
02:51:03 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
02:51:18 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
02:59:55 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:59:55 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:59:55 finn_elija is now known as FinnElija
03:02:43 matthewmosior joins (~matthewmo@173.170.253.91)
03:04:17 × king_gs quits (~Thunderbi@187.201.216.244) (Read error: Connection reset by peer)
03:04:50 × Polo quits (~polo@user/polo) (Quit: Textual IRC Client: www.textualapp.com)
03:05:02 king_gs joins (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec)
03:10:36 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
03:13:07 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
03:13:11 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
03:13:36 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:15:14 <Axman6> how fun D:
03:15:29 <Axman6> I would love to know why if you find out
03:20:37 matthewmosior joins (~matthewmo@173.170.253.91)
03:20:37 × Vajb quits (~Vajb@2001:999:705:3c86:e7ea:442b:1e01:22d8) (Read error: Connection reset by peer)
03:21:06 <johnw> I'll let you know! It happens in Perl too, so it's not a GHC thing
03:21:20 Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
03:21:40 × vglfr quits (~vglfr@145.224.94.75) (Read error: Connection reset by peer)
03:22:52 vglfr joins (~vglfr@145.224.94.75)
03:24:03 × jargon quits (~jargon@184.101.169.20) (Ping timeout: 244 seconds)
03:25:24 notzmv joins (~zmv@user/notzmv)
03:26:44 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
03:30:58 <Axman6> well, that's a bit of a relief!
03:32:49 × hololeap quits (~quassel@user/hololeap) (Quit: Bye)
03:33:47 hololeap joins (~quassel@user/hololeap)
03:34:20 × king_gs quits (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) (Ping timeout: 268 seconds)
03:42:23 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
03:42:45 × waleee quits (~waleee@h-176-10-137-138.na.cust.bahnhof.se) (Ping timeout: 252 seconds)
03:43:10 × Patternm1ster quits (~georg@li1192-118.members.linode.com) (Quit: leaving)
03:43:30 Patternmaster joins (~georg@user/Patternmaster)
03:47:52 × _73 quits (~user@pool-173-76-102-248.bstnma.fios.verizon.net) (Ping timeout: 268 seconds)
03:49:00 <Clinton[m]> I'm working on a cabal project, which consists of about a dozen cabal packages, and I have recently made the build process a bit stricter basically by ensuring all our packages are `-Wall` and `-Werror`. However, I'd like to be able to do say, a `cabal build all --dev` or something during development that turns off _some_ warnings, in particular the unused _blah_ warnings. But, I do want cabal to attempt to rebuild the files when I finally
03:49:00 <Clinton[m]> am ready to push a branch and do a `cabal build all`, not just use the built files that weren't checked for these warnings.
03:49:00 <Clinton[m]> Is there a way to achieve this?
03:49:06 × inversed quits (~inversed@90.209.137.56) (Ping timeout: 268 seconds)
03:51:18 inversed joins (~inversed@90.209.137.56)
03:52:31 <c_wraith> Clinton[m]: untested, but maybe if you make it a cabal flag and reconfigure the package the flag changed?
03:52:44 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
03:53:19 <c_wraith> honestly, that's a tricky one. Usually people want to recompile *less*..
03:53:47 <c_wraith> I guess you could also just fire off a cabal clean
03:54:22 <c_wraith> Put it into a script that also rebuilds with full warnings and -Werror
03:55:15 <Clinton[m]> c_wraith: as in, put the same flag in all my `.cabal` files, and make that flag turn off warnings?
03:55:35 <Clinton[m]> c_wraith: well turn off some of them at least
03:55:37 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
03:55:59 matthewmosior joins (~matthewmo@173.170.253.91)
03:57:26 × ardell_ quits (~ardell@user/ardell) (Quit: Leaving)
03:58:08 <c_wraith> something like that. My note is mostly based on the observation that cabal considers changing flags to be changing the package key, so it considers it a whole new package, and... hopefully recompiles because of that.
03:58:26 <c_wraith> changing cabal flags, that is
03:58:30 × ddb quits (~ddb@ipv6two.tilde.club) (Ping timeout: 268 seconds)
04:00:12 ddb joins (~ddb@ipv6two.tilde.club)
04:00:13 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
04:00:23 <L29Ah> is it me or -Wall -Werror impacts portability a lot, basically forcing to get rid of deprecated everything and all the extra imports that allow building my code with older ghc/libs?
04:02:28 <c_wraith> You can work around those issues... but yes, it adds a lot of noise to do those workarounds
04:04:38 × sammelweis_ quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
04:06:13 <c_wraith> keeping that even sort of relatively under control is why a lot of packages adopt things like 3-version rules, where they say every release of their library will support the last three major versions of GHC, but they make no guarantees going back further.
04:06:28 <c_wraith> ... Though the bugginess of 9.x releases has thrown a wrench into that.
04:07:49 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:15:58 <monochrom> I think -Wall hasn't changed a lot over the years?
04:16:16 matthewmosior joins (~matthewmo@173.170.253.91)
04:16:53 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
04:18:05 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
04:18:07 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 268 seconds)
04:18:38 Vajb joins (~Vajb@2001:999:705:3c86:e7ea:442b:1e01:22d8)
04:19:49 <L29Ah> it hasn't but libs changed
04:20:06 <L29Ah> some imports became redundant and -Wall -Werror happily explodes on them
04:20:15 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
04:21:40 <[Leary]> You want something like -Wwarn=deprecations -Wwarn=dodgy-imports -Wwarn=unused-imports
04:22:26 × hgolden quits (~Howard@cpe-172-251-233-141.socal.res.rr.com) (Ping timeout: 260 seconds)
04:24:03 <c_wraith> -Wall has definitely changed
04:24:13 <c_wraith> And there are people who get unhappy every time a new warning is added
04:25:30 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
04:25:40 <dolio> That's why you shouldn't use -Wall. :þ
04:30:38 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
04:30:39 <janus> Clinton[m]: you can have multiple cabal.projects and choose the one to use using --project-file
04:31:11 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
04:31:12 <janus> Clinton[m]: cabal.project files are used only for local development, so it is what you want, since you don't want this to get used when not working on the library itself
04:32:06 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
04:35:28 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:43:06 matthewmosior joins (~matthewmo@173.170.253.91)
04:44:36 × Guest4172 quits (~chenqisu1@183.217.200.212) (Ping timeout: 260 seconds)
04:47:31 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
04:52:45 mbuf joins (~Shakthi@122.165.55.71)
04:54:32 × benin0 quits (~benin@183.82.205.66) (Ping timeout: 268 seconds)
05:00:01 <hololeap> Clinton[m]: a common practice is to add a 'pedantic' flag which turns on -Werror, which you can add to a 'common' stanza and 'import' it everywhere. then you can turn it on/off in cabal.project.local as you see fit. you would have to add this same 'common' stanza and flag to all your packages, though
05:04:29 × cods_ quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 268 seconds)
05:04:41 cods joins (~fred@82-65-232-44.subs.proxad.net)
05:06:21 <hololeap> for instance: https://github.com/hololeap/cabal-portage/blob/main/parsable/parsable.cabal#L26-L49
05:09:55 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
05:10:50 hgolden joins (~Howard@cpe-172-251-233-141.socal.res.rr.com)
05:18:09 matthewmosior joins (~matthewmo@173.170.253.91)
05:21:03 <johnw> Axman6: so here is some odd code: https://gist.github.com/f8eab8aca4ab60230ecfde0ca62bbf1d
05:21:14 <johnw> on some platforms, this prints two different answers from the same pow function!
05:21:27 <johnw> and it looks like whatever is happening due to my "safe_pow" wrapper, is what happens to GHC's FFI boundary
05:23:11 king_gs joins (~Thunderbi@187.201.216.244)
05:24:39 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
05:27:09 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
05:29:04 coot joins (~coot@213.134.176.158)
05:35:17 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
05:36:54 jargon joins (~jargon@184.101.185.66)
05:43:02 × king_gs quits (~Thunderbi@187.201.216.244) (Read error: Connection reset by peer)
05:43:11 king_gs1 joins (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec)
05:45:29 king_gs1 is now known as king_gs
05:46:16 cheater joins (~Username@user/cheater)
05:47:00 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
05:56:25 Maeda joins (~Maeda@91-161-10-149.subs.proxad.net)
05:56:28 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
05:57:02 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
05:59:16 × qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 260 seconds)
06:00:50 qrpnxz joins (~qrpnxz@fsf/member/qrpnxz)
06:03:04 matthewmosior joins (~matthewmo@173.170.253.91)
06:05:02 nilradical joins (~nilradica@user/naso)
06:07:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
06:10:58 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
06:11:40 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
06:12:56 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
06:15:26 × dos__^^ quits (~user@user/dos/x-1723657) (Read error: Connection reset by peer)
06:16:11 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
06:16:14 chele joins (~chele@user/chele)
06:17:11 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
06:17:47 nilradical joins (~nilradica@user/naso)
06:20:06 × coot quits (~coot@213.134.176.158) (Remote host closed the connection)
06:22:36 × nilradical quits (~nilradica@user/naso) (Ping timeout: 260 seconds)
06:22:51 kenran joins (~kenran@p200300df77304e00c7e0792bdbb64275.dip0.t-ipconnect.de)
06:23:01 matthewmosior joins (~matthewmo@173.170.253.91)
06:25:44 mc47 joins (~mc47@xmonad/TheMC47)
06:25:59 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:30:27 alternateved joins (~user@staticline-31-183-146-203.toya.net.pl)
06:30:56 nate4 joins (~nate@98.45.169.16)
06:33:33 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
06:34:05 coot joins (~coot@213.134.176.158)
06:36:01 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
06:36:11 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:38:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
06:41:37 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:47:06 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
06:54:26 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
06:54:59 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 248 seconds)
06:56:54 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:57:42 × echoreply quits (~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
06:58:11 echoreply joins (~echoreply@45.32.163.16)
07:00:53 nilradical joins (~nilradica@user/naso)
07:06:46 zaquest joins (~notzaques@5.130.79.72)
07:07:11 lortabac joins (~lortabac@2a01:e0a:541:b8f0:960c:3e36:2011:d901)
07:07:19 matthewmosior joins (~matthewmo@173.170.253.91)
07:09:15 × dsrt^ quits (~dsrt@96.70.11.181) (Remote host closed the connection)
07:09:49 dsrt^ joins (~dsrt@96.70.11.181)
07:11:52 aforemny_ is now known as aforemny
07:13:42 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
07:14:20 nilradical joins (~nilradica@user/naso)
07:14:42 jtomas joins (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net)
07:14:56 michalz joins (~michalz@185.246.204.90)
07:16:46 acidjnk joins (~acidjnk@p200300d6e7137a9065c8dabee66bffd1.dip0.t-ipconnect.de)
07:19:23 × nilradical quits (~nilradica@user/naso) (Ping timeout: 255 seconds)
07:20:20 nschoe joins (~quassel@2a01:e0a:8e:a190:4494:42b0:507c:252c)
07:20:34 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
07:25:25 themc47 joins (~mc47@xmonad/TheMC47)
07:27:15 × coot quits (~coot@213.134.176.158) (Quit: coot)
07:28:03 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 268 seconds)
07:31:15 Pickchea joins (~private@user/pickchea)
07:32:01 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
07:42:07 nilradical joins (~nilradica@user/naso)
07:44:09 matthewmosior joins (~matthewmo@173.170.253.91)
07:47:59 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:48:38 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
07:52:40 × tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:53:14 coot joins (~coot@213.134.176.158)
07:58:58 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:02:07 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:4194:7795:a0fa:7264)
08:02:30 <merijn> Clinton[m]: /sb goto +20
08:02:38 <merijn> hmm
08:02:45 <merijn> awkward tab complete failure xD
08:04:00 phma joins (phma@2001:5b0:210d:9458:aee1:2881:7c08:f7a7)
08:04:51 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
08:05:02 Pickchea joins (~private@user/pickchea)
08:05:09 ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net)
08:08:00 fserucas joins (~fserucas@83.223.251.40)
08:17:34 olle joins (~olle@h-94-254-63-12.NA.cust.bahnhof.se)
08:17:45 <olle> What's the situation with printf in haskell? Only string literal?
08:17:53 matthewmosior joins (~matthewmo@173.170.253.91)
08:20:11 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:4194:7795:a0fa:7264) (Remote host closed the connection)
08:20:30 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:e583:10da:cffa:3886)
08:23:10 × shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit)
08:24:16 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
08:25:26 nilradical joins (~nilradica@user/naso)
08:26:29 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:e583:10da:cffa:3886) (Remote host closed the connection)
08:27:23 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:205a:6422:dcc1:1c1c)
08:27:38 <maerwald[m]> olle: printf works
08:28:32 <tdammers> The printf in base (Text.Printf.printf) works fine, it's just not fully typesafe
08:28:59 <maerwald[m]> printf was never typesafe
08:29:03 <tdammers> e.g., printf "%i %i" "Hello, world!" will compile, but it will error at runtime
08:29:49 <merijn> olle: There's not enough context to understand what kinda answer you're even looking for
08:30:08 × king_gs quits (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) (Remote host closed the connection)
08:30:15 <tdammers> and yeah, ^.
08:30:27 king_gs joins (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec)
08:31:02 <maerwald[m]> If you want something typesafe, then you don't want printf
08:31:50 <dminuoso> "As an ExitCode is not an IOException, exitWith bypasses the error handling in the IO monad and cannot be intercepted by catch from the Prelude"
08:32:07 <dminuoso> This seems misleading, as `catch` can catch this perfectly fine if you monomorphize it to SomeException...
08:33:21 <dminuoso> Or is there something subtle Im missing?
08:34:11 <merijn> dminuoso: check the repo to see how old those docs are? :p
08:34:32 <dminuoso> Fair *shrugs*
08:35:02 <dminuoso> Im just mildly annoyed that I cannot special-case ExitCode in a outermost `handle`
08:36:07 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
08:38:39 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:205a:6422:dcc1:1c1c) (Remote host closed the connection)
08:38:57 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:cead:ee68:494c:1354)
08:40:12 × nilradical quits (~nilradica@user/naso) (Ping timeout: 268 seconds)
08:41:19 jakalx parts (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection)
08:41:20 jakalx joins (~jakalx@base.jakalx.net)
08:44:22 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
08:45:22 <olle> merijn: in ocaml, they limit the first input arg to printf, it must be a string literal so that the compiler can figure out the function signature
08:46:17 <olle> tdammers: error at runtime, eh.
08:47:13 <olle> Just curious in general, since I'm writing on a little compiler project :)
08:47:49 <merijn> In general: Don't use printf
08:48:13 <c_wraith> Hey, now that the Uncons type family exists, you can write a type-safe printf
08:48:15 <olle> merijn: So what's the type-safe alternative...?
08:48:30 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
08:49:01 nattiestnate joins (~nate@202.138.250.9)
08:49:16 <merijn> olle: I use either Text Builder, a prettyprinter, or just "putStrLn $ mconcat [ list of strings and explicitly converted elements here]"
08:49:51 <merijn> c_wraith: A bunch of type safe printfs already exist, using all sorts of type level machinery and god knows what
08:50:05 <c_wraith> sure, but Uncons actually makes them efficient
08:50:27 <merijn> And you know what? I can get 99% of the power with 5% of the complexity by just "having a list of strings and things explicitly converted to strings"
08:50:31 <c_wraith> instead of taking minutes to compile if the format string is long...
08:51:38 <maerwald[m]> Shitty type families, because we want to be as cool as Idris
08:51:40 <merijn> Stuff like: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/model-src/Evaluate.hs#L375-L385
08:51:59 <merijn> Added bonus: don't have to explain complicated type level stuff to beginners
08:52:32 <c_wraith> It's not that complicated to say "put a @ in front of the format string"
08:52:57 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
08:55:29 <lortabac> there are also a couple of string interpolation libraries
08:56:55 cfricke joins (~cfricke@user/cfricke)
08:58:15 <merijn> c_wraith: And enable the relevant extension to enable that and hope the error messages don't become inscrutable
08:58:56 <c_wraith> inscrutable error messages are better than segfaults. :P
08:59:19 <merijn> c_wraith: Sure, but that wasn't the alternative I proposed
08:59:38 <c_wraith> But that's what people asking for printf expect
09:00:31 <c_wraith> also, your proposal is really bad at the cases where I'd want printf - formatting tabular numeric output.
09:02:00 <merijn> c_wraith: How is it worse at that then printf?
09:04:15 <c_wraith> printf provides a compact numeric format specification language that only takes 3 or 4 characters to full describe most numeric formats you want. That's a lot less pleasant than a bunch of function calls with slightly different parameters
09:05:15 tremon joins (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
09:05:20 matthewmosior joins (~matthewmo@173.170.253.91)
09:05:27 <c_wraith> err. more pleasant. brain failing
09:05:36 <c_wraith> how'd it get so late?
09:07:41 × acidjnk quits (~acidjnk@p200300d6e7137a9065c8dabee66bffd1.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
09:11:18 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
09:12:22 × kaskal- quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in)
09:12:50 kaskal joins (~kaskal@2001:4bb8:2dc:7b0e:55ee:692c:e44d:a4b0)
09:18:37 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
09:20:42 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:23:35 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
09:23:58 acidjnk joins (~acidjnk@p200300d6e7137a90ed2e80addb26645c.dip0.t-ipconnect.de)
09:25:58 × king_gs quits (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) (Quit: king_gs)
09:43:14 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:cead:ee68:494c:1354) (Ping timeout: 252 seconds)
09:45:34 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
09:48:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:48:21 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:49:36 beteigeuze joins (~Thunderbi@bl11-28-222.dsl.telepac.pt)
09:50:35 × Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds)
09:52:06 matthewmosior joins (~matthewmo@173.170.253.91)
09:52:24 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
09:53:55 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:56:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
10:00:11 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
10:00:36 × cfricke quits (~cfricke@user/cfricke) (Read error: Connection reset by peer)
10:02:32 nilradical joins (~nilradica@user/naso)
10:03:00 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
10:03:16 nilradical joins (~nilradica@user/naso)
10:03:50 cheater joins (~Username@user/cheater)
10:05:27 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:07:24 × tremon quits (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
10:07:27 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:ebdd:9648:ec0b:a288)
10:08:23 cfricke joins (~cfricke@user/cfricke)
10:10:08 matthewmosior joins (~matthewmo@173.170.253.91)
10:15:10 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
10:17:41 × fserucas quits (~fserucas@83.223.251.40) (Ping timeout: 260 seconds)
10:25:14 × qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 255 seconds)
10:27:09 qrpnxz joins (~qrpnxz@fsf/member/qrpnxz)
10:27:12 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
10:28:51 MoC joins (~moc@user/moc)
10:29:33 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:ebdd:9648:ec0b:a288) (Remote host closed the connection)
10:29:52 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:a29:a40d:c286:af9d)
10:32:26 nate4 joins (~nate@98.45.169.16)
10:36:02 × tom_ quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Remote host closed the connection)
10:37:00 tom_ joins (~tom@2a00:23c8:970c:4801:f468:ae00:9bb1:fddf)
10:37:22 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
10:41:04 matthewmosior joins (~matthewmo@173.170.253.91)
10:42:11 × acidjnk quits (~acidjnk@p200300d6e7137a90ed2e80addb26645c.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
10:43:47 acidjnk joins (~acidjnk@p200300d6e7137a90ed2e80addb26645c.dip0.t-ipconnect.de)
10:45:17 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
10:50:23 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:53:50 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
10:55:15 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
11:03:26 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:a29:a40d:c286:af9d) (Remote host closed the connection)
11:03:45 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:4707:8153:2279:bb9)
11:12:26 fserucas joins (~fserucas@2001:8a0:75cf:a000:3e07:2fab:6f55:9d33)
11:14:21 × fserucas quits (~fserucas@2001:8a0:75cf:a000:3e07:2fab:6f55:9d33) (Client Quit)
11:14:38 fserucas joins (~fserucas@2001:8a0:75cf:a000:3e07:2fab:6f55:9d33)
11:19:34 matthewmosior joins (~matthewmo@173.170.253.91)
11:20:06 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
11:21:18 nilradical joins (~nilradica@user/naso)
11:24:21 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:4707:8153:2279:bb9) (Remote host closed the connection)
11:24:40 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:7a19:dcb1:41a4:e1bf)
11:25:16 Midjak joins (~Midjak@82.66.147.146)
11:25:23 xff0x joins (~xff0x@ai071162.d.east.v6connect.net)
11:25:56 CiaoSen joins (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:27:57 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
11:28:57 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
11:29:12 nilradical joins (~nilradica@user/naso)
11:35:57 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:7a19:dcb1:41a4:e1bf) (Remote host closed the connection)
11:39:02 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
11:43:02 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
11:43:48 nilradical joins (~nilradica@user/naso)
11:48:24 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
11:48:42 nilradical joins (~nilradica@user/naso)
11:48:47 Pickchea joins (~private@user/pickchea)
11:51:25 matthewmosior joins (~matthewmo@173.170.253.91)
11:55:33 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
11:55:56 __monty__ joins (~toonn@user/toonn)
11:58:22 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
11:58:49 Guest4172 joins (~chenqisu1@183.217.200.212)
11:59:10 nilradical joins (~nilradica@user/naso)
12:01:15 × Guest4172 quits (~chenqisu1@183.217.200.212) (Max SendQ exceeded)
12:01:43 Guest4172 joins (~chenqisu1@183.217.200.212)
12:03:29 `2jt joins (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net)
12:04:56 × jtomas quits (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
12:05:31 × nilradical quits (~nilradica@user/naso) (Ping timeout: 268 seconds)
12:09:33 nilradical joins (~nilradica@user/naso)
12:09:38 matthewmosior joins (~matthewmo@173.170.253.91)
12:09:41 × fserucas quits (~fserucas@2001:8a0:75cf:a000:3e07:2fab:6f55:9d33) (Ping timeout: 260 seconds)
12:09:50 × Guest4172 quits (~chenqisu1@183.217.200.212) (Ping timeout: 268 seconds)
12:10:21 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
12:11:24 nilradical joins (~nilradica@user/naso)
12:12:35 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
12:12:51 nilradical joins (~nilradica@user/naso)
12:15:25 × kenran quits (~kenran@p200300df77304e00c7e0792bdbb64275.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
12:17:07 kenran joins (~kenran@ip-037-024-119-190.um08.pools.vodafone-ip.de)
12:19:20 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
12:20:11 × acidjnk quits (~acidjnk@p200300d6e7137a90ed2e80addb26645c.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
12:20:43 × vgtw quits (~vgtw@user/vgtw) (Quit: ZNC - https://znc.in)
12:23:47 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
12:24:08 <troydm> is there a way to get object reference address in memory in Haskell?
12:25:14 <troydm> like I have something like type MyType = MyType Text which I want to implement Eq by reference in memory, I know that doesn't sounds right but it's performance optimization hack
12:27:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
12:27:46 <opqdonut> there's stuff like reallyUnsafePtrEquality#
12:27:52 <opqdonut> but I have no idea how to use those correctly
12:30:22 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
12:30:50 <jackdk> opqdonut: Manuel Chakravaty used it in his Haskell bindings to SpriteKit to provide a declarative interface and avoid many expensive equality checks. I think it's in https://www.youtube.com/watch?v=GaorHAlUkVs but my internet is bad right now.
12:31:05 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:fd36:7f1:588a:9c0f)
12:31:38 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:32:24 <merijn> troydm: No, because memory location isn't fixed
12:34:50 <troydm> merijn: if you force both values they won't change their memory location right?
12:34:57 <merijn> Maybe
12:35:08 <merijn> troydm: GC can move them, and GC can happen basically anytime
12:35:28 <merijn> I know reallyUnsafePtrEquality# can give both false positives *and* false negatives even when paranoidly used
12:36:04 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
12:36:21 <merijn> troydm: More importantly, Text already does pointer equality internally before doing full comparison
12:37:04 <troydm> merijn: it does?
12:37:21 <troydm> merijn: if it does my problem is solved
12:37:36 <merijn> hmm, maybe not, I thought it did. But it does a bunch of optimisations already
12:37:53 <merijn> Like, if two texts have different lengths it immediately returns false without checking contents
12:38:37 <troydm> <interactive>:9:41: error: parse error on input ‘\#’
12:38:38 <troydm> ghci> import GHC.Prim (reallyUnsafePtrEquality#)
12:38:43 <troydm> how do I use it?
12:39:11 <troydm> merijn: yeah I understand that
12:39:17 <merijn> It requires MagicHash
12:43:21 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
12:44:13 <troydm> another way I think is to use IORef values and check those to each other right?
12:44:22 nilradical joins (~nilradica@user/naso)
12:44:43 × vglfr quits (~vglfr@145.224.94.75) (Read error: Connection reset by peer)
12:45:00 vglfr joins (~vglfr@145.224.94.75)
12:45:17 <merijn> IORefs and MVar always compare by their location, yes
12:46:57 × coot quits (~coot@213.134.176.158) (Quit: coot)
12:49:20 × nilradical quits (~nilradica@user/naso) (Ping timeout: 268 seconds)
12:50:28 vgtw joins (~vgtw@user/vgtw)
12:52:25 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:54:10 matthewmosior joins (~matthewmo@173.170.253.91)
12:54:11 × dsrt^ quits (~dsrt@96.70.11.181) (Remote host closed the connection)
12:55:55 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:fd36:7f1:588a:9c0f) (Remote host closed the connection)
12:56:56 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
12:58:40 fserucas joins (~fserucas@2001:8a0:75cf:a000:3e07:2fab:6f55:9d33)
13:01:23 × kadobanana quits (~mud@user/kadoban) (Ping timeout: 248 seconds)
13:01:33 × vgtw quits (~vgtw@user/vgtw) (Ping timeout: 252 seconds)
13:03:35 × averell quits (~averell@user/averell) (Quit: .)
13:04:13 finsternis joins (~X@23.226.237.192)
13:04:54 kadobanana joins (~mud@user/kadoban)
13:06:47 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:06:53 matthewmosior joins (~matthewmo@173.170.253.91)
13:13:31 × nattiestnate quits (~nate@202.138.250.9) (Quit: WeeChat 3.6)
13:15:19 eikke joins (~NicolasT@user/NicolasT)
13:17:10 nilradical joins (~nilradica@user/naso)
13:17:52 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
13:18:09 Pickchea joins (~private@user/pickchea)
13:22:10 <eikke> Looks like `--gcc-options` passed to `cabal configure` are passed to gcc when compiling a hsc2hs-generated C file, but not whejn compiling C files part of a package's `c-sources`. Is that expected?
13:22:21 coot joins (~coot@213.134.176.158)
13:22:35 vgtw joins (~vgtw@user/vgtw)
13:22:57 <geekosaur> this might be a question for #hackage (which despite its name is about cabal)
13:23:32 <Maeda> Hi! Is this a good place to start with learning Haskell? https://wiki.haskell.org/Tutorials, especially "Introduction to Haskell (Spring 2013)". I do not want to start with obsolete content :). Thanks.
13:23:45 <eikke> geekosaur: thanks!
13:24:12 <geekosaur> most of the changes since 2013 have been to advanced topics
13:24:35 <merijn> eikke: Don't use gcc-options, use c-options
13:24:41 <geekosaur> the spring 2013 course by byorgey is generally considered the best one tp start from
13:24:54 <opqdonut> Maeda: consider https://haskell.mooc.fi/
13:25:04 <merijn> eikke: C files get compiled via C compiler invoked by GHC and I dunno how gcc-options are handled there
13:25:45 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:26:29 <eikke> merijn: I can put stuff in `cc-options`, sure, but I was thinking to move a bunch of not-needed compiler flags out of my lib's lib.cabal file and move them in cabal.project
13:26:58 <eikke> As an example, ghc-options -Wall aren't really needed in lib.cabal's ghc-options. Same for C compiler -Wall. Having stuff in cabal.project would allow to have -Werror in there
13:27:52 <merijn> You shouldn't have -Werror in your cabal anyway if you plan to upload to hackage (in fact, pretty sure Hackage will reject your package if you do that)
13:28:00 tristanC_ is now known as tristanC
13:28:16 <eikke> merijn: I know. But having it in cabal.project is a different story, right?
13:28:41 <merijn> Yeah, but I'd just move the -Werror into cabal.project, not the others :p
13:28:47 <eikke> That's the point, I'd like my local dev env and other contributors and CI etc to have -Werror, but the distributed package not
13:29:05 <geekosaur> then you want cabal.project.local, not cabal.project
13:29:20 <eikke> geekosaur: why .local only?
13:29:33 <geekosaur> because that's the one that's not part of the package
13:30:03 <eikke> I have 2 libs in the same git-tree, cabal.project is at the root, are you saying it's somehow still made part of the sdists of the (subdir) libraries?
13:30:08 <geekosaur> well, if you're breaking it up then cabal.project belongs only to the package it shares a directory with
13:30:20 <geekosaur> it may be okay in that case
13:30:36 <merijn> geekosaur: huh, -Werror and stuff sounds right for cabal.project
13:30:44 <geekosaur> but you should develop the habit of using .local so as to not get a surprise when it's in the same dir as a cabal file
13:30:44 <merijn> He said he wants it set for all contriubtors
13:31:30 <eikke> geekosaur: .local shouldn't be in VCS, so seems weird if these are settings that should be applied to all dev/CI envs
13:32:09 <eikke> (I was out of the Haskell sphere for a while, when cabal.project was introduced, so I may be missing a couple of things ;))
13:33:03 <merijn> eikke: I think geekosaur is misunderstanding you
13:33:20 <eikke> The way I interpreted is: foo.cabal is about the package, what gets sdist'ed/uploaded to hackage. cabal.project is about dev/build environment but doesn't influence sdist/hackage. c.p.local is system-local overrides
13:33:31 <merijn> eikke: Yes
13:34:15 <eikke> so having compiler warnings (and optionally -Werror) seems a good fit for cabal.project, but not foo.cabal (where historically these things were put)
13:34:52 matthewmosior joins (~matthewmo@173.170.253.91)
13:36:01 × nilradical quits (~nilradica@user/naso) (Ping timeout: 252 seconds)
13:36:24 × kenran quits (~kenran@ip-037-024-119-190.um08.pools.vodafone-ip.de) (Quit: WeeChat info:version)
13:36:27 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.6)
13:36:37 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:37:53 <merijn> I would keep warnings inside the cabal file, though. Makes it easier for users to spot things going potentially wrong that your tests may not see
13:39:40 matthewmosior joins (~matthewmo@173.170.253.91)
13:39:54 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:960c:3e36:2011:d901) (Ping timeout: 268 seconds)
13:40:56 <eikke> merijn: maybe, though seems unlikely because when installed as a dep, the cabal output won't show the compiler output by default iirc
13:44:01 × flukiluke quits (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection)
13:44:03 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
13:45:11 flukiluke joins (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
13:48:46 matthewmosior joins (~matthewmo@173.170.253.91)
13:52:34 acidjnk joins (~acidjnk@p200300d6e7137a90e5222ed8f1aa363c.dip0.t-ipconnect.de)
13:57:16 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net)
13:58:01 GoldsteinQ joins (~goldstein@goldstein.rs)
13:59:23 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
13:59:38 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
14:01:41 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 255 seconds)
14:01:41 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net) (Ping timeout: 252 seconds)
14:05:24 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
14:09:28 shriekingnoise joins (~shrieking@186.137.167.202)
14:09:51 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds)
14:14:54 worldhelloworld1 joins (uid543174@id-543174.helmsley.irccloud.com)
14:16:02 Sgeo joins (~Sgeo@user/sgeo)
14:16:07 <worldhelloworld1> How do I see a history of this irc channel? My irc client doesn't retain history :(
14:17:25 <geekosaur> there's a log in the /topic
14:17:44 <geekosaur> (search doesn't work, though)
14:19:54 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net)
14:21:20 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
14:21:47 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:bd51:d0d0:1488:2474)
14:23:55 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:25:53 nilradical joins (~nilradica@user/naso)
14:26:45 × alternateved quits (~user@staticline-31-183-146-203.toya.net.pl) (Remote host closed the connection)
14:27:29 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.6)
14:28:31 × acidjnk quits (~acidjnk@p200300d6e7137a90e5222ed8f1aa363c.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
14:30:16 × nilradical quits (~nilradica@user/naso) (Ping timeout: 260 seconds)
14:31:13 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
14:32:50 × gnyeki quits (~gnyeki@user/gnyeki) (Quit: leaving)
14:33:56 nate4 joins (~nate@98.45.169.16)
14:35:59 gnyeki joins (~gnyeki@user/gnyeki)
14:38:15 matthewmosior joins (~matthewmo@173.170.253.91)
14:39:06 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
14:39:38 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
14:40:57 × eikke quits (~NicolasT@user/NicolasT) (Ping timeout: 268 seconds)
14:41:34 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net) (Ping timeout: 268 seconds)
14:42:29 matthewmosior joins (~matthewmo@173.170.253.91)
14:43:25 nilradical joins (~nilradica@user/naso)
14:52:38 ddellacosta joins (~ddellacos@143.244.47.90)
14:53:16 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
14:54:32 × chele quits (~chele@user/chele) (Remote host closed the connection)
14:56:03 pavonia joins (~user@user/siracusa)
14:57:03 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:58:19 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net)
15:02:27 zebrag joins (~chris@user/zebrag)
15:03:15 matthewmosior joins (~matthewmo@173.170.253.91)
15:04:38 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:05:33 matthewmosior joins (~matthewmo@173.170.253.91)
15:06:21 × son0p quits (~ff@181.136.122.143) (Ping timeout: 268 seconds)
15:07:06 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:07:12 matthewmosior joins (~matthewmo@173.170.253.91)
15:07:38 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:bd51:d0d0:1488:2474) (Remote host closed the connection)
15:07:57 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:16a0:cc74:b1e8:4d5)
15:08:27 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:11:05 × nilradical quits (~nilradica@user/naso) ()
15:11:25 econo joins (uid147250@user/econo)
15:18:40 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:22:24 × ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Quit: ccntrq)
15:24:50 maroloccio joins (~marolocci@151.53.151.111)
15:25:57 matthewmosior joins (~matthewmo@173.170.253.91)
15:29:14 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:16a0:cc74:b1e8:4d5) (Remote host closed the connection)
15:29:46 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net) (Ping timeout: 260 seconds)
15:30:20 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
15:37:12 ec joins (~ec@gateway/tor-sasl/ec)
15:38:33 × ec quits (~ec@gateway/tor-sasl/ec) (Client Quit)
15:38:44 ec joins (~ec@gateway/tor-sasl/ec)
15:42:09 justDeez is now known as justache
15:46:08 alternateved joins (~user@staticline-31-183-146-203.toya.net.pl)
15:46:49 × maroloccio quits (~marolocci@151.53.151.111) (Quit: WeeChat 3.0)
15:58:34 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
15:59:43 matthewmosior joins (~matthewmo@173.170.253.91)
16:08:11 × oo_migue1 quits (~pi@77.252.47.226) (Ping timeout: 252 seconds)
16:10:01 × tom_ quits (~tom@2a00:23c8:970c:4801:f468:ae00:9bb1:fddf) (Ping timeout: 260 seconds)
16:10:18 oo_migue1 joins (~pi@77.252.47.160)
16:10:45 × ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer)
16:11:11 × fserucas quits (~fserucas@2001:8a0:75cf:a000:3e07:2fab:6f55:9d33) (Ping timeout: 260 seconds)
16:11:21 × adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
16:11:21 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
16:11:36 ystael joins (~ystael@user/ystael)
16:11:39 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
16:12:10 jpds joins (~jpds@gateway/tor-sasl/jpds)
16:17:12 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net)
16:17:25 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:17:46 × oo_migue1 quits (~pi@77.252.47.160) (Ping timeout: 268 seconds)
16:19:21 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
16:19:39 oo_migue1 joins (~pi@77-252-46-58.static.ip.netia.com.pl)
16:22:03 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net) (Ping timeout: 268 seconds)
16:23:09 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net)
16:24:09 wonko joins (~wjc@2a0e:1c80:2::130)
16:25:07 × hometown quits (~blurb@96.45.2.121) (Quit: Leaving)
16:28:14 acidjnk joins (~acidjnk@p54ad5adb.dip0.t-ipconnect.de)
16:30:06 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
16:31:16 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.dsl.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
16:32:22 matthewmosior joins (~matthewmo@173.170.253.91)
16:33:05 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:35:26 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
16:35:39 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
16:36:00 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
16:37:53 × nschoe quits (~quassel@2a01:e0a:8e:a190:4494:42b0:507c:252c) (Remote host closed the connection)
16:38:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
16:39:05 nschoe joins (~quassel@2a01:e0a:8e:a190:97b:9ffd:dcae:7700)
16:39:05 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:39:56 × qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 268 seconds)
16:39:58 × wonko quits (~wjc@2a0e:1c80:2::130) (Ping timeout: 268 seconds)
16:41:39 qrpnxz joins (~qrpnxz@fsf/member/qrpnxz)
16:43:01 TravisAthougies[ joins (~tathougie@2001:470:69fc:105::2:6fbd)
16:44:20 eikke joins (~NicolasT@user/NicolasT)
16:46:04 tremon joins (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
16:50:27 × nschoe quits (~quassel@2a01:e0a:8e:a190:97b:9ffd:dcae:7700) (Ping timeout: 268 seconds)
16:51:31 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
16:58:04 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
16:58:06 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:58:20 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
17:00:25 matthewmosior joins (~matthewmo@173.170.253.91)
17:02:37 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:06:57 nschoe joins (~quassel@2a01:e0a:8e:a190:6c1:7ffb:81b:ea40)
17:07:59 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
17:10:41 × eikke quits (~NicolasT@user/NicolasT) (Ping timeout: 260 seconds)
17:17:23 <raehik> I'm designing some type classes for parsing & serializing, like Aeson. Question: morally/in your opinion, should I provide instances for Void? Aeson does, but it means ToJSON Void runtime errors
17:17:35 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
17:17:40 × OpenSource quits (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net) (Changing host)
17:17:40 OpenSource joins (~Hash@user/OpenSource)
17:17:53 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
17:18:03 <raehik> The underlying question here is perhaps "how should one use Void"
17:18:08 matthewmosior joins (~matthewmo@173.170.253.91)
17:22:56 <zero> did takeUntil disappear or did i dream about such a function?
17:23:31 <c_wraith> I don't think it takeUntil ever existed in base, but I'm sure many packages have defined it
17:23:36 <geekosaur> is that a list function or a parser function?
17:23:45 <zero> list
17:23:58 <geekosaur> I think there are megaparsec functions of that variety, but never a list function
17:24:44 <zero> maybe i'm getting it mixed with takeWhile
17:26:20 × ix quits (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Ping timeout: 268 seconds)
17:27:28 × mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving)
17:29:16 × acidjnk quits (~acidjnk@p54ad5adb.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
17:32:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
17:33:06 ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
17:33:42 <[exa]> raehik: you can perfectly run ToJSON Void, if someone marks the void for you as Void -- you just output the "null" or something and don't even think about touching the parameter
17:33:45 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:34:34 acidjnk joins (~acidjnk@p200300d6e7137a55e00ff7705fa34544.dip0.t-ipconnect.de)
17:34:57 <raehik> [exa]: really? `ToJSON Void` uses `toJSON = absurd`
17:35:15 matthewmosior joins (~matthewmo@173.170.253.91)
17:35:19 <raehik> ToJSON () outputs a JSON null (or w/e it's called)
17:35:23 <c_wraith> I think using absurd is better anyway. anyone who claims to be giving you a Void is lying
17:35:29 × coot quits (~coot@213.134.176.158) (Quit: coot)
17:35:31 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:36:58 <raehik> I felt uneasy even implementing an instance for Void. But I'm seeing some use as an end user to mark something as "obviously failable if you broke an expectation"
17:37:45 <raehik> and if I don't add an instance then it will become an orphan and I can't have that weighing on my consciousness so I think I'll add it
17:37:51 <[exa]> yeah well, true that anything except `absurd` would be a crime in the standard library
17:38:45 califax joins (~califax@user/califx)
17:38:51 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
17:38:58 matthewmosior joins (~matthewmo@173.170.253.91)
17:39:07 <[exa]> I think there was another reason for that, something that helped the typechecking in more complicated cases, basically by making Void completely unexceptional
17:40:22 rekahsoft joins (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
17:40:24 <raehik> on the generics side I can generate a type error if I get a void constructor which is nice
17:44:03 × worldhelloworld1 quits (uid543174@id-543174.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
17:45:55 × OpenSource quits (~Hash@user/OpenSource) (Quit: ZNC - https://znc.in)
17:46:10 OpenSource joins (~kernel@user/OpenSource)
17:51:33 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
17:59:01 matthewmosior joins (~matthewmo@173.170.253.91)
18:02:07 Inst joins (~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e)
18:03:09 × toby quits (~toby@137.220.84.171) (Quit: Lost terminal)
18:05:29 × CiaoSen quits (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
18:19:46 <dmj`> may or may not have implemented a JSON parser at the type level.
18:20:10 <geekosaur> rip your snaity
18:20:14 <geekosaur> *sanity
18:20:23 codaraxis joins (~codaraxis@user/codaraxis)
18:25:00 <dmj`> geekosaur: https://gist.github.com/dmjio/2e94862988830dfd7e4bd51d29c1a9ba
18:27:04 <monochrom> haha achievement unlocked
18:27:14 <dmj`> haha :P
18:28:11 <monochrom> <Q> Hi why do you use C++ for prime factorization and Haskell for webapps? <A> Because I want to do those at compile time.
18:28:33 <c_wraith> that's what template haskell is for!
18:28:55 <c_wraith> ... ghci interpretation can't be any slower than template interpretation
18:28:58 × bjobjo_ quits (~bjobjo@user/bjobjo) (Quit: leaving)
18:29:59 <dmj`> Lots can be done now, can have type safe jq queries as well, or json path, can augment it to have json schema too.
18:31:06 <dmj`> c_wraith: I guess its the difference between the yesod approach and the servant approach.
18:31:18 × califax quits (~califax@user/califx) (Read error: Connection reset by peer)
18:31:31 califax joins (~califax@user/califx)
18:32:49 bjobjo joins (~bjobjo@user/bjobjo)
18:32:50 qhong_ is now known as qhong
18:32:53 <dmj`> this is why I want type level Read, but I guess an open type family can do that
18:34:19 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:35:13 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
18:35:27 nate4 joins (~nate@98.45.169.16)
18:36:02 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
18:36:15 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
18:36:20 zebrag joins (~chris@user/zebrag)
18:37:04 wonko joins (~wjc@2a0e:1c80:2::130)
18:37:05 Lord_of_Life_ is now known as Lord_of_Life
18:37:07 <monochrom> Laplace's Web Programming Method: 1. Predict all requests in the future. 2. Hardcode the desired responses as a type-level list. 3. Deploy.
18:38:31 <c_wraith> look, the set of possible http request bodies is countable. This should be easy!
18:38:56 Tuplanolla joins (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi)
18:40:50 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
18:44:01 × acidjnk quits (~acidjnk@p200300d6e7137a55e00ff7705fa34544.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
18:44:34 <dmj`> the grammar could be extended to include types so, `type Schema = "{ \"thing\" : @Thing }", which could produce a function to parse / encode, `toJSON :: Thing -> Value; toJSON (Proxy @Schema)", using the type family induction trick.
18:45:32 <zero> i just found out about constance synonyms like HasCallStack and Partial. where can i read about constant synonyms?
18:45:41 <zero> s/constance/constant
18:46:48 <zero> oops, nvm that
18:47:11 <zero> s/constant/constraint/g
18:48:10 × beteigeuze quits (~Thunderbi@bl11-28-222.dsl.telepac.pt) (Quit: beteigeuze)
18:48:22 beteigeuze joins (~Thunderbi@bl11-28-222.dsl.telepac.pt)
18:48:24 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6)
18:48:31 <dmj`> monochrom: oh cmon', responses should be predictable, not necessarily requests.
18:50:04 <monochrom> Oh! You're right!
18:50:45 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
18:51:59 <zero> ok now by searching for the correct term i found ConstraintKinds
18:52:03 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
18:52:06 <zero> thank you rubber duckies
18:52:10 <monochrom> The Laplace-Feynman Web Programming Method: 1. Read the specification very carefully. 2. Think very hard. 3. Write down the predicted future responses.
18:53:38 <monochrom> Don't forget to import Data.Kind for Constraint.
18:54:43 <dmj`> it's a schema of the response
18:58:15 azimut joins (~azimut@gateway/tor-sasl/azimut)
19:00:40 random-jellyfish joins (~random-je@user/random-jellyfish)
19:01:31 <random-jellyfish> is there a tool similar to jq for lisp source code?
19:02:18 o-90 joins (~o-90@gateway/tor-sasl/o-90)
19:07:32 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
19:08:01 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
19:08:45 <dmj`> monochrom: don't make me implement a SQL parser now
19:09:19 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
19:09:27 o-90 joins (~o-90@gateway/tor-sasl/o-90)
19:09:33 <tdammers> I think that tool is called "lisp" XD
19:09:35 <monochrom> haha
19:10:27 <monochrom> I should s/the specification/the initial state of the world/ :)
19:11:02 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
19:11:10 <monochrom> Then there is no input to parse! Based on the initial state, you think very carefully to see all correct responses in the future!
19:11:42 <monochrom> "Kripke would be proud" :)
19:12:30 o-90 joins (~o-90@gateway/tor-sasl/o-90)
19:12:42 acidjnk joins (~acidjnk@p200300d6e7137a55e00ff7705fa34544.dip0.t-ipconnect.de)
19:17:24 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
19:17:43 <dmj`> I hope so
19:20:07 gmg joins (~user@user/gehmehgeh)
19:26:04 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
19:27:56 notzmv joins (~zmv@user/notzmv)
19:31:18 × califax quits (~califax@user/califx) (Remote host closed the connection)
19:32:52 califax joins (~califax@user/califx)
19:41:41 matthewmosior joins (~matthewmo@173.170.253.91)
19:46:23 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
19:46:28 lortabac joins (~lortabac@2a01:e0a:541:b8f0:3c0d:13d8:ef0f:4c79)
19:46:33 ozkutuk joins (~ozkutuk@176.240.173.153)
19:47:12 kenran joins (~kenran@200116b82b092600f9ea957e5315559f.dip.versatel-1u1.de)
19:49:19 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Quit: o/)
19:49:56 <ozkutuk> What is the purpose of `other-extensions` field of Cabal? How is it different from `default-extensions`?
19:51:18 <ozkutuk> The documentation mentions the listed extensions may be provided via LANGUAGE pragmas, but I couldn't really make sense of this as they can be provided without listing them in the `other-extensions` field regardless
19:52:47 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
19:53:04 matthewmosior joins (~matthewmo@173.170.253.91)
19:53:22 <dmj`> ozkutuk: https://cabal.readthedocs.io/en/stable/cabal-package.html#pkg-field-other-extensions
19:54:57 <ozkutuk> dmj`: That is the documentation I mentioned, but from that I couldn't understand why I would want to use that field
19:55:08 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
19:55:30 <ozkutuk> For project-wide extensions I tend to use `default-extensions`, and for per-file extensions I use LANGUAGE pragmas
19:55:50 <ozkutuk> What use case does `other-extensions` cover?
19:57:21 <geekosaur> validation (not using extensions not listed in it), documentation
19:58:04 <geekosaur> checking that the specified extensions are supported by the compiler (e.g. not using LinearTypes in ghc 8.10.7)
19:59:00 <dmj`> ^ also, "The new 'default-extensions' field lists extensions that are used in all modules in the component, while the 'other-extensions' field lists extensions that are used in some modules, e.g. via the {-# LANGUAGE #-} pragma."
20:00:59 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:01:24 <ozkutuk> So if I list some extensions in the `other-extensions` field, would GHC complain if I provide an extension through LANGUAGE pragma that isn't part of the field?
20:02:20 <geekosaur> ghc wouldn't. cabal might; I don't know if it actually validates that currently
20:02:35 coot joins (~coot@213.134.176.158)
20:03:52 × random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed)
20:03:57 matthewmosior joins (~matthewmo@173.170.253.91)
20:04:14 random-jellyfish joins (~random-je@user/random-jellyfish)
20:04:49 pavonia joins (~user@user/siracusa)
20:06:23 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:06:31 × remexre quits (~remexre@user/remexre) (Remote host closed the connection)
20:06:34 <ozkutuk> I think it doesn't, at least that's what I observed from a quick test with one my existing projects
20:06:47 <ozkutuk> I guess documentation is still a valid use-case though
20:07:17 remexre joins (~remexre@user/remexre)
20:08:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
20:11:27 × oo_migue1 quits (~pi@77-252-46-58.static.ip.netia.com.pl) (Ping timeout: 268 seconds)
20:12:11 matthewmosior joins (~matthewmo@173.170.253.91)
20:13:19 oo_migue1 joins (~pi@77-252-46-249.static.ip.netia.com.pl)
20:16:46 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
20:19:16 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
20:19:47 × remexre quits (~remexre@user/remexre) (Ping timeout: 248 seconds)
20:20:55 remexre joins (~remexre@user/remexre)
20:22:32 × remexre quits (~remexre@user/remexre) (Remote host closed the connection)
20:23:14 remexre joins (~remexre@user/remexre)
20:24:26 × remexre quits (~remexre@user/remexre) (Remote host closed the connection)
20:26:05 remexre joins (~remexre@user/remexre)
20:28:41 × wonko quits (~wjc@2a0e:1c80:2::130) (Ping timeout: 255 seconds)
20:31:17 × remexre quits (~remexre@user/remexre) (Remote host closed the connection)
20:33:51 × califax quits (~califax@user/califx) (Remote host closed the connection)
20:34:23 remexre joins (~remexre@user/remexre)
20:34:29 × remexre quits (~remexre@user/remexre) (Remote host closed the connection)
20:35:23 califax joins (~califax@user/califx)
20:36:09 remexre joins (~remexre@user/remexre)
20:38:03 matthewmosior joins (~matthewmo@173.170.253.91)
20:40:00 × fjmorazan quits (~quassel@user/fjmorazan) ()
20:40:18 × remexre quits (~remexre@user/remexre) (Remote host closed the connection)
20:40:49 fjmorazan joins (~quassel@user/fjmorazan)
20:41:56 remexre joins (~remexre@user/remexre)
20:42:06 × remexre quits (~remexre@user/remexre) (Remote host closed the connection)
20:42:19 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:3c0d:13d8:ef0f:4c79) (Ping timeout: 268 seconds)
20:42:33 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
20:42:40 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
20:43:28 remexre joins (~remexre@user/remexre)
20:44:51 × alternateved quits (~user@staticline-31-183-146-203.toya.net.pl) (Remote host closed the connection)
20:44:52 × kenran quits (~kenran@200116b82b092600f9ea957e5315559f.dip.versatel-1u1.de) (Quit: WeeChat info:version)
20:46:32 × random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed)
20:55:37 matthewmosior joins (~matthewmo@173.170.253.91)
21:01:42 Pickchea joins (~private@user/pickchea)
21:02:43 × coot quits (~coot@213.134.176.158) (Quit: coot)
21:10:17 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
21:12:27 kmein joins (~weechat@user/kmein)
21:12:47 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
21:19:19 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
21:22:27 × califax quits (~califax@user/califx) (Ping timeout: 268 seconds)
21:22:39 stef204 joins (~stef204@user/stef204)
21:23:04 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 268 seconds)
21:23:11 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
21:23:30 califax joins (~califax@user/califx)
21:23:41 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 268 seconds)
21:23:41 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
21:24:14 × tcard quits (~tcard@114.164.44.242) (Quit: Leaving)
21:24:18 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
21:24:18 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
21:25:38 ec joins (~ec@gateway/tor-sasl/ec)
21:26:09 jpds joins (~jpds@gateway/tor-sasl/jpds)
21:26:20 gmg joins (~user@user/gehmehgeh)
21:28:17 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
21:29:18 tcard joins (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp)
21:29:23 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 252 seconds)
21:31:02 × zebrag quits (~chris@user/zebrag) (Ping timeout: 268 seconds)
21:31:49 zebrag joins (~chris@user/zebrag)
21:31:52 stiell joins (~stiell@gateway/tor-sasl/stiell)
21:32:16 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
21:35:31 × acidjnk quits (~acidjnk@p200300d6e7137a55e00ff7705fa34544.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
21:36:13 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
21:37:14 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:40:04 stefan-_ joins (~cri@42dots.de)
21:42:54 matthewmosior joins (~matthewmo@173.170.253.91)
21:47:09 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
21:53:43 × beteigeuze quits (~Thunderbi@bl11-28-222.dsl.telepac.pt) (Quit: beteigeuze)
21:53:58 beteigeuze joins (~Thunderbi@bl11-28-222.dsl.telepac.pt)
21:59:40 matthewmosior joins (~matthewmo@173.170.253.91)
22:03:32 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
22:04:36 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
22:11:53 melonai- joins (~mel@rnrd.eu)
22:12:00 eikke joins (~NicolasT@user/NicolasT)
22:12:11 × melonai quits (~mel@rnrd.eu) (Ping timeout: 255 seconds)
22:12:19 × [exa] quits (exa@user/exa/x-3587197) (Ping timeout: 268 seconds)
22:12:29 [exa] joins (exa@srv3.blesmrt.net)
22:15:29 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
22:16:29 azimut joins (~azimut@gateway/tor-sasl/azimut)
22:16:30 kimjetwav joins (~user@2607:fea8:235e:b600:d0ab:c5dd:dc27:59e5)
22:17:08 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
22:19:08 × nschoe quits (~quassel@2a01:e0a:8e:a190:6c1:7ffb:81b:ea40) (Ping timeout: 268 seconds)
22:21:15 × leah_ quits (lp0@heathens.club) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
22:21:56 leah_ joins (lp0@heathens.club)
22:25:40 × gustik quits (~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Quit: Leaving)
22:29:38 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
22:29:42 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:32:22 dsrt^ joins (~dsrt@96.70.11.181)
22:33:59 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
22:36:21 × Tuplanolla quits (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Quit: Leaving.)
22:36:56 nate4 joins (~nate@98.45.169.16)
22:41:57 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
22:42:34 × olle quits (~olle@h-94-254-63-12.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
22:46:56 matthewmosior joins (~matthewmo@173.170.253.91)
22:47:20 motherfs1 is now known as motherfsck
22:48:08 <raehik> I have a function returning a binop (it's a record in a type). Can I do something like "left `opInA a` right"?
22:48:38 <raehik> That's not working, but I wonder if there's any similar syntax I don't know about. Else I'll bumble around without infix
22:51:09 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
22:51:21 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
22:55:22 <geekosaur> no, the allowable syntax inside of `` is very limited because that kind of bracketing is hard to parse (ask anyone who had to deal with shells that used `` for command substitution, before ksh and POSIX gave us $())
22:55:48 <geekosaur> you can use let to extract it to a local operator though
22:56:19 <geekosaur> let (^*^) = opInA a in foo ^*^ bar
22:59:17 <geekosaur> (or where, if you prefer)
23:01:50 slaydr joins (~slaydr@75.164.62.23)
23:02:17 <raehik> geekosaur: lovely ty
23:02:23 × slaydr quits (~slaydr@75.164.62.23) (Client Quit)
23:03:30 × eikke quits (~NicolasT@user/NicolasT) (Ping timeout: 268 seconds)
23:07:42 matthewmosior joins (~matthewmo@173.170.253.91)
23:09:05 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
23:11:47 × michalz quits (~michalz@185.246.204.90) (Remote host closed the connection)
23:13:58 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
23:14:05 matthewmosior joins (~matthewmo@173.170.253.91)
23:15:30 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
23:16:21 <shachaf> Hmm, there's also another trick which is probably not a good idea.
23:16:40 <shachaf> Where you define two operators for the left and right `, and then you can put an expression in between them.
23:17:06 matthewmosior joins (~matthewmo@173.170.253.91)
23:17:13 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:18:27 <shachaf> > 1 & (,,) 3 $ 2
23:18:29 <lambdabot> (3,1,2)
23:18:29 × matthewmosior quits (~matthewmo@173.170.253.91) (Read error: Connection reset by peer)
23:19:16 <shachaf> You can use some brackety-looking names instead of & and $, if you give them the reasonable precedences.
23:22:05 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
23:22:49 matthewmosior joins (~matthewmo@173.170.253.91)
23:23:14 × kimjetwav quits (~user@2607:fea8:235e:b600:d0ab:c5dd:dc27:59e5) (Ping timeout: 244 seconds)
23:40:17 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:41:06 sagax joins (~sagax_nb@213.138.71.146)
23:50:47 Guest4172 joins (~chenqisu1@183.217.200.212)
23:51:26 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
23:51:34 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
23:53:40 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
23:55:57 × `2jt quits (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
23:56:44 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
23:58:24 matthewmosior joins (~matthewmo@173.170.253.91)

All times are in UTC on 2022-08-26.