Home liberachat/#haskell: Logs Calendar

Logs on 2023-07-24 (liberachat/#haskell)

00:02:12 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:02:12 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:02:12 wroathe joins (~wroathe@user/wroathe)
00:12:07 × jargon quits (~jargon@174-22-223-141.phnx.qwest.net) (Remote host closed the connection)
00:19:43 × tv3n quits (~stiv3n@2601:647:8580:f2b0:13bb:a6b3:d300:f3cd) (Quit: WeeChat 3.8)
00:22:35 mixfix41 joins (~sdeny9ee@user/mixfix41)
00:24:21 tonyday joins (~user@122-199-56-230.ip4.superloop.au)
00:25:14 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
00:28:46 × tonyday quits (~user@122-199-56-230.ip4.superloop.au) (Ping timeout: 245 seconds)
00:32:44 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
00:34:29 × ddellacosta quits (~ddellacos@146.70.185.177) (Ping timeout: 260 seconds)
00:34:54 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
00:35:06 roboguy_ joins (~roboguy_@cpe-69-76-235-109.kc.res.rr.com)
00:36:19 ddellacosta joins (~ddellacos@146.70.171.253)
00:54:32 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
00:54:46 [Leary] joins (~Leary]@user/Leary/x-0910699)
00:56:04 libertyprime joins (~libertypr@222-154-235-94.adsl.xtra.co.nz)
00:58:22 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
00:58:22 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
00:58:22 dibblego joins (~dibblego@haskell/developer/dibblego)
01:00:44 × libertyprime quits (~libertypr@222-154-235-94.adsl.xtra.co.nz) (Ping timeout: 260 seconds)
01:00:53 merijn joins (~merijn@c-001-001-008.client.esciencecenter.eduvpn.nl)
01:02:56 Kaladin joins (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net)
01:03:02 × ft quits (~ft@p508db95a.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
01:03:37 × Kaladin quits (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) (Client Quit)
01:04:55 ft joins (~ft@p3e9bc042.dip0.t-ipconnect.de)
01:05:24 × merijn quits (~merijn@c-001-001-008.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
01:11:08 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:41 razetime joins (~quassel@117.193.4.19)
01:16:18 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
01:17:16 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:22:44 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:24:58 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
01:35:35 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 244 seconds)
01:42:27 × razetime quits (~quassel@117.193.4.19) (Ping timeout: 245 seconds)
01:43:03 razetime joins (~quassel@117.193.2.183)
01:45:39 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
01:46:05 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
01:46:05 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
01:46:05 dibblego joins (~dibblego@haskell/developer/dibblego)
01:57:06 × ski quits (~ski@remote11.chalmers.se) (Remote host closed the connection)
01:59:18 libertyprime joins (~libertypr@203.96.203.44)
02:00:14 × xff0x quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 260 seconds)
02:01:59 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
02:04:35 Sciencentistguy5 joins (~sciencent@hacksoc/ordinary-member)
02:06:39 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 260 seconds)
02:06:39 Sciencentistguy5 is now known as Sciencentistguy
02:07:03 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:15:25 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:22:11 × td_ quits (~td@i53870909.versanet.de) (Ping timeout: 264 seconds)
02:23:04 × phma quits (~phma@2001:5b0:215a:83d8:36ed:3779:fa92:acd) (Read error: Connection reset by peer)
02:23:27 td_ joins (~td@i53870929.versanet.de)
02:24:07 phma joins (~phma@2001:5b0:215a:83d8:36ed:3779:fa92:acd)
02:26:12 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
02:26:25 pavonia joins (~user@user/siracusa)
02:29:59 × libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 260 seconds)
02:32:04 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:32:04 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:32:04 finn_elija is now known as FinnElija
02:39:37 × roboguy_ quits (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Quit: Leaving...)
02:44:32 × shriekingnoise quits (~shrieking@186.137.175.87) (Remote host closed the connection)
02:45:08 shriekingnoise joins (~shrieking@186.137.175.87)
02:49:11 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
02:50:07 emmanuelux joins (~emmanuelu@user/emmanuelux)
02:54:33 zed__ joins (~xusr@bl14-174-227.dsl.telepac.pt)
02:54:59 × shriekingnoise quits (~shrieking@186.137.175.87) (Quit: Quit)
02:55:04 × ddellacosta quits (~ddellacos@146.70.171.253) (Ping timeout: 260 seconds)
02:55:14 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:55:42 × zed__ quits (~xusr@bl14-174-227.dsl.telepac.pt) (Client Quit)
02:56:51 ddellacosta joins (~ddellacos@143.244.47.84)
03:01:16 × dsrt^ quits (~cd@24.125.210.85) (Ping timeout: 245 seconds)
03:06:06 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
03:18:46 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
03:27:09 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
03:28:38 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
03:28:42 dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
03:28:42 × dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
03:28:42 dobblego joins (~dibblego@haskell/developer/dibblego)
03:29:12 dobblego is now known as dibblego
03:32:24 × ddellacosta quits (~ddellacos@143.244.47.84) (Ping timeout: 260 seconds)
03:33:16 aforemny joins (~aforemny@2001:9e8:6cc8:6400:75e7:c177:eb56:80ac)
03:33:24 × aforemny_ quits (~aforemny@i59F516EF.versanet.de) (Ping timeout: 250 seconds)
03:34:47 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
03:43:35 libertyprime joins (~libertypr@203.96.203.44)
03:45:51 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
03:49:30 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
03:49:30 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
03:49:30 dibblego joins (~dibblego@haskell/developer/dibblego)
03:55:57 × accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
04:00:31 × actioninja63 quits (~actioninj@user/actioninja) (Quit: see ya mane)
04:00:55 actioninja63 joins (~actioninj@user/actioninja)
04:10:31 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:28:09 × razetime quits (~quassel@117.193.2.183) (Ping timeout: 244 seconds)
04:34:21 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
04:34:57 trev joins (~trev@user/trev)
04:36:50 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
04:41:35 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 244 seconds)
04:42:41 mud joins (~mud@user/kadoban)
04:43:49 the_guruji[m] joins (~theguruji@2001:470:69fc:105::3:825f)
04:50:33 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
04:51:37 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
04:54:49 Square2 joins (~Square@user/square)
05:10:56 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
05:11:13 razetime joins (~quassel@117.193.2.183)
05:19:11 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
05:20:54 × razetime quits (~quassel@117.193.2.183) (Ping timeout: 260 seconds)
05:24:50 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
05:27:12 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
05:34:23 × nick4 quits (~nick@2600:8807:9084:7800:f1f0:6aed:eef0:d448) (Ping timeout: 246 seconds)
05:36:27 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
05:39:19 andydude joins (~andrewr@151.200.15.152)
05:40:02 fweht joins (uid404746@id-404746.lymington.irccloud.com)
05:41:37 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
05:41:52 × yangby quits (~secret@115.220.174.193) (Ping timeout: 252 seconds)
05:43:48 yangby joins (~secret@115.220.174.193)
05:44:14 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 260 seconds)
05:46:49 dsrt^ joins (~cd@24.125.210.85)
05:47:23 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
05:56:00 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
06:02:05 michalz joins (~michalz@185.246.207.217)
06:02:23 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 264 seconds)
06:04:01 × legacy quits (~legacy@188-143-101-104.pool.digikabel.hu) (Quit: leaving)
06:10:36 <mzg> re
06:12:31 × mauke quits (~mauke@user/mauke) (Ping timeout: 244 seconds)
06:16:35 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:19:00 acidjnk joins (~acidjnk@p200300d6e7072f584d4e4392af5360e4.dip0.t-ipconnect.de)
06:25:53 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
06:26:07 [Leary] joins (~Leary]@user/Leary/x-0910699)
06:30:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:37:30 × thelounge793 quits (~thelounge@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) (Quit: The Lounge - https://thelounge.chat)
06:39:49 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
06:39:55 titibandit joins (~titibandi@user/titibandit)
06:43:21 <jackdk> `re :: AReview t b -> Getter b t`
06:44:04 mncheck joins (~mncheck@193.224.205.254)
06:46:06 CiaoSen joins (~Jura@2a05:5800:292:e100:664b:f0ff:fe37:9ef)
06:47:56 <Axman6> Thanks jackdkbot
06:48:32 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
06:49:26 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
06:50:02 <Axman6> I knew that concurrency in Haskell was lovely, having compared to pthreads and other C nonsense. It hasn't been until I've tried to work with concurrency and asynchronous code in python that I have truly come to realise just how good we have it
06:52:27 <Axman6> wasn't*
06:53:02 <Axman6> My kingdom for an mvar! (and a lack of function colouring)
06:54:16 <jackdk> :)
06:54:23 <probie> Life is also easier when data is immutable
06:54:53 <jackdk> Immutable data! What a wonderful phrase! Immutable da-ta; ain't no passing craze...
06:54:57 <Axman6> I'm not even up to needing to worry about mutability (though I am having to consider it so that I initialise tings in the right thread)
06:56:27 <dminuoso> Axman6: The annoying thing about Python here is that you're essentially forced into asyncio which is just a painful exposition of the underlying coroutines.
06:57:14 <Axman6> I would love to use asyncio, but I'm actually forced to use a far more restrictive coroutine based system (cocotb)
06:57:47 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
06:57:52 <Axman6> asyncio at least has run_until_complete(), many of my problems would be solved if I had an equivalent of that
06:58:48 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
06:59:32 kmein joins (~weechat@user/kmein)
07:05:48 meinside joins (uid24933@id-24933.helmsley.irccloud.com)
07:06:34 mango joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
07:06:35 × yangby quits (~secret@115.220.174.193) (Quit: Go out for a walk and buy a drink.)
07:07:02 yangby joins (~secret@115.220.174.193)
07:16:11 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
07:17:29 <dsal> I remember when I used to really liked twisted.
07:18:44 <Axman6> To be fair, I am mostly constrained by cocotb, but python as a language doesn't help by having such a crappy story for async/concurrent code
07:21:04 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
07:21:16 <dsal> Is there anything in the lens package to generate stuff to pull values through a sum type? e.g. I've got `data X a = X { _someVal :: Int, _otherVal :: a }` with default lenses. I want to build something to tag them like `data SomeX = IntX (X Int) | DoubleX (X Double)` – I've been hand-writing lenses for `someVal` in this case, but that seems like something I shouldn't have to write.
07:24:18 andrewboltachev joins (~andrey@178.141.125.70)
07:25:16 dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
07:25:16 × dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
07:25:16 dobblego joins (~dibblego@haskell/developer/dibblego)
07:25:20 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
07:25:20 fendor joins (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932)
07:26:00 dobblego is now known as dibblego
07:26:40 <jackdk> Why not push the sum into X and have `X (Either Int Double)`?
07:30:59 chele joins (~chele@user/chele)
07:32:26 danse-nr3_ joins (~francesco@151.57.84.62)
07:34:35 <dminuoso> dsal: No. Its something I've been somewhat frusted about myself. Stuff like this is common place in our large codebase: foo % bar `adjoin` quux % bar `adjoin` baz % bar
07:34:59 <dminuoso> Or similarly with unsafeSingular (foo % bar `failingT` quux % bar `failingT` baz % bar)
07:35:34 gmg joins (~user@user/gehmehgeh)
07:37:54 <dminuoso> (Restructuring ADTs is not really an option for us)
07:39:35 <dsal> jackdk: I’ve got a growing list of types.
07:40:03 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
07:40:09 <dsal> It’s easy to write the lens, but it’s quite mechanical. I could at least make myself some th for it.
07:41:33 <dsal> I mean, I guess it could go in there, but that seems like it should be unnecessary.
07:42:45 <dsal> Right now, I’ve got some code that temporarily uses an ‘a’ that doesn’t appear in the application.
07:43:23 <dminuoso> dsal: Mind my asking, whats wrong with `_IntX . _someVal`?
07:43:35 mik3d joins (~mik3d@74.102.139.139)
07:43:48 danse-nr3__ joins (~francesco@151.57.20.78)
07:43:48 × danse-nr3_ quits (~francesco@151.57.84.62) (Read error: Connection reset by peer)
07:43:53 <jackdk> I think it's the large and growing list of alternatives in the sum, resulting in the sort of `adjoin` chains that you have in your code
07:44:12 × bliminse_ quits (~bliminse@user/bliminse) (Quit: leaving)
07:44:59 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
07:45:03 <dsal> dminuoso: it’s the same across the whole sum.
07:45:21 <jackdk> I would probably reach for generics, and write a GHasSomeVal class, and a `gsomeVal` lens which requires `GHasSomeVal (Rep a) => Lens' a SomeVal`
07:45:28 <dminuoso> Mmm. That's a strange invariant
07:45:50 <dsal> I’m modeling some data I received that has a bunch of common fields and then the one value type that varies.
07:46:39 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
07:46:39 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
07:46:39 dibblego joins (~dibblego@haskell/developer/dibblego)
07:46:43 <dminuoso> dsal: Any particular reason your ADT is shaped in the input format?
07:46:51 <dsal> Right now, I just write the lenses I’m using…
07:47:10 <dsal> dminuoso: I was just doing what was easy. There are likely lots of better ways. :)
07:47:42 <dminuoso> It really does feel like you should rehape the ADT and correctly parse it into the right format.
07:47:47 <dsal> Writing this lens just makes me think th should do it because it’s so mechanical.
07:47:54 <dminuoso> Otherwise you're encoding this invariant into your TH lens generation code.
07:49:15 <dsal> I should be asleep, but it’s not obvious to make it much better. I can see small improvements, but they’d just get rid of these two lenses. Worth considering.
07:49:52 <dsal> I’ve just had this come up a few times recently so I figured I was missing something.
07:50:32 <dsal> Thanks for pointers. Maybe I’ll be slightly smarter after I sleep
07:52:34 × mango quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
07:53:18 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
07:56:31 <jackdk> dsal: Abusing generics, and using generic-lens https://www.irccloud.com/pastebin/Ty5NHw5K/GSomeVal.hs
07:57:49 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
07:57:53 mik3d joins (~mik3d@74.102.139.139)
08:00:12 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:03:10 merijn joins (~merijn@c-001-001-008.client.esciencecenter.eduvpn.nl)
08:05:17 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:09:21 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:13:32 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:14:24 cfricke joins (~cfricke@user/cfricke)
08:17:04 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
08:17:16 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
08:19:43 titibandit joins (~titibandi@user/titibandit)
08:19:50 jsomedon joins (uid606872@id-606872.hampstead.irccloud.com)
08:19:59 jsomedon parts (uid606872@id-606872.hampstead.irccloud.com) ()
08:21:42 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
08:21:42 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
08:21:42 dibblego joins (~dibblego@haskell/developer/dibblego)
08:23:50 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
08:28:40 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
08:30:31 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
08:31:02 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
08:34:23 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:34:57 Feuermagier joins (~Feuermagi@user/feuermagier)
08:35:09 × Inst__ quits (~Inst@2601:6c4:4081:2fc0:78d7:b1ca:6be1:4a52) (Ping timeout: 260 seconds)
08:37:05 × andydude quits (~andrewr@151.200.15.152) (Ping timeout: 246 seconds)
08:52:30 Pickchea joins (~private@user/pickchea)
08:55:16 × ft quits (~ft@p3e9bc042.dip0.t-ipconnect.de) (Quit: leaving)
09:01:28 × Square2 quits (~Square@user/square) (Ping timeout: 244 seconds)
09:04:23 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
09:06:41 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:08:14 × CiaoSen quits (~Jura@2a05:5800:292:e100:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds)
09:09:06 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:18:54 mango joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
09:22:09 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
09:23:02 <dminuoso> With hasql, whats the idea of mapping say text values to enum ADTs? Would I just use `refineResult` to decode the individual fields?
09:26:02 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
09:28:36 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:33:29 × mango quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
09:35:20 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
09:37:07 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:d9e8:7102:9d21:53ef) (Remote host closed the connection)
09:39:33 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:39:42 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
09:40:29 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
09:40:48 __monty__ joins (~toonn@user/toonn)
09:41:31 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
09:42:22 Lord_of_Life_ is now known as Lord_of_Life
09:44:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:47:58 × andrewboltachev quits (~andrey@178.141.125.70) (Ping timeout: 244 seconds)
09:55:38 <fvr> dminuoso: We use hasql-th and just parse the resulting text fields
09:56:28 <dminuoso> fvr: Via `custom`?
09:57:11 <fvr> No, we just don't write any decoders beyond the standard ones provided in hasql-th
09:57:35 <fvr> We do have a fork of hasql-th to directly embed and construct haskell values in the sql statements
09:59:38 mechap joins (~mechap@user/mechap)
10:00:26 <dminuoso> fvr: Ah so you just have some `parse :: Vector (Int, Char) -> Either Error (Vector Thing)` type of functions?
10:02:06 razetime joins (~quassel@117.193.2.183)
10:02:32 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 240 seconds)
10:03:01 <fvr> yep, we have a type that wraps hasql's QueryError
10:03:15 andrewboltachev joins (~andrey@178.141.128.242)
10:04:11 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
10:04:58 <fvr> I haven't seen refineResult before but looks like it can be used to the same effect together with hasql-th
10:06:20 × nyc quits (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Ping timeout: 246 seconds)
10:11:47 CiaoSen joins (~Jura@2a05:5800:292:e100:664b:f0ff:fe37:9ef)
10:12:29 jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
10:12:37 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Read error: Connection reset by peer)
10:17:02 × jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 245 seconds)
10:17:39 mango joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
10:18:12 × ub quits (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) (Quit: ub)
10:20:35 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
10:29:29 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:31:08 × mango quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds)
10:34:31 gurkenglas joins (~gurkengla@dynamic-046-114-092-039.46.114.pool.telefonica.de)
10:37:38 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7)
10:41:08 zer0bitz joins (~zer0bitz@user/zer0bitz)
10:42:19 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) (Ping timeout: 260 seconds)
10:42:54 × ubert quits (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
10:44:04 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
10:47:21 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
10:47:21 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
10:47:21 dibblego joins (~dibblego@haskell/developer/dibblego)
10:47:34 × danse-nr3__ quits (~francesco@151.57.20.78) (Ping timeout: 260 seconds)
10:51:07 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
10:54:13 <dminuoso> It feels a bit clunky, since there isn't something simple where you could say `[maybeStatement| SELECT name :: text FROM users WHERE status = $1 :: Status |]`
10:55:16 <dminuoso> I mean yes, I can ultimately just say `WHERE status = $1 :: text` and lmap/dimap over the Statement to encode the parameter.
10:55:53 <dminuoso> Slowly Im building up a lot of things that I really want in a database adapter. :-)
11:04:16 <fvr> dminuoso: In our fork we can interpolate haskell functions like this: `[singletonStatement|select $defaultUser { userId = (uid::bigint) } , $mkUser (uid::bigint, uname::text), uid::bigint from label where uid = $1.$userId::bigint |]
11:04:56 × merijn quits (~merijn@c-001-001-008.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
11:07:12 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood)
11:09:35 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
11:13:22 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
11:15:58 arizona_ joins (~arizona@bcdcac82.skybroadband.com)
11:17:41 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
11:18:07 × razetime quits (~quassel@117.193.2.183) (Remote host closed the connection)
11:18:29 × arizona quits (~arizona@bcdcac82.skybroadband.com) (Ping timeout: 260 seconds)
11:22:12 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
11:23:03 gugu256 joins (~gugu256@243.107.23.93.rev.sfr.net)
11:23:45 <gugu256> Hi everybody
11:23:56 <gugu256> I'm new to haskell and I was wondering what's the point of it
11:24:06 <gugu256> And what's the point of lambda calculus too
11:25:02 <Rembane> gugu256: Lambda calculus is a way to do computation in a mathematical way.
11:25:16 <Rembane> gugu256: Haskell is a research language that's quite good for doing other things too, like writing interpreters and compilers.
11:25:17 <gugu256> Rembane: oh ok
11:25:31 <gugu256> Rembane: Oh you can write compilers in haskell ?
11:26:04 <jade[m]> gugu256: what's the point of any other language? ^^
11:26:05 <jade[m]> Haskell is a purely functional language, that is also general purpose, so you can use it to write whatever your heart desires
11:26:34 <Rembane> gugu256: I think this is a reasonable introduction to lambda calculus and other things: https://www.youtube.com/watch?v=IOiZatlZtGU
11:26:41 <Rembane> gugu256: Mostly other things :D
11:26:46 xff0x joins (~xff0x@ai086045.d.east.v6connect.net)
11:27:03 <gugu256> And also, i've heard haskell vars are immutable, but like, can it support user input then ?
11:27:03 <dminuoso> fvr: What does that syntax do?
11:27:14 <jade[m]> gugu256: yes!
11:27:17 azimut joins (~azimut@gateway/tor-sasl/azimut)
11:27:29 <gugu256> ok ok...
11:27:31 <gugu256> interesting
11:27:41 <dminuoso> gugu256, Rembane: I would prefer to not call Haskell a "research language" mostly because it tends to promote views that Haskell is not suitable for industry use.
11:27:47 <gugu256> i've just looked up the learn x in y minutes tutorial on haskell
11:27:54 <jade[m]> it uses some tricks around immutability and purity, but those things can guarantee you other amazing features like laziness and sharing
11:28:04 <dminuoso> It's an industrial strength language that receives a lot of attention in research for new features and ideas.
11:28:33 <jade[m]> jade[m]: I say "tricks" but really it's just incredible abstractions around the concept of "IO"
11:29:10 <Rembane> dminuoso: Oh. Fair enough, I'll stop doing that.
11:29:55 <dminuoso> 13:27:02 gugu256 | And also, i've heard haskell vars are immutable, but like, can it support user input then ?
11:30:28 <gugu256> Is this a good resource ? : https://learnxinyminutes.com/docs/haskell/
11:30:30 <dminuoso> gugu256: So that statement is somewhat misleading. What you call "variables" in other languages is what we might call mutable stores/references.
11:30:50 <gugu256> dminuoso: oh ok
11:30:52 <dminuoso> gugu256: Its just that what we call "variables" is something different that most languages dont have. But we do have mutable references nevertheless.
11:31:07 <dminuoso> So an efficient in-place sort algorithm that manipulates memory can be done just fine.
11:31:17 <fvr> dminuoso: It mostly eliminates the need for lmap/fmap on the Statement type, so in the where clause `$1` can be a record type and userId is a field. And in the select statement it's showing a way three ways construct the user types without fmapping, so `defaultUser` is a record and `mkUser` is a function. Since it's forked off from hasql-th you get the same syntax checking for the sql statements
11:32:14 <jade[m]> gugu256: > -- Boolean values are primitives
11:32:14 <jade[m]> haven't heard of it, but the above makes me doubt it somewhat?
11:32:14 <jade[m]> Haskell is one of the only languages where Booleans are *not* primitives but instead directly defined in the standard library as a "normal" type
11:33:15 <dminuoso> gugu256: Its just slighlty more inconvenient. While in a traditional language you might write `a = 5` or `a := 5`, indicating "write 5 to the memory store called a" in Haskell you would write `writeIORef a 5`. The confusing part is that we can also write `let a = 5 in ...` and its something slightly different, its more like a statement of equality.
11:34:10 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
11:34:14 <jade[m]> dminuoso: though usually you won't even work with IO refs in the beginning
11:34:22 <jade[m]> just immutable data :)
11:34:33 <dminuoso> Right.
11:34:46 <arahael_> Curiously, I find that usually I don't actually need IO refs.
11:35:26 <dminuoso> A lot of "changing variables" are often encoded as function parameters in recursion, encoding the idea of a loop variable.
11:36:28 <dminuoso> arahael_: Recently I find myself using them more and more.
11:36:50 <dminuoso> But this is rather specific to my problem domain
11:37:12 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:37:18 <arahael_> Makes sense. You do far more haskell than I do, also. Far, far more.
11:37:21 <dminuoso> Building up a graph of information and knowledge in a compiler over multiple passes is just so much easier if you drag some `IORef` in a reader environment along.
11:37:51 <arahael_> dminuoso: Why not use state, then?
11:38:25 takuan joins (~takuan@178-116-218-225.access.telenet.be)
11:38:58 <arahael_> Ooh, because you're probably doing stuff concurrently, etc.
11:39:30 <dminuoso> I would rather use STM in that case say TQueue, TVar, etc..
11:39:41 <dminuoso> I dont like StateT because it introduces a lot of issues and complexity when it comes to unlifting.
11:40:03 <dminuoso> Also it introduces extra lazyness hurdles
11:40:17 <dminuoso> With an IORef in a reader environment you can just use MonadUnliftIO - done!
11:40:44 danse-nr3 joins (~francesco@151.57.20.78)
11:41:16 <arahael_> Ah, that kind of makes sense - so it's a simpler API, in addition to sidestepping those complications.
11:41:24 <arahael_> I should get to bed. It's getting late for me.
11:42:45 <dminuoso> fvr: Is the fork publically available for me to look at?
11:44:04 danse-nr3_ joins (~francesco@151.57.76.226)
11:44:10 × danse-nr3 quits (~francesco@151.57.20.78) (Read error: Connection reset by peer)
11:47:37 <fvr> dminuoso: https://github.com/kronor-io/hasql-th/tree/target-hs
11:47:51 <fvr> you will also need this fork of postgresql-syntax to build it https://github.com/kronor-io/postgresql-syntax/commits/auto-decoding
11:48:21 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 244 seconds)
11:53:08 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
11:54:04 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:56:27 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
11:56:42 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
11:58:28 × auri quits (~auri@fsf/member/auri) (Remote host closed the connection)
11:59:12 × Buggys quits (Buggys@shelltalk.net) (Ping timeout: 244 seconds)
11:59:38 auri joins (~auri@fsf/member/auri)
12:00:14 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 244 seconds)
12:00:34 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
12:03:12 infinity0 joins (~infinity0@pwned.gg)
12:04:21 nyc joins (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com)
12:05:09 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
12:06:17 Buggys joins (Buggys@Buggy.shelltalk.net)
12:14:23 × CiaoSen quits (~Jura@2a05:5800:292:e100:664b:f0ff:fe37:9ef) (Ping timeout: 264 seconds)
12:15:40 × yangby quits (~secret@115.220.174.193) (Ping timeout: 252 seconds)
12:17:54 × hdggxin quits (~hdggxin@122.175.41.19) (Ping timeout: 260 seconds)
12:21:50 ripspin joins (~chatzilla@1.145.217.131)
12:28:17 × gugu256 quits (~gugu256@243.107.23.93.rev.sfr.net) (Ping timeout: 245 seconds)
12:30:23 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
12:34:23 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:36:14 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
12:40:19 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 258 seconds)
12:40:44 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
12:41:33 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:44:14 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
12:45:13 img joins (~img@user/img)
12:48:17 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
12:51:01 gugu256 joins (~gugu256@243.107.23.93.rev.sfr.net)
12:55:40 hdggxin joins (~hdggxin@122.175.41.19)
13:00:01 FurudeRika[m] joins (~chitandae@2001:470:69fc:105::1:6039)
13:03:17 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
13:04:03 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
13:05:33 merijn joins (~merijn@185.143.104.11)
13:06:07 nick4 joins (~nick@2600:8807:9084:7800:f1f0:6aed:eef0:d448)
13:07:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:14:38 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 244 seconds)
13:16:33 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
13:16:33 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
13:16:33 dibblego joins (~dibblego@haskell/developer/dibblego)
13:21:38 × rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
13:23:54 rembo10 joins (~rembo10@main.remulis.com)
13:26:28 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
13:27:31 × gugu256 quits (~gugu256@243.107.23.93.rev.sfr.net) (Remote host closed the connection)
13:27:53 gugu256 joins (~gugu256@243.107.23.93.rev.sfr.net)
13:31:16 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.1)
13:31:26 andydude joins (~andrewr@151.200.15.152)
13:34:27 ddellacosta joins (~ddellacos@143.244.47.71)
13:35:12 × nick4 quits (~nick@2600:8807:9084:7800:f1f0:6aed:eef0:d448) (Ping timeout: 240 seconds)
13:41:30 <dminuoso> Does GHC or cabal have some option to jailbreak all modules, such that module export lists are ignored and the entire module is exported instead?
13:45:15 <geekosaur> by the time the module is compiled, export lists are frozen in stone in the symbols exported by the .o file
13:45:29 × merijn quits (~merijn@185.143.104.11) (Ping timeout: 260 seconds)
13:46:19 <int-e> it would have to be a ghc feature and I don't see anything resembling that
13:46:55 <geekosaur> if any symbols got exported "secretly" by the .hi file then there's a TH hack you can use to get at them individually (https://www.tweag.io/blog/2021-01-07-haskell-dark-arts-part-i/) but that still requires ghc to have exported it. and there's no compile time option to export everything ignoring the export list
13:46:58 <int-e> it would also break a ton of code (importing whole modules unqualified isn't uncommon)
13:47:21 <geekosaur> I think that's regarded as potentially type-unsafe because of smart constructors
13:48:09 <dminuoso> int-e: Potential breakage could be addressed by an `import unsafe qualified Data.Text as TInternal` or some such.
13:48:38 <dminuoso> Assuming that in the hypothetical mode GHC maintained two export lists (public and internal) per module.
13:49:01 <int-e> now you're asking for a whole language extension
13:51:19 × ripspin quits (~chatzilla@1.145.217.131) (Ping timeout: 260 seconds)
13:55:56 ystael joins (~ystael@user/ystael)
13:55:58 × qrst quits (~qrst@user/qrst) (Ping timeout: 244 seconds)
14:00:23 × gugu256 quits (~gugu256@243.107.23.93.rev.sfr.net) (Remote host closed the connection)
14:00:46 gugu256 joins (~gugu256@93.23.107.243)
14:01:57 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:03:23 qrst joins (~qrst@user/qrst)
14:04:44 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
14:06:05 Sgeo joins (~Sgeo@user/sgeo)
14:24:47 × trev quits (~trev@user/trev) (Quit: trev)
14:26:42 × mei quits (~mei@user/mei) (Remote host closed the connection)
14:26:44 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
14:28:16 × gugu256 quits (~gugu256@93.23.107.243) (Remote host closed the connection)
14:28:39 gugu256 joins (~gugu256@243.107.23.93.rev.sfr.net)
14:29:07 mei joins (~mei@user/mei)
14:42:35 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
14:58:20 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
15:03:39 × libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 260 seconds)
15:05:16 maybefbi joins (~maybefbi@gateway/tor-sasl/maybefbi)
15:06:31 Pickchea joins (~private@user/pickchea)
15:08:38 <maybefbi> What is your favorite App monad: https://strawpoll.com/e6Z28PemEnN
15:11:02 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
15:11:25 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:12:09 srk_ joins (~sorki@user/srk)
15:15:11 × srk quits (~sorki@user/srk) (Ping timeout: 246 seconds)
15:15:12 srk_ is now known as srk
15:15:12 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
15:15:12 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
15:15:12 dibblego joins (~dibblego@haskell/developer/dibblego)
15:15:13 gaff joins (~gaff@49.207.193.51)
15:16:16 <gaff> Is there a way to write a `Show` instance for this: `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } `?
15:16:55 <johnw> not in the way you're probably asking for
15:17:09 <johnw> all you can really do is: show _ = "some MaybeT"
15:17:23 <johnw> because you just don't know anything about `m`
15:17:31 <ncf> you might have something like Show (m a) => Show (MaybeT m a)
15:17:35 <ncf> (or Show1?)
15:18:17 <gaff> I see. so you'll have to write `Show` for whatever `m` types separately then?
15:19:00 trev joins (~trev@user/trev)
15:19:11 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
15:21:58 <ncf> well, i guess i'd write Show a => Show (m a) and then compose that with Show a => Show (Maybe a) to get what you want
15:23:18 <gaff> ncf: how would you do that?
15:23:33 <ncf> i don't know, just speculating
15:23:42 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
15:24:48 <gaff> I couldn't find a way either which is why I asked here in this channel.
15:26:59 <ncf> well, transformers seems to have both Show1 m => Show1 (MaybeT m) and (Show1 m, Show a) => Show (MaybeT m a) so you could just look at that
15:27:25 <johnw> true, some `m` (like Maybe itself, or Either) would allow for Show1 instances
15:27:33 <ncf> https://hackage.haskell.org/package/transformers-0.6.1.0/docs/src/Control.Monad.Trans.Maybe.html#line-102
15:28:22 <geekosaur> I'm confused. Isn't a value of that type an action (that is, a function)?
15:29:09 <ncf> if m involves functions, sure
15:29:26 mauke joins (~mauke@user/mauke)
15:29:27 <int-e> :t RWS
15:29:27 <lambdabot> error:
15:29:28 <lambdabot> • Data constructor not in scope: RWS
15:29:28 <lambdabot> • Perhaps you meant ‘RWST’ (imported from Control.Monad.RWS)
15:29:35 <int-e> :t RWST
15:29:36 <lambdabot> (r -> s -> m (a, s, w)) -> RWST r w s m a
15:32:27 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
15:37:37 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
15:37:38 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
15:37:38 dibblego joins (~dibblego@haskell/developer/dibblego)
15:41:59 srk_ joins (~sorki@user/srk)
15:42:04 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7)
15:43:55 danse-nr3__ joins (~francesco@151.43.65.14)
15:45:04 × srk quits (~sorki@user/srk) (Ping timeout: 260 seconds)
15:45:04 srk_ is now known as srk
15:45:25 × danse-nr3_ quits (~francesco@151.57.76.226) (Read error: Connection reset by peer)
15:45:58 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:46:21 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
15:46:40 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:46:49 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) (Ping timeout: 260 seconds)
15:47:22 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:48:48 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7)
15:51:41 × trev quits (~trev@user/trev) (Quit: trev)
15:55:42 idgaen parts (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (WeeChat 4.0.2)
16:06:32 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds)
16:16:14 <gurkenglas> What can I tell someone who is dissatisfied that changing one value in an array of length n requires either impure Haskell or log(n) time?
16:16:35 <gurkenglas> Does FRP possibly adress this?
16:18:13 <glguy> An old "solution" to this was diffarrays, though I haven't heard about them in a while https://hackage.haskell.org/package/diffarray-0.1.1/docs/Data-Array-Diff.html
16:18:22 <Hecate> w-why would FRP solve this? O.O
16:18:41 ripspin joins (~chatzilla@1.145.156.220)
16:18:48 <glguy> another solution is switching to a language like Lean that seems to emphasize optimizations for updates to pure values when the reference to the object is unique
16:19:05 × danse-nr3__ quits (~francesco@151.43.65.14) (Ping timeout: 244 seconds)
16:19:27 <glguy> or just don't worry about comforting such a dissatisfied person
16:19:31 <c_wraith> diffarray ended up being slower than immutable arrays in almost every case
16:20:03 <glguy> c_wraith: maybe the hypothetical objector is only concerned with asymptotics and not constant factors
16:20:05 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
16:20:16 <gurkenglas> Hecate: I imagine that maybe one can move from Tree a = Leaf a | Node (Tree a) (Tree a) in the direction of TimeTree a = Time -> LeafOrNodeTimeTreeTimeTree a and then the latter doesn't mutate
16:20:23 <c_wraith> IIRC, mostly related to the locking necessary to make a pure interface not result in race conditions
16:22:24 <gurkenglas> *looks up diffarray* this is the kind of magic-specific-to-RAM-being-in-fact-mutable that i am hoping to avoid
16:22:36 nick4 joins (~nick@2600:100d:b109:6d35:d019:88ab:4ef5:7d97)
16:22:55 <glguy> RAM actually being mutable is key to programs actually running
16:23:13 <gurkenglas> suppose you were working with write-once RAM then :P
16:24:47 <gurkenglas> your computing company goes through a lot of ram chips per week, can you find a data structure that burns less than log(n) addresses per array-write?
16:25:32 <gaff> writing the Show instance for `MaybeT m a` turns out to be far more involved than I thought.
16:26:01 <glguy> gaff: learning about Show1?
16:26:11 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:27:53 <gaff> this is what I was trying to write a `Show` instance for: `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } ` Yeah, learning about Show1
16:29:32 × nick4 quits (~nick@2600:100d:b109:6d35:d019:88ab:4ef5:7d97) (Ping timeout: 240 seconds)
16:30:59 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:32:06 <glguy> gaff: I'm not sure if you're just relating a bit of your experience or looking for any help, but if you have questions do ask :)
16:32:44 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
16:33:09 <geekosaur> [24 15:16:16] <gaff> Is there a way to write a `Show` instance for this: `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } `?
16:33:41 <gaff> glguy: well, any idea how you write a `Show` instance for `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } `? Is there a simple way to do it?
16:34:01 <glguy> gaff: you could check out the current instance: https://hackage.haskell.org/package/transformers-0.6.1.0/docs/src/Control.Monad.Trans.Maybe.html#line-102
16:34:48 <gaff> Ok, I am doing that now, but I was also wondering if anyone has other ideas.
16:34:58 <glguy> that's how you do it
16:35:02 × ripspin quits (~chatzilla@1.145.156.220) (Read error: Connection reset by peer)
16:35:08 <gaff> alright. thnaks
16:36:35 marea_ joins (~francesco@151.43.65.14)
16:37:01 × nckx quits (~nckx@guix/contributor/nckx) (Quit: Updating my Guix System <https://guix.gnu.org>)
16:39:06 <glguy> gaff: as far as "other ideas" you can turn on {-# Language UndecidableInstances, StandaloneInstances #-} and then: deriving instance Show (m (Maybe a)) => Show (MaybeT m a)
16:45:15 nckx joins (~nckx@guix/contributor/nckx)
16:53:10 × marea_ quits (~francesco@151.43.65.14) (Remote host closed the connection)
16:53:31 marea_ joins (~francesco@151.43.65.14)
16:55:05 <gaff> glguy: ok, i haven't used those extensions in the past, so i will have to look them up. could you explain the rationale behind your suggestion?
16:57:14 × Pickchea quits (~private@user/pickchea) (Ping timeout: 250 seconds)
16:57:19 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 244 seconds)
16:58:05 <glguy> the rational was just that you said: " I was also wondering if anyone has other ideas"
16:59:29 <gaff> glguy: OK
17:01:11 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
17:01:56 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
17:03:47 × maybefbi quits (~maybefbi@gateway/tor-sasl/maybefbi) (Remote host closed the connection)
17:04:07 <gaff> glguy: also, none of these would work if `m` is the IO monad.
17:08:25 <glguy> of course, it isn't possible to show a value with type (IO a)
17:09:12 <glguy> Unless you don't care what gets printed; one could always write a lossy instance for Show (IO a)
17:09:21 <int-e> > print ""
17:09:23 <lambdabot> <IO ()>
17:09:50 <gaff> yeah, thanks :)
17:10:29 ChanServ sets mode +o glguy
17:10:49 ChanServ sets mode +o geekosaur
17:10:51 nick4 joins (~nick@2600:8807:9084:7800:b163:648a:f3e5:666f)
17:11:45 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:13:52 boxscape_ joins (~boxscape_@81.191.27.107)
17:13:58 × boxscape_ quits (~boxscape_@81.191.27.107) (Client Quit)
17:15:20 × gaff quits (~gaff@49.207.193.51) ()
17:15:53 × mei quits (~mei@user/mei) (Remote host closed the connection)
17:17:18 boxscape[m] joins (~jabruenma@2001:470:69fc:105::3:88e7)
17:18:17 mei joins (~mei@user/mei)
17:19:56 × gugu256 quits (~gugu256@243.107.23.93.rev.sfr.net) (Read error: Connection reset by peer)
17:24:35 × Aleksejs quits (~Aleksejs@107.170.21.106) (Ping timeout: 264 seconds)
17:24:49 × marea_ quits (~francesco@151.43.65.14) (Ping timeout: 260 seconds)
17:24:58 Aleksejs joins (~Aleksejs@107.170.21.106)
17:26:23 × gurkenglas quits (~gurkengla@dynamic-046-114-092-039.46.114.pool.telefonica.de) (Ping timeout: 264 seconds)
17:37:12 × qrst quits (~qrst@user/qrst) (Ping timeout: 240 seconds)
17:39:48 marea_ joins (~francesco@151.43.65.14)
17:41:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:45:46 × marea_ quits (~francesco@151.43.65.14) (Ping timeout: 250 seconds)
17:53:29 <monochrom> > putStrLn "<IO ()>"
17:53:31 <lambdabot> <IO ()>
17:53:36 <monochrom> worksforme >:D
17:54:56 <glguy> > read "<IO ()>" :: IO ()
17:54:57 <lambdabot> error:
17:54:57 <lambdabot> • No instance for (Read (IO ())) arising from a use of ‘read’
17:54:57 <lambdabot> • In the expression: read "<IO ()>" :: IO ()
17:54:59 <glguy> :(
17:56:00 <monochrom> Oh heh. Yeah we should add that to complete the round trip.
17:59:54 <ncf> someone should make a Show (IO a) instance that satisfies read.show = id
18:00:37 <glguy> My idea is to have it return asker :: Read a => IO a; asker = putStrLn "Hey, user needs an answer:" >> readLn
18:01:03 ripspin joins (~chatzilla@1.145.128.171)
18:03:08 × ChanServ quits (ChanServ@services.libera.chat) (shutting down)
18:03:46 × litharge quits (litharge@libera/bot/litharge) (*.net *.split)
18:03:58 danse-nr3__ joins (~francesco@151.43.65.14)
18:04:23 <monochrom> No no no, skip the human, ask ChatGPT instead. >:)
18:05:29 <monochrom> To be fair, perhaps your "user" already means that. A program cannot tell whether the other end of stdin is human or computer, that's the whole point of unix piping and the Turing Test, right? :)
18:07:28 <monochrom> Hey I'm going to put that on my Unix-And-C exam! "Can your program determine whether stdin is human input as opposed to, say, ChatGPT?"
18:08:32 ncf . o O ( a human as opposed to a cat(1) )
18:09:54 <jean-paul[m]> isn't ChatGPT input just human input with a little processing applied to it
18:11:25 <monochrom> Perhaps humanity input vs human input.
18:11:29 <int-e> if by "a little processing" you mean putting it through a meat grinder
18:11:37 <int-e> sure
18:12:25 <int-e> (it's a rather coarse one; some pieces make it through still recognizable, but they never quite fit together)
18:15:03 ChanServ joins (ChanServ@services.libera.chat)
18:15:03 sodium.libera.chat sets mode +o ChanServ
18:15:23 litharge joins (litharge@libera/bot/litharge)
18:19:19 × litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection)
18:19:22 litharge joins (litharge@libera/bot/litharge)
18:21:15 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
18:23:19 × litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection)
18:23:22 litharge joins (litharge@libera/bot/litharge)
18:24:32 <dminuoso> "a little processing" sure. It's just above 8 figures in buying thousands of NVidia V100 GPUs and turning electricity into heat for months.
18:26:46 <dminuoso> The sheer electricity and hardware necessary to train large parameter models is absurdly and prohibitively high.
18:27:19 × litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection)
18:27:22 litharge joins (litharge@libera/bot/litharge)
18:30:12 <monochrom> I'm sure the original "a little" was not serious.
18:31:03 glguy sets mode -o glguy
18:31:19 × litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection)
18:31:25 geekosaur sets mode -o geekosaur
18:34:23 <geekosaur> mm, apparently the ban bot is a little unhappy still
18:34:33 × yushyin quits (tGG5pLVJ8Y@2a01:4f8:1c17:80de::2) (Remote host closed the connection)
18:35:04 yushyin joins (BeTEisx90F@mail.karif.server-speed.net)
18:37:35 × yushyin quits (BeTEisx90F@mail.karif.server-speed.net) (Client Quit)
18:38:06 yushyin joins (f4a8hbfH0Q@mail.karif.server-speed.net)
18:39:21 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:39:51 × hellwolf quits (~user@5b3d-5cac-bb28-d008-0f00-4d40-07d0-2001.sta.estpak.ee) (Read error: Connection reset by peer)
18:47:48 litharge joins (litharge@libera/bot/litharge)
18:50:21 ubert joins (~Thunderbi@91.141.78.46.wireless.dyn.drei.com)
18:54:19 gurkenglas joins (~gurkengla@dynamic-046-114-092-039.46.114.pool.telefonica.de)
18:56:36 titibandit joins (~titibandi@user/titibandit)
19:10:32 × ripspin quits (~chatzilla@1.145.128.171) (Remote host closed the connection)
19:13:34 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
19:14:22 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
19:16:57 blueonyx joins (~blueonyx@user/blueonyx)
19:19:22 × danse-nr3__ quits (~francesco@151.43.65.14) (Ping timeout: 250 seconds)
19:19:32 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
19:20:43 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
19:23:10 Lears joins (~Leary]@user/Leary/x-0910699)
19:24:17 ubert1 joins (~Thunderbi@91.141.78.46.wireless.dyn.drei.com)
19:25:34 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Ping timeout: 260 seconds)
19:25:50 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
19:26:20 × hdggxin quits (~hdggxin@122.175.41.19) (Remote host closed the connection)
19:27:02 hdggxin joins (~hdggxin@122.175.41.19)
19:29:47 × driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
19:31:06 driib joins (~driib@vmi931078.contaboserver.net)
19:36:09 Guest7406 joins (~finn@176-151-21-224.abo.bbox.fr)
19:36:25 <Guest7406> what's the difference between each and traversed in the lens library?
19:36:45 <Guest7406> It seems they both focused on each element
19:37:34 <geekosaur> elements of a product type are very different from elements of a collection; the latter can be traversed, the former can't without extra work
19:37:50 <geekosaur> `each` does the extra work, `traversed` does a simple traversal
19:38:49 <geekosaur> that is, given `data Foo = Foo Int Int Int`, you can't use `traverse` on a `Foo` but you can use `each` on a lens over `Foo`
19:39:41 <Guest7406> ok this helps
19:39:53 jinsun__ joins (~jinsun@user/jinsun)
19:39:53 × jinsun quits (~jinsun@user/jinsun) (Killed (silver.libera.chat (Nickname regained by services)))
19:39:53 jinsun__ is now known as jinsun
19:41:07 <Guest7406> [1, 2, 3, 4] & traversed . bitAt 1 %~ not
19:41:22 <Guest7406> it's still confusing why this example, i can also use each
19:41:43 <Guest7406> so it seems they are equivalent in some cases
19:41:47 <geekosaur> yes
19:42:40 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
19:42:51 <geekosaur> but consider `data Foo = Foo Int Int [String]` with a `Traversable` instance: `traversed` would traverse the list, `each` the `Int`s
19:43:22 Feuermagier joins (~Feuermagi@user/feuermagier)
19:43:48 <geekosaur> also, `traversed` needs a `Traversable` instance, `each` needs you to `makeLenses` the `Foo`
19:43:53 <Guest7406> ok so if we already have each, why still keep traversed
19:44:16 <geekosaur> the example I just gave where they do different things?
19:44:25 <geekosaur> [24 19:42:51] <geekosaur> but consider `data Foo = Foo Int Int [String]` with a `Traversable` instance: `traversed` would traverse the list, `each` the `Int`s
19:44:53 <Guest7406> in your example, each would also traverse the list
19:45:18 <geekosaur> but then what happens to the `Int`s?
19:46:03 <Guest7406> also using each?
19:46:22 <geekosaur> it can't produce both `Int` and `String`
19:46:55 <geekosaur> and even if it could, that'd still be a difference because `traversed` can't reach the `Int`s
19:47:30 <geekosaur> @let data WeirdList = WeirdList Int Int [String]
19:47:32 <lambdabot> Defined.
19:48:31 <mauke> > WeirdList 1 2 []
19:48:31 <geekosaur> @let instance Traversable WeirdList where traverse (WeirdList _ _ l) = traverse l
19:48:32 <lambdabot> /sandbox/tmp/.L.hs:185:22: error:
19:48:32 <lambdabot> • Expected kind ‘* -> *’, but ‘WeirdList’ has kind ‘*’
19:48:32 <lambdabot> • In the first argument of ‘Traversable’, namely ‘WeirdList’
19:48:32 <lambdabot> error:
19:48:32 <lambdabot> • No instance for (Show WeirdList)
19:48:34 <lambdabot> arising from a use of ‘show_M58512676581970009428’
19:48:35 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 264 seconds)
19:49:09 <geekosaur> oh right, that'd be MonoTraversable
19:49:17 <geekosaur> @undefine
19:49:17 <lambdabot> Undefined.
19:57:09 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
19:57:14 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
20:02:02 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
20:03:30 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:255a:b8f5:5ab9:11d7) (Remote host closed the connection)
20:06:15 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:08:02 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
20:12:10 mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593)
20:13:32 × mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Read error: Connection reset by peer)
20:14:54 mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593)
20:16:50 hugo joins (znc@verdigris.lysator.liu.se)
20:20:55 × tstat_ quits (~tstat@user/tstat) (Quit: ZNC 1.8.2 - https://znc.in)
20:24:30 tstat joins (~tstat@user/tstat)
20:26:04 <blueonyx> > :t id
20:26:06 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
20:26:58 <geekosaur> :t id
20:26:59 <lambdabot> a -> a
20:28:58 <blueonyx> :t key
20:28:59 <lambdabot> error:
20:28:59 <lambdabot> • Variable not in scope: key
20:28:59 <lambdabot> • Perhaps you meant one of these:
20:29:03 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
20:30:14 <blueonyx> hi, i have the Data.Aeson.Lens traversal (key "doc") and an Value consisting of an Array of Objects, how can i apply (parseMaybe parseJSON) on this Value and only collect the Just values (like a catMaybes)?
20:32:27 acidjnk_new joins (~acidjnk@p200300d6e7072f58904a93af819a11ce.dip0.t-ipconnect.de)
20:32:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:33:17 × acidjnk quits (~acidjnk@p200300d6e7072f584d4e4392af5360e4.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
20:35:26 ft joins (~ft@p3e9bc042.dip0.t-ipconnect.de)
20:43:34 asivitz joins (uid178348@id-178348.tinside.irccloud.com)
20:44:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:47:07 <ncf> blueonyx: does foo ^.. values . key "doc" not work?
20:48:17 <ncf> > "[{\"doc\": 1},{},{\"doc\": 2}]" ^.. values . key "doc"
20:48:18 <ncf> [Number 1.0,Number 2.0]
20:48:18 <lambdabot> error:
20:48:18 <lambdabot> Variable not in scope:
20:48:18 <lambdabot> values :: b0 -> [Char] -> Const (Endo [a]) [Char]error:
20:48:24 × Guest7406 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 260 seconds)
20:50:29 × mei quits (~mei@user/mei) (Remote host closed the connection)
20:51:52 × rainbyte quits (~rainbyte@181.31.239.226) (Ping timeout: 240 seconds)
20:52:17 <blueonyx> ncf: that always returns an empty list
20:53:14 <blueonyx> also the problem is my lack of understanding of traversals and lenses
20:53:30 <ncf> i just demonstrated that it doesn't, so you'll have to be more specific :)
20:53:35 × ormaaj quits (~ormaaj@user/ormaaj) (Killed (NickServ (GHOST command used by ormaaj2)))
20:54:13 <blueonyx> how does it know key now?
20:54:48 Inst__ joins (~Inst@2601:6c4:4081:2fc0:1cc8:47b:7c0e:fa36)
20:56:30 <ncf> `values` is a Traversal that targets all the values of an array. `key "doc"` is a Traversal that targets the value under the key "doc" of an object, if it exists (so, 0 or 1 targets). by composing them, you get a Traversal that targets all the values under the key "doc" of each object of an array (in jq notation, .[].doc)
20:57:05 <ncf> ^.. extracts all the targets of the traversal as a list
20:58:32 mei joins (~mei@user/mei)
20:59:11 Guest7406 joins (~finn@176-151-21-224.abo.bbox.fr)
21:00:20 <blueonyx> yea thanks values is probably what i was missing (and the doc key in my actual test data xD)
21:00:44 jmdaemon joins (~jmdaemon@user/jmdaemon)
21:03:10 × mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Read error: Connection reset by peer)
21:04:00 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
21:04:27 <blueonyx> doesnt lens have some magic to automatically throw Nothing away? i here right now:
21:04:31 <blueonyx> catMaybes $ map (parseMaybe parseJSON) $ res ^?! _Right._1.key "rows" ^.. values . key "doc"
21:05:02 <blueonyx> and believe there musst be some crazy operator to get rid of map and catMaybes xD
21:05:17 <ncf> well, there's _Just, but key is already atKey composed with _Just
21:05:25 <ncf> (sort of)
21:05:45 <blueonyx> parseMaybe gives Maybe a again
21:06:25 <blueonyx> i want to parse the values of the "doc" key into haskell values (they have FromJSON instances)
21:07:10 mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593)
21:07:14 × Qudit quits (~user@user/Qudit) (Remote host closed the connection)
21:07:15 × mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Read error: Connection reset by peer)
21:07:41 <ncf> key "doc" . to (parseMaybe parseJSON) . _Just
21:08:49 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
21:10:42 <ncf> this will skip the parse failures, which may not be what you want
21:11:22 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
21:13:19 mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593)
21:14:06 × fendor quits (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) (Remote host closed the connection)
21:14:57 <blueonyx> well right now it seems that's what i want xD thank you so much!
21:16:34 <blueonyx> of course better error handling instead of silently failing would be great
21:18:12 <ncf> blueonyx: wait it's actually much simpler
21:18:18 <ncf> key "doc" . _JSON
21:19:50 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 250 seconds)
21:20:08 <blueonyx> wow
21:22:50 × mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Remote host closed the connection)
21:22:57 mik3d joins (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593)
21:25:20 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
21:28:16 × ubert1 quits (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
21:28:35 ub joins (~Thunderbi@178.115.73.155.wireless.dyn.drei.com)
21:30:24 × ubert quits (~Thunderbi@91.141.78.46.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
21:30:24 ub is now known as ubert
21:32:41 × mik3d quits (~mik3d@2607:fb91:e19:1b98:9dd8:64cc:c00c:9593) (Ping timeout: 246 seconds)
21:35:23 mik3d joins (~mik3d@74.102.139.139)
21:36:50 × Guest7406 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 244 seconds)
21:38:21 × blueonyx quits (~blueonyx@user/blueonyx) (Ping timeout: 245 seconds)
21:38:50 kilolympus joins (~kilolympu@cpc105064-sgyl40-2-0-cust46.18-2.cable.virginm.net)
21:38:51 alphabeta joins (~kilolympu@cpc105064-sgyl40-2-0-cust46.18-2.cable.virginm.net)
21:39:52 × alphabeta quits (~kilolympu@cpc105064-sgyl40-2-0-cust46.18-2.cable.virginm.net) (Client Quit)
21:40:25 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
21:43:58 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 260 seconds)
21:49:41 natechan joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
21:51:49 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 244 seconds)
21:53:03 mik3d joins (~mik3d@74.102.139.139)
22:00:57 libertyprime joins (~libertypr@203.96.203.44)
22:00:59 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
22:05:14 × libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 246 seconds)
22:06:04 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
22:11:41 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
22:11:57 × michalz quits (~michalz@185.246.207.217) (Remote host closed the connection)
22:11:59 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 264 seconds)
22:13:11 × ubert quits (~Thunderbi@178.115.73.155.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
22:15:21 mik3d joins (~mik3d@74.102.139.139)
22:16:49 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
22:16:49 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
22:16:49 dibblego joins (~dibblego@haskell/developer/dibblego)
22:19:22 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
22:20:17 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
22:20:57 mik3d joins (~mik3d@74.102.139.139)
22:22:27 × xff0x quits (~xff0x@ai086045.d.east.v6connect.net) (Quit: xff0x)
22:24:24 wroathe joins (~wroathe@user/wroathe)
22:25:28 × Teacup quits (~teacup@user/teacup) ()
22:25:45 Teacup joins (~teacup@user/teacup)
22:27:34 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
22:28:34 xff0x joins (~xff0x@ai086045.d.east.v6connect.net)
22:32:02 shriekingnoise joins (~shrieking@186.137.175.87)
22:33:40 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 244 seconds)
22:36:16 × Logio quits (em@kapsi.fi) (Remote host closed the connection)
22:38:08 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
22:38:08 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
22:38:08 dibblego joins (~dibblego@haskell/developer/dibblego)
22:40:20 Alleria joins (~JohnGalt@Sydney-Docking-Station.stanford.edu)
22:40:38 mik3d joins (~mik3d@74.102.139.139)
22:41:04 × Alleria quits (~JohnGalt@Sydney-Docking-Station.stanford.edu) (Client Quit)
22:45:45 Logio joins (em@kapsi.fi)
22:49:32 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
22:49:50 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 246 seconds)
22:50:25 falafel joins (~falafel@216.68.6.51.dyn.plus.net)
22:53:47 tomboy64 joins (~tomboy64@user/tomboy64)
22:54:02 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
22:54:27 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
22:54:27 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
22:54:27 dibblego joins (~dibblego@haskell/developer/dibblego)
22:54:51 × acidjnk_new quits (~acidjnk@p200300d6e7072f58904a93af819a11ce.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
22:57:17 tonyday joins (~user@122.199.56.230)
22:59:25 tonyday is now known as scootalong
23:02:34 × tstat quits (~tstat@user/tstat) (Quit: ZNC 1.8.2 - https://znc.in)
23:07:25 × chele quits (~chele@user/chele) (Remote host closed the connection)
23:12:02 × td_ quits (~td@i53870929.versanet.de) (Ping timeout: 245 seconds)
23:12:15 td_ joins (~td@i53870929.versanet.de)
23:14:25 tstat joins (~tstat@user/tstat)
23:16:40 × gurkenglas quits (~gurkengla@dynamic-046-114-092-039.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
23:17:02 mik3d joins (~mik3d@74.102.139.139)
23:17:18 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
23:22:12 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
23:25:11 × tstat quits (~tstat@user/tstat) (Quit: ZNC 1.8.2 - https://znc.in)
23:26:51 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:27:04 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
23:29:46 tstat joins (~tstat@user/tstat)
23:30:30 mauke_ joins (~mauke@user/mauke)
23:31:44 × tstat quits (~tstat@user/tstat) (Client Quit)
23:32:22 × mauke quits (~mauke@user/mauke) (Ping timeout: 258 seconds)
23:32:22 mauke_ is now known as mauke
23:32:47 tstat joins (~tstat@user/tstat)
23:33:40 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
23:34:54 × phma quits (~phma@2001:5b0:215a:83d8:36ed:3779:fa92:acd) (Read error: Connection reset by peer)
23:35:22 phma joins (phma@2001:5b0:215a:83d8:da04:2894:d9ee:aa28)
23:38:30 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 250 seconds)
23:39:37 mik3d joins (~mik3d@74.102.139.139)
23:39:45 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)
23:45:00 × Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Quit: ZNC - http://znc.in)
23:47:58 Ram-Z joins (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
23:48:04 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
23:53:02 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
23:55:49 pavonia joins (~user@user/siracusa)
23:56:03 mik3d joins (~mik3d@74.102.139.139)
23:59:09 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
23:59:42 × mik3d quits (~mik3d@74.102.139.139) (Read error: Connection reset by peer)

All times are in UTC on 2023-07-24.