Home liberachat/#haskell: Logs Calendar

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

00:00:27 Kaipei is now known as Kaiepi
00:00:49 <dsal> I don't hate hedgehog, but it does feel like it was written by someone who didn't use Haskell all that much. Or at least, did weird things.
00:00:55 <dsal> I just used `tripping` which is `tripping :: (MonadTest m, Applicative f, Show b, Show (f a), Eq (f a), HasCallStack) => a -> (a -> b) -> (b -> f a) -> m ()`
00:01:11 <dsal> Putting the thing you're testing as the first argument is kind of hostile.
00:02:00 <DigitalKiwi> aren't all arguments the first
00:02:15 <dsal> heh
00:02:34 <DigitalKiwi> unless it's the color of the shed
00:02:55 <DigitalKiwi> ...or maybe that argument just never ended
00:03:31 <dsal> This is the difference between `forAll genThing >>= \aThing -> tripping aThing printThing parseThing` and `forAll genThing >>= tripping printThing parseThing`
00:03:49 <EvanR> no you're right, you put the variable with "highest frequency" last
00:04:41 <EvanR> to take advantage of partialing
00:05:01 matthewmosior joins (~matthewmo@173.170.253.91)
00:05:15 <EvanR> sometimes it's a toss up and you're screwed, but it's not as bad as OOP binary operators
00:05:21 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
00:05:35 <hpc> oh man, don't even get me started on python's ','.join(list)
00:05:51 <dsal> Yeah. This case is pretty clear. The thing you want to test is the output of the generator and the input of the tester thing.
00:06:14 <EvanR> didn't even think of that
00:06:23 <EvanR> I mean DUH
00:06:37 jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
00:07:10 <dsal> It usually does its job well, but it's just weird to use sometimes.
00:08:03 <EvanR> hpc, put anything that accepts a bool somewhere in the signature under the Bool class xD
00:08:10 <DigitalKiwi> goodbye hedgehog hello porcupine
00:08:54 <DigitalKiwi> oooh moonrat
00:09:34 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
00:10:57 × cyanide3dinner quits (~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d) (Remote host closed the connection)
00:11:24 Sgeo joins (~Sgeo@user/sgeo)
00:12:38 <DigitalKiwi> til hedgehog and porcupine aren't even in the same order
00:12:43 <DigitalKiwi> but i learned of moonrats
00:12:57 <EvanR> sounds like something out of D&D
00:13:08 <dsal> See, sometimes complaining yields good results.
00:14:22 <hpc> EvanR: like they're the preferred food of owlbears? :D
00:14:28 nilradical joins (~nilradica@user/naso)
00:16:39 <DigitalKiwi> https://en.wikipedia.org/wiki/Gymnure
00:18:01 <DigitalKiwi> rats and porcupines are more closely related than porcupines and hedgehogs lol
00:19:11 <DigitalKiwi> moonrats look like rodents of unusual size
00:20:09 <DigitalKiwi> but are not rodents
00:20:19 <DigitalKiwi> this has been a taxonomy lesson i'm on topic you see
00:20:45 <hpc> everyone knows haskell talk belongs in -offtopic anyway :D
00:20:59 <geekosaur> monochrom's not gate in action 🙂
00:22:39 × aliosablack quits (~chomwitt@2a02:587:dc15:5e00:ea1e:e5c0:de8:53e2) (Ping timeout: 268 seconds)
00:23:28 matthewmosior joins (~matthewmo@173.170.253.91)
00:24:49 <DigitalKiwi> https://github.com/jacobstanley?tab=repositories&q=&type=source&language=&sort= i would say a few of these classify as weird things aye lol
00:27:05 <DigitalKiwi> https://github.com/jacobstanley/cthulhu
00:28:46 <DigitalKiwi> what's a smart http
00:28:47 <DigitalKiwi> https://github.com/jacobstanley/mothership
00:32:35 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
00:33:35 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
00:44:42 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds)
00:49:00 king_gs joins (~Thunderbi@187.201.102.80)
00:51:41 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:53:58 × mmhat quits (~mmh@p200300f1c72ee96aee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
01:00:52 × BanUtama quits (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
01:02:21 × xff0x_ quits (~xff0x@2405:6580:b080:900:9f22:be61:9bf8:3a54) (Ping timeout: 255 seconds)
01:07:02 × Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds)
01:07:17 lsrts^ joins (~lsrts@206.85.120.17)
01:07:39 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
01:09:18 Colere joins (~colere@about/linux/staff/sauvin)
01:10:07 jargon joins (~jargon@184.101.168.117)
01:10:21 × machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds)
01:11:06 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:21 × king_gs quits (~Thunderbi@187.201.102.80) (Ping timeout: 268 seconds)
01:14:01 BanUtama joins (~blake.rai@user/BanUtama)
01:16:44 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
01:17:14 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:43 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:18:45 × BanUtama quits (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
01:21:10 <qrpnxz> name of the game: get rid of unboxed integers. Enemy numbers one: lifted polymorphism. Solution: chunking?
01:21:26 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
01:21:50 × lsrts^ quits (~lsrts@206.85.120.17) (Ping timeout: 268 seconds)
01:22:00 <qrpnxz> rid of boxed integers rather
01:22:06 <qrpnxz> ugh
01:22:09 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:22:30 <qrpnxz> hard to get the performance i want
01:27:58 BanUtama joins (~blake.rai@user/BanUtama)
01:31:07 king_gs joins (~Thunderbi@187.201.102.80)
01:31:26 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
01:32:42 <EvanR> enemy numbers
01:33:35 <DigitalKiwi> cope
01:34:45 <geekosaur> if integers is `Integer`s then you have bigger problems than boxing
01:34:49 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds)
01:34:57 lsrts^ joins (~lsrts@206.85.120.17)
01:35:09 <zzz> word
01:35:23 <DigitalKiwi> "who're your enemies?" "numbers" "that's a lot" "how many you suppose?" "well, all of them"
01:35:36 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
01:36:01 <DigitalKiwi> imaginary enemies
01:36:15 <geekosaur> complex enemies
01:36:25 <DigitalKiwi> irrational enemies
01:36:27 <zzz> surreal enemies
01:36:32 × lsrts^ quits (~lsrts@206.85.120.17) (Remote host closed the connection)
01:37:34 <DigitalKiwi> sea enemies
01:37:45 <DigitalKiwi> https://en.wikipedia.org/wiki/Sea_anemone :)
01:39:05 × EvanR quits (~EvanR@user/evanr) (Quit: Leaving)
01:40:05 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
01:43:13 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
01:43:54 xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:44:41 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:44:42 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:44:42 wroathe joins (~wroathe@user/wroathe)
01:48:21 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds)
01:51:38 dcoutts_ joins (~duncan@host86-167-206-78.range86-167.btcentralplus.com)
01:51:44 × king_gs quits (~Thunderbi@187.201.102.80) (Read error: Connection reset by peer)
01:52:16 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
01:53:52 king_gs joins (~Thunderbi@187.201.102.80)
01:53:59 × dcoutts quits (~duncan@host86-184-129-193.range86-184.btcentralplus.com) (Ping timeout: 252 seconds)
01:56:57 matthewmosior joins (~matthewmo@173.170.253.91)
01:57:38 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:59:18 zaquest joins (~notzaques@5.130.79.72)
02:06:16 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
02:06:27 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
02:06:49 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 252 seconds)
02:07:17 vysn joins (~vysn@user/vysn)
02:09:23 <qrpnxz> OH YEAH BABY. it's all about that chunking. From dozens of gigabytes of memory and several minutes, to 1.3 seconds and exactly the amount of memory i expect
02:10:20 <Axman6> what're you working on?
02:12:42 × king_gs quits (~Thunderbi@187.201.102.80) (Read error: Connection reset by peer)
02:12:53 king_gs1 joins (~Thunderbi@2806:103e:29:da31:dbd5:c070:5d09:91ef)
02:13:20 <qrpnxz> a project i'm working on needs a library for some protocol, so i'm implementing that, but I wanted a streaming parser, so i went on a side-quest for like weeks investigating streaming in haskell. Honestly still not sure exactly what i'm gonna go for, but at least i'm getting an idea of the general principles needed to not have it be dog crap slow.
02:15:11 king_gs1 is now known as king_gs
02:16:09 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:16:09 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:16:09 finn_elija is now known as FinnElija
02:17:37 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:19:45 GoldsteinQ joins (~goldstein@goldstein.rs)
02:23:33 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
02:27:03 cheater joins (~Username@user/cheater)
02:28:24 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:28:53 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:33:23 × td_ quits (~td@94.134.91.254) (Ping timeout: 268 seconds)
02:34:19 × BanUtama quits (~blake.rai@user/BanUtama) (Ping timeout: 252 seconds)
02:34:40 td_ joins (~td@muedsl-82-207-238-185.citykom.de)
02:37:16 nate4 joins (~nate@98.45.169.16)
02:46:46 BanUtama joins (~blake.rai@user/BanUtama)
02:48:43 Guest92 joins (~Guest92@2607:fea8:fca0:7efd:6604:7838:c1ec:5a0a)
02:49:07 <Guest92> @unmtl MaybeT (State String) a
02:49:07 <lambdabot> String -> (Maybe a, String)
02:49:20 <Guest92> @unmtl StateT String Maybe a
02:49:20 <lambdabot> String -> Maybe (a, String)
02:52:17 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
02:52:30 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
02:53:11 nilradical joins (~nilradica@user/naso)
02:54:15 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
02:54:38 nilradical joins (~nilradica@user/naso)
02:56:11 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
02:56:46 <qrpnxz> yeah, the fact some transformers actually transform backwards, is eyebrow raising
03:01:22 × Guest92 quits (~Guest92@2607:fea8:fca0:7efd:6604:7838:c1ec:5a0a) (Quit: Client closed)
03:01:34 × jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
03:20:31 × pgib quits (~textual@173.38.117.69) (Ping timeout: 252 seconds)
03:21:14 × EsoAlgo quits (~EsoAlgo@129.146.136.145) (Ping timeout: 244 seconds)
03:23:05 × foul_owl quits (~kerry@23.82.194.108) (Ping timeout: 252 seconds)
03:28:25 foul_owl joins (~kerry@174-21-65-36.tukw.qwest.net)
03:29:30 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
03:29:58 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
03:32:02 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.5)
03:32:24 vysn joins (~vysn@user/vysn)
03:32:35 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 255 seconds)
03:32:41 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
03:33:13 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
03:33:13 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
03:33:13 wroathe joins (~wroathe@user/wroathe)
03:33:15 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
03:34:49 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
03:35:19 mbuf joins (~Shakthi@122.165.55.71)
03:36:02 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
03:36:12 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
03:36:17 × vglfr quits (~vglfr@37.73.110.255) (Ping timeout: 252 seconds)
03:36:25 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
03:38:11 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
03:39:25 vglfr joins (~vglfr@37.73.110.255)
03:40:31 nate4 joins (~nate@98.45.169.16)
03:40:40 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
03:43:02 × foul_owl quits (~kerry@174-21-65-36.tukw.qwest.net) (Ping timeout: 268 seconds)
03:43:23 × Vajb quits (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
03:44:09 Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
03:44:43 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
03:45:05 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
03:46:19 Lumia joins (~Lumia@c-24-34-172-110.hsd1.ma.comcast.net)
03:49:14 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
03:49:35 stiell joins (~stiell@gateway/tor-sasl/stiell)
03:54:08 × BanUtama quits (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
03:55:33 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
03:55:33 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
03:55:34 wroathe joins (~wroathe@user/wroathe)
03:56:38 foul_owl joins (~kerry@23.82.194.107)
03:58:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
04:00:06 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.5)
04:00:22 vysn joins (~vysn@user/vysn)
04:00:43 BanUtama joins (~blake.rai@user/BanUtama)
04:01:26 <Axman6> I don't think it's accurate to say they transform backwards, there's only really one way most transformers can be defined, and the composition of them gives different monads depending on the order - like above, the former will tell you what the state was when things fail, but the latter won't (IMO the latter is probably more useful, but the former is probably more common)
04:02:10 <Axman6> actually, ignore that last bit
04:03:40 × king_gs quits (~Thunderbi@2806:103e:29:da31:dbd5:c070:5d09:91ef) (Quit: king_gs)
04:04:21 <texasmynsted> Anybody have this book? https://mmhaskell.com/ebooks
04:06:09 <texasmynsted> "Haskell Data Structures: In Depth" I am curious about what 9 data structures this would have. I am kind of a sucker for good pedagogy... I guess I could just shell out the $10 and find out.
04:06:32 <Axman6> Never heard of it. It's a shame it doesn't tell you more about the content
04:06:47 <texasmynsted> yeah
04:07:16 <texasmynsted> from this source https://mmhaskell.com/
04:07:44 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
04:10:24 <texasmynsted> I can't even think of 9 haskell data structures.
04:10:43 <texasmynsted> Type classes, but not data structures
04:11:50 <Axman6> List, Map, HashMap, Seq, DList, Vector, (MVector)... I would expect at least these to be covered
04:12:13 <Axman6> I'm assuming Maybe and Either are too trivial to really consider data structures
04:12:17 <Axman6> maybe IntMap?
04:12:42 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
04:13:04 <Axman6> but the differences between (Hash|Int|)Map are relatively small, mostly relating to asymtotics, and a few unique features of their APIs
04:14:12 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
04:14:22 <texasmynsted> List, Map, Seq, Set, Vector,
04:14:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
04:14:39 matthewmosior joins (~matthewmo@173.170.253.91)
04:15:11 Vajb joins (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
04:15:22 <texasmynsted> Right HashMap and Map feels like two variations of the same data structure
04:15:33 <Axman6> yeah I forgot Set, that's important too
04:15:52 <Axman6> eh, not really, they're quite different in implementation and performance
04:16:38 <texasmynsted> Trie
04:17:36 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
04:17:46 <Axman6> I wrote a ternary trie package years ago, stuck it on hackage, then forgot about it - then one day I saw it referenced in a paper comparing tree like data strucutres, and mine ended up being the fastest for many operations. One of the closest things to having a proper academic reference
04:18:55 <Axman6> I came up with a neat encoding scheme for the Binary instance which represented whether a sub tree was a leaf or not in the tag byte. It did a good job compressing dictionaries of words
04:18:56 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
04:20:02 <texasmynsted> Nice!
04:20:28 <texasmynsted> Okay, I gave in and got the book.
04:20:49 <Axman6> what're the structures? If the book's any good I'd considering giving them come money too
04:21:17 <dsal> https://mmhaskell.com/blog/2022/8/1/data-structures-heap
04:21:22 <dsal> I've been following the blog.
04:21:23 <texasmynsted> List, Set, Map, Hash Set, Hash Map, Array, Vector, Sequence, Heap
04:22:10 <texasmynsted> well, I should have read through the site/blog. Heh
04:22:42 <Axman6> heh - oh well, it's nice to have it contained
04:22:50 <dsal> In a container of some sort.
04:23:01 <Axman6> and it's good to support people in the community
04:23:55 <dsal> Yeah. I've just used all of these things. The Hash ones are a bit weird and I've not used them on purpose.
04:24:01 <dsal> Actually, I don't think I've used Heap for anything.
04:24:11 <dsal> But "how to write a functional queue" is a fun exercise.
04:24:19 <Axman6> HashMap is probably the one I've used most, after list
04:24:28 <dsal> Really? Why HashMap?
04:24:39 <dsal> That's significantly more characters than Map.
04:24:56 <Axman6> faster and more space efficient than Map
04:25:28 <dsal> Hmm... I guess that's not mattered to me. It might be helpful in my mqtt broker.
04:25:48 <texasmynsted> I would say this is worth the $10.
04:28:38 <Axman6> Generally if I'm just inserting and looking things up by key, I'll opt for HashMap, but sometimes you want to get things out in a consistent/predictable order, and then Data.Map is more useful
04:28:43 × luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 252 seconds)
04:29:16 <dsal> Map seems more "out of the box"
04:32:49 matthewmosior joins (~matthewmo@173.170.253.91)
04:36:01 <jackdk> I pretty much always use Map, because you can do elegant constructions my mconcatting singleton maps and HashMap does not like that one bit
04:38:09 nate4 joins (~nate@98.45.169.16)
04:42:53 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
04:45:32 × Lumia quits (~Lumia@c-24-34-172-110.hsd1.ma.comcast.net) (Quit: ,-)
04:46:19 <texasmynsted> I would have liked to see structural recursion, structural induction, etc described in the book but it is very short.
04:48:16 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
04:51:26 king_gs joins (~Thunderbi@2806:103e:29:da31:e286:1b8a:479f:b023)
04:52:30 titibandit joins (~titibandi@xdsl-212-8-147-38.nc.de)
04:53:22 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
04:53:58 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:55:43 kazaf joins (~kazaf@94.180.63.53)
05:00:40 × kazaf quits (~kazaf@94.180.63.53) (Ping timeout: 252 seconds)
05:03:49 × son0p quits (~ff@181.136.122.143) (Ping timeout: 268 seconds)
05:04:46 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
05:05:05 × BanUtama quits (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
05:05:27 × vglfr quits (~vglfr@37.73.110.255) (Read error: Connection reset by peer)
05:05:39 vglfr joins (~vglfr@37.73.110.255)
05:05:43 tvandinther joins (~tvandinth@2406:e002:6ca2:2b01:e95b:28f0:b5e8:ed97)
05:07:51 <tvandinther> Hey everyone, quick question. A common pattern I get in code is checking that several conditions are met. I know about using `all` or `any` but I'm struggling to apply things in the right way to simplify an expression such as:
05:07:52 <tvandinther> `a `cond1` b && a `cond2` b`
05:07:52 <tvandinther> How would you simplify this so that the conditions can be sequenced?
05:08:54 <Axman6> all (\p -> p a b) [cond1, cond2]?
05:09:13 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 244 seconds)
05:09:23 <Axman6> @pl all (\p -> p a b) -- don't do this, I'm just curious
05:09:23 <lambdabot> all (flip ($ a) b)
05:10:19 <Axman6> though generally I find that using boolean functions is almost always a code smell - generally you're gating access to something, and for that, Maybe or Either are substantially better options
05:10:40 <tvandinther> oh right, the use of the lambda makes that obvious. I was trying to use `$`
05:10:50 <Axman6> This feels lrelated to the "parse, don't validate" mantra: https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
05:10:50 <tvandinther> the lambda is certainly the clearer option
05:11:26 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
05:11:28 <tvandinther> The use case is checking that a tuple has both values >=
05:11:33 <Axman6> I'd highly recommend you read that article if you haven't seen it
05:11:38 <tvandinther> come to think of it, theres probably a cleaner way to write that
05:12:12 nilradical joins (~nilradica@user/naso)
05:12:44 <tvandinther> Thanks, I'll give that article a read too
05:15:34 × vglfr quits (~vglfr@37.73.110.255) (Ping timeout: 268 seconds)
05:16:32 Lumia joins (~Lumia@c-24-34-172-110.hsd1.ma.comcast.net)
05:17:16 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
05:17:30 nilradical joins (~nilradica@user/naso)
05:17:53 BanUtama joins (~blake.rai@user/BanUtama)
05:19:39 <tvandinther> Is there a built-in which maps values of 2 zipped pairs?
05:19:51 <tvandinther> Or even to zip 2 pairs?
05:22:24 <Axman6> possibly in some of the arrow combinators
05:22:31 <Axman6> :t (&&&)
05:22:32 <lambdabot> Arrow a => a b c -> a b c' -> a b (c, c')
05:22:34 <Axman6> :t (***)
05:22:36 <lambdabot> Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
05:22:46 <Axman6> not quite
05:23:29 <Axman6> writing the function of type (a -> b -> c) -> (a,a) -> (b,b) -> (c,c) is pretty trivial though
05:23:36 <Axman6> @djinn (a -> b -> c) -> (a,a) -> (b,b) -> (c,c)
05:23:36 <lambdabot> f a (b, _) (c, _) = (a b c, a b c)
05:23:57 Axman6 glares at djinn
05:25:10 <Axman6> there's only like 8 implementation of functions with that type, not sure why djinn decided on that one, I thought it preferred to opt for using all inputs if possible
05:29:20 <tvandinther> Where does it search? I tried that signature in hoogle and found nothing
05:31:11 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
05:31:31 <Axman6> it doesn't search, djinn writes functions for you
05:31:38 <Axman6> @hoogle (a -> b -> c) -> (a,a) -> (b,b) -> (c,c)
05:31:39 <lambdabot> No results found
05:31:44 <tvandinther> ah I see
05:36:04 × Lumia quits (~Lumia@c-24-34-172-110.hsd1.ma.comcast.net) (Quit: ,-)
05:36:05 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
05:39:11 × king_gs quits (~Thunderbi@2806:103e:29:da31:e286:1b8a:479f:b023) (Ping timeout: 244 seconds)
05:39:42 <tvandinther> I keep going around in circles due to my lack of understanding. Main question is, would you simplify this expression, and if so how would you do it?
05:39:43 <tvandinther> `snd p1 >= snd p2 && fst p1 <= fst p2`
05:41:05 <Axman6> (\(x1,y1) (x2,y2) -> y1 >= y2 && x1 <= x2) p1 p2?
05:41:09 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
05:41:15 <Axman6> on can be useful here too
05:41:30 <Axman6> :t (<=) `on` snd
05:41:32 <lambdabot> Ord a1 => (a2, a1) -> (a2, a1) -> Bool
05:41:45 <chreekat> tvandinther: I probably wouldn't, it's pretty damn simple 😃
05:41:49 nilradical joins (~nilradica@user/naso)
05:42:21 <Axman6> if you know you're going to use both fst and snd, then just use a pattern match and name the elements
05:44:18 <Clinton[m]> This is a bit of a mix of a Haskell/Nix/VScode question, but does anyone know how to get VSCode to automagically run `nix-develop` on `flake.nix` whenever I load a project and have that as my environment. I know I can manually run `nix-develop` and then `code` inside that shell but I was hoping for a way to VSCode to just detect that.
05:44:54 coot joins (~coot@213.134.176.158)
05:46:10 <tvandinther> True, pattern matching or just not simplifying seem to be the answers here. Thank you.
05:46:20 × coot quits (~coot@213.134.176.158) (Client Quit)
05:46:47 abraham joins (~abraham@159.89.183.132)
05:47:01 × nilradical quits (~nilradica@user/naso) (Ping timeout: 268 seconds)
05:47:59 coot joins (~coot@213.134.176.158)
05:48:09 <Axman6> Clinton[m]: I don't know much about nix develop, but I assume it sets up the nix environment, including things like env vars? if so, it would be pretty hard from nix develop run from within VSCode to affect the environment of vs code; I think the cd foo; nix develop; code . options is probably the simplest
05:50:32 <Lears> You could also use an alias or a wrapper script which looks for a flake.nix and does this for you.
05:51:30 bilegeek joins (~bilegeek@2600:1008:b029:dafd:1c14:3295:e11b:5339)
05:52:16 ubert joins (~Thunderbi@77.119.164.0.wireless.dyn.drei.com)
05:52:22 <Axman6> alias code!="cd $1; nix develop; code ."
05:56:52 king_gs joins (~Thunderbi@187.201.102.80)
06:04:10 × abraham quits (~abraham@159.89.183.132) (Quit: Textual IRC Client: www.textualapp.com)
06:04:26 <jackdk> I think there's a plugin that does that but I don't use vscode
06:04:47 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
06:04:58 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
06:05:14 stiell joins (~stiell@gateway/tor-sasl/stiell)
06:05:23 matthewmosior joins (~matthewmo@173.170.253.91)
06:05:30 <Axman6> Nix Environment Selector: Allows switch environment for Visual Studio Code and extensions based on Nix config file." does that sound right?
06:06:08 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
06:06:23 <Axman6> actually, the Haskell example in the docs for that look pretty neat.
06:07:10 <Axman6> I was just reading Tweag's post on how they'd like to improve Nix, and the linked thread about marketing the system (which was a surprising dumpster fire of a discussion intially)
06:09:09 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 244 seconds)
06:10:05 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
06:12:39 × poscat0x04 quits (~poscat@114.245.109.158) (Quit: Bye)
06:13:44 zxx7529 joins (~Thunderbi@user/zxx7529)
06:14:58 poscat joins (~poscat@2408:8206:4822:7201:ea07:2224:d420:ae5c)
06:20:41 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
06:22:07 matthewmosior joins (~matthewmo@173.170.253.91)
06:25:13 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
06:28:36 MajorBiscuit joins (~MajorBisc@c-001-013-051.client.tudelft.eduvpn.nl)
06:28:59 <chreekat> Axman6: link?
06:29:47 <Axman6> https://www.tweag.io/blog/2022-08-04-tweag-and-nix-future/
06:30:43 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
06:31:06 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
06:31:23 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds)
06:32:47 `2jt joins (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net)
06:34:04 × gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
06:34:13 michalz joins (~michalz@185.246.204.90)
06:35:37 × king_gs quits (~Thunderbi@187.201.102.80) (Read error: Connection reset by peer)
06:37:14 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
06:38:31 king_gs joins (~Thunderbi@187.201.102.80)
06:46:52 × gff quits (~gff@user/gff) (Ping timeout: 268 seconds)
06:48:37 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
06:48:46 gff joins (~gff@user/gff)
06:49:06 ChaiTRex joins (~ChaiTRex@user/chaitrex)
06:50:33 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:52:43 nate4 joins (~nate@98.45.169.16)
06:57:56 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
06:57:56 × king_gs quits (~Thunderbi@187.201.102.80) (Read error: Connection reset by peer)
06:57:57 king_gs1 joins (~Thunderbi@2806:103e:29:da31:a193:85fc:208c:eefb)
06:58:14 lortabac joins (~lortabac@2a01:e0a:541:b8f0:9857:ce5d:2e2a:a7ef)
06:59:41 gmg joins (~user@user/gehmehgeh)
07:00:16 king_gs1 is now known as king_gs
07:04:39 pmarg joins (~pmarg@2a01:799:159f:9b00:b695:8801:9ef8:8462)
07:06:17 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
07:06:58 × zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529)
07:09:00 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:10:28 mmhat joins (~mmh@p200300f1c706f70aee086bfffe095315.dip0.t-ipconnect.de)
07:13:52 son0p joins (~ff@181.136.122.143)
07:16:48 cfricke joins (~cfricke@user/cfricke)
07:18:00 chele joins (~chele@user/chele)
07:19:21 chimp_ joins (~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
07:20:41 × Psybur quits (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 252 seconds)
07:23:26 jgeerds joins (~jgeerds@55d46bad.access.ecotel.net)
07:25:05 frost joins (~frost@user/frost)
07:26:08 × BanUtama quits (~blake.rai@user/BanUtama) (Ping timeout: 244 seconds)
07:26:30 × tristanC quits (~tristanC@user/tristanc) (Ping timeout: 264 seconds)
07:27:02 × totte quits (~totte@h-82-196-112-155.A166.priv.bahnhof.se) (Ping timeout: 268 seconds)
07:31:39 aliosablack joins (~chomwitt@2a02:587:dc15:5e00:d0f9:9fe4:8717:f94d)
07:34:53 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:35:21 × xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
07:37:27 xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
07:39:34 × king_gs quits (~Thunderbi@2806:103e:29:da31:a193:85fc:208c:eefb) (Ping timeout: 244 seconds)
07:40:46 BanUtama joins (~blake.rai@user/BanUtama)
07:43:09 acidjnk_new joins (~acidjnk@p200300d6e70586140960cfbfc54cf807.dip0.t-ipconnect.de)
07:43:45 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:47:57 mc47 joins (~mc47@xmonad/TheMC47)
07:48:40 yvan-sraka joins (~yvan-srak@105.67.135.250)
07:53:30 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
07:54:57 cheater joins (~Username@user/cheater)
07:56:31 × titibandit quits (~titibandi@xdsl-212-8-147-38.nc.de) (Remote host closed the connection)
07:58:22 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
07:59:31 machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net)
08:05:18 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
08:07:00 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
08:07:17 × yahb2 quits (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection)
08:07:56 yahb2 joins (~yahb2@static.56.27.47.78.clients.your-server.de)
08:09:40 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
08:12:51 × shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit)
08:13:20 tristanC joins (~tristanC@user/tristanc)
08:14:13 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
08:15:31 × kraftwerk28_ quits (~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in)
08:16:34 kraftwerk28 joins (~kraftwerk@178.62.210.83)
08:18:55 ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net)
08:29:49 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:9857:ce5d:2e2a:a7ef) (Ping timeout: 268 seconds)
08:30:26 lortabac joins (~lortabac@2a01:e0a:541:b8f0:298e:42c7:d203:46f0)
08:33:35 AlexNoo_ joins (~AlexNoo@178.34.151.166)
08:33:46 × AlexNoo quits (~AlexNoo@178.34.151.166) (Read error: Connection reset by peer)
08:36:20 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
08:37:03 ubert1 joins (~Thunderbi@178.165.202.57.wireless.dyn.drei.com)
08:38:03 × ubert quits (~Thunderbi@77.119.164.0.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
08:38:03 ubert1 is now known as ubert
08:42:18 pmarg_ joins (~pmarg@138.199.6.238)
08:44:47 jakalx parts (~jakalx@base.jakalx.net) ()
08:45:14 × pmarg quits (~pmarg@2a01:799:159f:9b00:b695:8801:9ef8:8462) (Ping timeout: 268 seconds)
08:45:17 pmarg_ is now known as pmarg
08:48:47 matthewmosior joins (~matthewmo@173.170.253.91)
08:52:27 ardell joins (~ardell@user/ardell)
08:56:30 irfan joins (~irfan@user/irfan)
08:58:31 kuribas joins (~user@silversquare.silversquare.eu)
08:58:50 × mmhat quits (~mmh@p200300f1c706f70aee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
09:00:09 × disco-dave[m] quits (~disco-dav@2001:470:69fc:105::2:1892) (Quit: You have been kicked for being idle)
09:00:54 jakalx joins (~jakalx@base.jakalx.net)
09:06:12 × xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
09:07:16 × tvandinther quits (~tvandinth@2406:e002:6ca2:2b01:e95b:28f0:b5e8:ed97) (Quit: Client closed)
09:10:29 mmhat joins (~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de)
09:11:20 luffy joins (~chenqisu1@183.217.201.23)
09:13:56 × luffy quits (~chenqisu1@183.217.201.23) (Max SendQ exceeded)
09:14:25 luffy joins (~chenqisu1@183.217.201.23)
09:16:16 xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
09:16:23 × coot quits (~coot@213.134.176.158) (Quit: coot)
09:18:18 × luffy quits (~chenqisu1@183.217.201.23) (Client Quit)
09:18:38 × acidjnk_new quits (~acidjnk@p200300d6e70586140960cfbfc54cf807.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
09:18:38 luffy joins (~chenqisu1@183.217.201.23)
09:19:26 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:23:28 alternateved joins (~user@staticline-31-183-149-36.toya.net.pl)
09:29:33 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
09:44:39 alp_ joins (~alp@user/alp)
09:45:18 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.5)
09:45:35 vysn joins (~vysn@user/vysn)
09:50:17 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
09:50:36 × BanUtama quits (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
09:50:40 vglfr joins (~vglfr@88.155.13.114)
09:53:54 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
09:55:09 monadplus[m]1 joins (~arnauabel@2001:470:69fc:105::2:6085)
09:57:09 BanUtama joins (~blake.rai@user/BanUtama)
10:01:39 × BanUtama quits (~blake.rai@user/BanUtama) (Ping timeout: 244 seconds)
10:03:29 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
10:05:11 BanUtama joins (~blake.rai@user/BanUtama)
10:05:41 × marquis_1ndras quits (~marquis_a@124-150-76-210.tpgi.com.au) (Ping timeout: 252 seconds)
10:06:27 acidjnk_new joins (~acidjnk@p200300d6e705861481a7f77b2ce6d239.dip0.t-ipconnect.de)
10:07:37 coot joins (~coot@213.134.176.158)
10:07:58 matthewmosior joins (~matthewmo@173.170.253.91)
10:11:30 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:11:50 × bilegeek quits (~bilegeek@2600:1008:b029:dafd:1c14:3295:e11b:5339) (Quit: Leaving)
10:12:25 marquis_andras joins (~marquis_a@27-32-245-27.tpgi.com.au)
10:12:58 × luffy quits (~chenqisu1@183.217.201.23) (Quit: Leaving)
10:15:24 × yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection)
10:15:57 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
10:16:36 notzmv joins (~zmv@user/notzmv)
10:18:31 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
10:19:14 nilradical joins (~nilradica@user/naso)
10:19:16 luffy joins (~chenqisu1@183.217.201.23)
10:20:12 × kuribas quits (~user@silversquare.silversquare.eu) (Ping timeout: 268 seconds)
10:20:47 × xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
10:25:59 kuribas joins (~user@silversquare.silversquare.eu)
10:27:38 ph88 joins (~ph88@tmo-116-33.customers.d1-online.com)
10:29:16 <kuribas> How rare is it to see rigor in companies? I hear the claim over and over that real world data is not rigorous, but most of the time it looks to me that it's just sloppy coding or modelling.
10:30:15 <kuribas> Even when dealing with unexpected data, you need to apply rigor to get predidtable results.
10:35:31 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
10:35:33 × coot quits (~coot@213.134.176.158) (Quit: coot)
10:38:22 <chreekat> kuribas : Depends wildly on industry. I don't know what it means for data to be rigorous. I suppose you mean rigorous about ensuring data quality? In the context of transforming data coming from external sources?
10:38:35 img joins (~img@user/img)
10:38:42 <kritzefitz> kuribas: I think one relevant aspect, is that a lot of practice-oriented code has to adapt to requirements that change over time. Making changes to a code base in a sloppy way is often cheaper in the short term than rigorously redefining your models to fit the new requirements.
10:41:48 <chreekat> Or put another way, the model of any real world problem is time dependent, and also depends and past and future versions of itself, and modeling all that rigorously is a development I would watch with much interest
10:45:02 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
10:47:38 × darchitect1 quits (~darchitec@2a00:23c6:3584:df01:7ab:2377:4825:f9a) (Ping timeout: 244 seconds)
10:49:07 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.5)
10:49:22 vysn joins (~vysn@user/vysn)
10:51:27 yvan-sraka joins (~yvan-srak@105.67.135.250)
10:52:13 × vysn quits (~vysn@user/vysn) (Client Quit)
10:52:39 vysn joins (~vysn@user/vysn)
10:52:48 geranim0 joins (~geranim0@modemcable062.79-202-24.mc.videotron.ca)
10:53:00 bob joins (~geranim0@modemcable062.79-202-24.mc.videotron.ca)
10:54:13 nate4 joins (~nate@98.45.169.16)
10:54:29 × BanUtama quits (~blake.rai@user/BanUtama) (Quit: leaving)
10:55:19 × alp_ quits (~alp@user/alp) (Ping timeout: 268 seconds)
10:58:24 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
10:59:40 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
11:00:50 CiaoSen joins (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:00:51 × vysn quits (~vysn@user/vysn) (Ping timeout: 255 seconds)
11:00:51 azimut joins (~azimut@gateway/tor-sasl/azimut)
11:01:02 × CiaoSen quits (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Client Quit)
11:01:28 kenran joins (~kenran@ip-037-024-119-190.um08.pools.vodafone-ip.de)
11:01:31 × glguy quits (x@libera/staff/glguy) (Read error: Connection reset by peer)
11:02:35 glguy joins (x@libera/staff/glguy)
11:03:43 <maerwald[m]> Rigor? Who's that
11:04:55 <maerwald[m]> Think he died in a car accident. Hit by a Bus.
11:06:11 <tdammers> I'm pretty sure all this is coming from clojure apologists
11:06:36 <tdammers> real-world code is never 100% rigorous, but that doesn't mean rigor should go out the window entirely
11:07:59 <absentia> who needs rigor
11:08:14 <absentia> ship the code, get a raise, promotion, change of title
11:08:15 <tdammers> there's a difference between making conscious and informed choices about where to be rigorous and where not, and just winging it and writing code in a reactive, ad-hoc fashion
11:08:27 <absentia> leave the firm for another pay bump and title inflation
11:08:40 <absentia> and let the next guy figure out the edge cases
11:08:53 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 268 seconds)
11:09:03 <tdammers> ^ that's also extremely common, and an almost inevitable consequence of the "paid labor" situation
11:09:46 <tdammers> as with anything, once you start paying people for doing it, the quality goes from "giving it your very best" to "enough, and not a bit more"
11:09:53 <maerwald[m]> I think most of industry issues come from those "star programmers". They get the company up and running and then leave. And nevnr receive any feedback about their decisions. So they stay in their bubble
11:10:09 <tdammers> nah
11:10:14 <absentia> yeah
11:10:32 <maerwald[m]> It's not poor coders
11:10:43 <tdammers> I mean, that happens, but most of the industry is not companies that have just outgrown their early startup phase
11:10:45 × alternateved quits (~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
11:11:04 <tdammers> you are right that it's not usually the coders though
11:11:08 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
11:11:09 <tdammers> or at least, not all of them
11:11:55 <tdammers> but it's really really easy to mess up a team of perfectly fine developers without any rockstars, and it happens all the time
11:13:28 <tdammers> give them overly specific tasks, but withhold key information about the operation; set unrealistic deadlines; change course and redefine the domain terminology every week; fill the backlog with vaguely-defined "issues" that are really more like a layman's fever dream; bury them in meetings and memos and "urgent" tickets
11:13:31 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
11:13:40 <tdammers> and, if in doubt, raise the pressure
11:14:13 <tdammers> sooner or later, they will start taking shortcuts, check in code that they know isn't right, and once the technical debt starts piling up, it tends to get worse and worse
11:15:21 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
11:15:23 <maerwald[m]> Never worked anywhere, where sloppy code was the problem. It was always design decisions early in the startup phase, that were impossible to revert
11:15:38 <maerwald[m]> And those are always the rockstars
11:16:19 <tdammers> IME, it's more often unreasonable managers than rockstar devs who come up with those decisions
11:16:20 gmg joins (~user@user/gehmehgeh)
11:17:01 <maerwald[m]> Yeah sure, whoever makes the decisions
11:17:17 alternateved joins (~user@staticline-31-183-149-36.toya.net.pl)
11:17:20 <maerwald[m]> The problem is how to get feedback for those
11:17:30 <maerwald[m]> Many of them manifest after years, when the original decision makers are long gone
11:17:56 <tdammers> and those decisions wouldn't be so bad if the code were kept in a state where they can be undone / changed
11:18:00 <tdammers> but that never happens
11:18:24 <tdammers> it's not outright *sloppy* code, it's just that nobody goes the extra mile to make the code truly orthogonal and refactorable
11:19:29 <tdammers> another problem is that about 80% of the developer population, and 99.99% of the management population, are stuck in a "make it work" mindset, where code is considered "done" when it has been shown to produce the desired results at least once, in very specific circumstances.
11:19:40 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
11:19:56 <maerwald[m]> Hehe
11:21:04 <maerwald[m]> It's only done when it was used during s moon landing :p
11:21:05 <maerwald[m]> Liko curl
11:21:34 <tdammers> didn't one of the Apollo computer systems fail during the first Moon landing?
11:23:34 matthewmosior joins (~matthewmo@173.170.253.91)
11:23:49 <maerwald[m]> That's why it's better to quit programming and just... dunno, open a pub
11:23:54 xff0x_ joins (~xff0x@2405:6580:b080:900:7393:ed71:26f2:b383)
11:24:33 darchitect1 joins (~darchitec@2a00:23c6:3584:df01:9f23:d492:30c1:6303)
11:25:33 <arahael> tdammers: Absolutely correct.
11:26:29 <maerwald[m]> "It's only done when it was used during a successful moon landing" ;)
11:28:15 <arahael> maerwald[m]: I was thinking this morning that maybe I should run a cafe. :)
11:28:27 <arahael> Cafe dude looked happy./
11:28:58 <tdammers> the landing was still a success, despite the failure
11:29:19 <tdammers> and of course the failure wasn't a programming error, but an oversight in the overall system design
11:29:42 <maerwald[m]> arahael: if you provide decaffeinated matcha, then sure
11:30:25 <arahael> maerwald[m]: No, I'd provide espresso. And only espresso. :)
11:30:38 <maerwald[m]> tdammers: who knows, maybe the landing was a success because of the crash :p
11:32:03 × poscat quits (~poscat@2408:8206:4822:7201:ea07:2224:d420:ae5c) (Quit: Bye)
11:33:33 × raym quits (~raym@user/raym) (Remote host closed the connection)
11:34:12 <jackdk> The star programmers I'm most in awe of are the ones who pull theory out of a hat to achieve seemingly-impossible things
11:37:06 <maerwald[m]> They provide a lot of value by being explorers, but I'd never want them to build the system for my startup that decides whether my tech stack is gonna be well thought through for the future
11:37:31 raym joins (~raym@user/raym)
11:38:07 CiaoSen joins (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:38:59 <maerwald[m]> Would rather hire a 60 years old java programmer who has looked into the abyss many times
11:39:48 × Batzy quits (~quassel@user/batzy) (Quit: No Ping reply in 180 seconds.)
11:41:13 Batzy joins (~quassel@user/batzy)
11:42:11 × pmarg quits (~pmarg@138.199.6.238) (Ping timeout: 268 seconds)
11:44:46 × aliosablack quits (~chomwitt@2a02:587:dc15:5e00:d0f9:9fe4:8717:f94d) (Quit: Leaving)
11:51:02 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:52:04 chomwitt joins (~chomwitt@2a02:587:dc15:5e00:d0f9:9fe4:8717:f94d)
11:55:01 × yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection)
11:55:20 yvan-sraka joins (~yvan-srak@105.67.135.250)
11:57:53 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
11:57:58 × ubert quits (~Thunderbi@178.165.202.57.wireless.dyn.drei.com) (Read error: Connection reset by peer)
11:58:02 coot joins (~coot@213.134.176.158)
11:58:08 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:58:18 ubert joins (~Thunderbi@178.165.202.57.wireless.dyn.drei.com)
11:58:46 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
12:02:43 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
12:04:44 <kuribas> tdammers: "it's not outright *sloppy* code, it's just that nobody goes the extra mile to make the code truly orthogonal and refactorable" => this
12:06:34 <kuribas> tdammers: and write documentation about tricky bits, important domain specific issues.
12:07:40 elkcl_ joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
12:09:21 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 268 seconds)
12:09:22 elkcl_ is now known as elkcl
12:11:00 <kuribas> tdammers: algorithms, architecture
12:12:32 <maerwald> documentation is harder than coding
12:12:44 <kuribas> but more important
12:12:46 <maerwald> it requires you to actually understand something
12:13:47 <lortabac> in my experience most problems arise because people underestimate complexity
12:14:11 <maerwald> lortabac: of the domain or of their decisions? ;)
12:14:17 <lortabac> the human brain is bad at understanding measures that grow exponentially
12:14:18 <maerwald> IME, usually the latter
12:14:44 <lortabac> we tend to sum the complexity of the various features, instead of multiplying
12:15:37 <merijn> maerwald: Yes
12:15:42 <maerwald> you're making a good argument against composition ;p
12:16:29 <maerwald> everything comes back to unix principles... even functional programming (which didn't exist back then)
12:17:01 <maerwald> composition is unmanagable if you don't follow those principles
12:17:53 <lortabac> composition is bad, composability is good :)
12:19:38 <carbolymer> lortabac: what's bad about composition?
12:20:27 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:21:26 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:22:28 <lortabac> in the context of what we were discussing... the composition of multiple features increases the overall complexity
12:23:12 <lortabac> but the composability of the individual components allows you to reason on a single component at a time
12:23:39 × koz_ quits (~koz@121.99.240.58) (Ping timeout: 268 seconds)
12:26:09 <carbolymer> lortabac: you should abstract complexity away while composing, so you can make composition good again
12:27:13 × jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 252 seconds)
12:27:43 koz joins (~koz@121.99.240.58)
12:29:19 ph88^ joins (~ph88@tmo-116-33.customers.d1-online.com)
12:30:17 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
12:30:56 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
12:31:28 nilradical joins (~nilradica@user/naso)
12:33:05 × ph88 quits (~ph88@tmo-116-33.customers.d1-online.com) (Ping timeout: 252 seconds)
12:35:37 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
12:35:39 × vglfr quits (~vglfr@88.155.13.114) (Ping timeout: 252 seconds)
12:37:05 poscat joins (~poscat@2408:8206:4820:6423:32a0:bd91:4668:caff)
12:37:43 × nilradical quits (~nilradica@user/naso) (Ping timeout: 268 seconds)
12:42:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:43:23 nilradical joins (~nilradica@user/naso)
12:45:05 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
12:45:48 shriekingnoise joins (~shrieking@186.137.167.202)
12:50:57 stef204 joins (~stef204@user/stef204)
12:52:01 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
12:56:57 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
12:57:01 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:57:29 matthewmosior joins (~matthewmo@173.170.253.91)
12:58:25 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
12:58:59 vglfr joins (~vglfr@88.155.13.114)
12:59:21 matthewmosior joins (~matthewmo@173.170.253.91)
13:07:26 × bliminse quits (~bliminse@user/bliminse) (Ping timeout: 268 seconds)
13:08:33 × luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds)
13:08:58 <tdammers> what's even harder than writing documentation is writing code that doesn't need documentation
13:09:01 bliminse joins (~bliminse@user/bliminse)
13:09:14 <tdammers> in part because a lot of code that we think is self-explanatory is, in fact, not
13:13:16 nate4 joins (~nate@98.45.169.16)
13:14:34 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
13:15:43 × poscat quits (~poscat@2408:8206:4820:6423:32a0:bd91:4668:caff) (Quit: Bye)
13:17:22 biberu\ joins (~biberu@user/biberu)
13:18:23 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
13:19:01 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
13:20:51 × biberu quits (~biberu@user/biberu) (Ping timeout: 268 seconds)
13:20:52 biberu\ is now known as biberu
13:21:43 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
13:22:10 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
13:22:16 × yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection)
13:23:52 nilradical joins (~nilradica@user/naso)
13:25:07 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
13:27:33 × ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Remote host closed the connection)
13:28:17 × nilradical quits (~nilradica@user/naso) (Ping timeout: 268 seconds)
13:28:53 poscat joins (~poscat@2408:8206:4820:6705:6404:b732:d928:1540)
13:29:42 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:30:52 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
13:31:15 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
13:35:06 × alternateved quits (~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
13:36:59 × acidjnk_new quits (~acidjnk@p200300d6e705861481a7f77b2ce6d239.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
13:38:03 azimut joins (~azimut@gateway/tor-sasl/azimut)
13:40:17 jespada joins (~jespada@186.158.236.52)
13:44:57 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
13:45:07 mikoto-chan joins (~mikoto-ch@85-76-34-254-nat.elisa-mobile.fi)
13:46:07 nilradical joins (~nilradica@user/naso)
13:47:46 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 3.6)
13:49:59 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
13:50:07 ystael joins (~ystael@user/ystael)
13:53:16 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
13:53:16 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
13:53:17 wroathe joins (~wroathe@user/wroathe)
13:53:28 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
13:54:45 nattiestnate joins (~nate@180.243.14.16)
13:56:58 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
13:57:44 stef204 joins (~stef204@user/stef204)
13:58:05 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 255 seconds)
13:59:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
13:59:53 × ardell quits (~ardell@user/ardell) (Quit: Leaving)
14:01:36 <carbolymer> tdammers: It happened to me quite often, when I'm on the interview ( as a interviewee) and I ask the team, "are you writing documentation?" the answer is "we're writing self-documenting code HEHE"
14:02:44 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
14:04:03 × nattiestnate quits (~nate@180.243.14.16) (Quit: WeeChat 3.6)
14:07:45 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
14:09:16 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
14:10:26 × `2jt quits (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) (Quit: Leaving)
14:11:02 mc47 joins (~mc47@xmonad/TheMC47)
14:11:26 jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
14:13:53 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
14:15:16 × vglfr quits (~vglfr@88.155.13.114) (Ping timeout: 268 seconds)
14:15:36 vglfr joins (~vglfr@88.155.13.114)
14:18:35 × coot quits (~coot@213.134.176.158) (Quit: coot)
14:20:07 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:26:07 nilradical joins (~nilradica@user/naso)
14:26:21 × nilradical quits (~nilradica@user/naso) (Client Quit)
14:27:19 × kenran quits (~kenran@ip-037-024-119-190.um08.pools.vodafone-ip.de) (Quit: WeeChat info:version)
14:28:47 × frost quits (~frost@user/frost) (Quit: Client closed)
14:30:08 jakalx parts (~jakalx@base.jakalx.net) ()
14:32:37 jakalx joins (~jakalx@base.jakalx.net)
14:32:43 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
14:36:07 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
14:37:58 × CiaoSen quits (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
14:37:59 × Vajb quits (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
14:38:17 Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
14:39:29 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 255 seconds)
14:41:27 slack1256 joins (~slack1256@wsip-184-177-0-226.no.no.cox.net)
14:46:00 <maerwald[m]> Even if code is self explanatory, that doesn't make documentation unnecessary
14:46:39 <maerwald[m]> Because now you're telling me to read the whole function body instead of reading rendered haddock comments?
14:46:47 <maerwald[m]> Nah, I'll use another library, thanks
14:47:17 × ph88^ quits (~ph88@tmo-116-33.customers.d1-online.com) (Ping timeout: 252 seconds)
14:47:50 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
14:48:16 Vajb joins (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
14:48:58 <kuribas> carbolymer: that response annoys me so much
14:49:24 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:49:28 <maerwald[m]> The problem is really you can't write good documentation without a reviewer
14:50:20 <kuribas> carbolymer: that comment implies two things, the code is so good you don't need documentation (it likely isn't), if you cannot understand the code from looking at it, you probably are not smart enough, or don't put enough effort (also false).
14:50:39 ph88^ joins (~ph88@2a01:598:b005:8de0:a1cd:2b13:e4bf:7905)
14:50:52 <carbolymer> kuribas: yeah, red flag right there
14:50:59 <maerwald[m]> Red flag, find another company, unless they pay really well
14:51:23 <carbolymer> maerwald[m]: life is about compromises ;)
14:51:38 <kuribas> good luck finding a company which documents everything.
14:51:43 <maerwald[m]> I'll ignore 2 red flags when the bucks are right
14:52:08 <carbolymer> kuribas: ^
14:52:13 <maerwald[m]> Except toxic culture
14:52:30 <carbolymer> maerwald[m]: too bad that the toxic culture shows only after you're few months in
14:52:32 <maerwald[m]> But that's hard to figure out in an interview
14:52:39 <maerwald[m]> Yeah
14:53:04 <maerwald[m]> And sometimes the coding itself is really nice
14:54:21 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
14:54:49 matthewmosior joins (~matthewmo@173.170.253.91)
14:56:12 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
14:56:35 matthewmosior joins (~matthewmo@173.170.253.91)
14:56:35 × ph88^ quits (~ph88@2a01:598:b005:8de0:a1cd:2b13:e4bf:7905) (Ping timeout: 268 seconds)
14:56:56 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
14:56:59 nate4 joins (~nate@98.45.169.16)
14:59:47 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
15:00:21 × tomku quits (~tomku@user/tomku) (Read error: Connection reset by peer)
15:00:23 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:298e:42c7:d203:46f0) (Quit: WeeChat 2.8)
15:01:58 <tdammers> "Documentation" is kind of an umbrella term, too.
15:01:59 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
15:01:59 × kuribas quits (~user@silversquare.silversquare.eu) (Ping timeout: 268 seconds)
15:03:16 <tdammers> what you do and do not need depends on the use case - you want your elevator pitch / executive summary, a 'getting started' guide, an explanation of key concepts, a set of 'how do I...' guides, a reference guide, and inline explanations that tell the reader why things are the way they are, and what else they need to read in order to make sense of the source code.
15:03:21 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
15:03:25 tomku joins (~tomku@user/tomku)
15:03:53 <tdammers> we call all these "documentation", and that often leads to people mixing them up, and writing "getting started" guides in the source code, or moving the "why" explanations to external media like a wiki
15:04:39 lsrts^ joins (~lsrts@206.85.120.17)
15:11:35 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:13:23 matthewmosior joins (~matthewmo@173.170.253.91)
15:13:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:13:48 matthewmosior joins (~matthewmo@173.170.253.91)
15:15:19 × jespada quits (~jespada@186.158.236.52) (Read error: Connection reset by peer)
15:16:01 jespada joins (~jespada@2803:9800:9842:8ca9:c034:74:da3:46b7)
15:17:21 × AlexZenon quits (~alzenon@178.34.151.166) (Ping timeout: 252 seconds)
15:17:21 × Alex_test quits (~al_test@178.34.151.166) (Ping timeout: 252 seconds)
15:17:50 × califax quits (~califax@user/califx) (Remote host closed the connection)
15:18:11 califax joins (~califax@user/califx)
15:18:33 Alex_test joins (~al_test@178.34.151.166)
15:19:15 AlexZenon joins (~alzenon@178.34.151.166)
15:19:24 notzmv joins (~zmv@user/notzmv)
15:20:36 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
15:22:09 <[exa]> tdammers: tldr: transferring ideas is hard
15:25:40 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
15:29:03 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
15:33:00 × krjt quits (~krjst@2604:a880:800:c1::16b:8001) (Quit: bye)
15:34:07 zxx7529 joins (~Thunderbi@user/zxx7529)
15:34:25 krjst joins (~krjst@2604:a880:800:c1::16b:8001)
15:35:08 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
15:36:27 × mmhat quits (~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
15:41:15 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
15:42:02 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:42:10 matthewmosior joins (~matthewmo@173.170.253.91)
15:46:16 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
15:46:19 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
15:47:13 <merijn> Transferring ideas is easy
15:47:23 <merijn> as long as my medium gets to be "ad hoc rants"
15:47:48 <merijn> It's the writing down of ideas that's tricky :p
15:48:17 <carbolymer> yeah, those random turds in the middle of meeting are very effective
15:51:51 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:52:16 × causal quits (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.6)
15:53:49 × vglfr quits (~vglfr@88.155.13.114) (Ping timeout: 268 seconds)
15:57:17 nilradical joins (~nilradica@user/naso)
15:58:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:59:19 <nilradical> in my code i have a common pattern: `Set.fromList [ f x y | x <- Set.toList s, y <- Set.toList s]` . i think with set-monad (https://hackage.haskell.org/package/set-monad) i can simplify this to `[ f x y | x <- y, s <- s]` , but does this have package incur a significant performance impact?
15:59:44 <nilradical> `[ f x y | x <- s, y <- s]`
15:59:56 ph88 joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:00:13 × darchitect1 quits (~darchitec@2a00:23c6:3584:df01:9f23:d492:30c1:6303) (Ping timeout: 244 seconds)
16:03:51 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:04:16 <merijn> nilradical: I mean, the monad's gonna have exactly the same performance, so it shouldn't
16:04:20 matthewmosior joins (~matthewmo@173.170.253.91)
16:04:40 × zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529)
16:06:22 <nilradical> i remember reading somewhere that it had bad performance but didn't udnerstand the reason and when it applies
16:06:58 <merijn> nilradical: The bad performance is basically "you have to deserialise to lists, do the operation, then rebuild a set
16:07:01 <merijn> "
16:07:04 <merijn> So it's not super efficient
16:07:35 × mikoto-chan quits (~mikoto-ch@85-76-34-254-nat.elisa-mobile.fi) (Ping timeout: 252 seconds)
16:07:38 <nilradical> ok, but since i'm doing that anyway it should make no difference for me. cool thanks
16:07:41 <merijn> nilradical: otoh, you could wrap the original "ugly" list comprehension into a function and just use that and avoid the dependency?
16:08:13 <nilradical> in general the arity of `f` is unknown
16:08:19 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
16:09:32 <nilradical> and the values will not be drawn from the same set. e.g. it could be [ f x y z | x <- a, y <- b, z <- c ] . would it still be possible ?
16:09:52 kazaf joins (~kazaf@94.180.63.53)
16:10:24 <nilradical> in other words, just general set comprehensions
16:10:37 <nilradical> i think set-monad is good for me as long as it is compatible with relude
16:12:48 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
16:13:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
16:13:43 noteness joins (~noteness@user/noteness)
16:14:40 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
16:14:40 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
16:15:09 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:15:31 noteness joins (~noteness@user/noteness)
16:15:43 × mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving)
16:20:04 × mcglk_ quits (~mcglk@131.191.49.120) (Quit: (zzz))
16:22:04 × kazaf quits (~kazaf@94.180.63.53) (Remote host closed the connection)
16:22:12 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:22:24 kazaf joins (~kazaf@94.180.63.53)
16:25:00 econo joins (uid147250@user/econo)
16:25:25 × ph88 quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:26:21 ph88 joins (~ph88@sonicwall.snp-ag.com)
16:26:48 mcglk joins (~mcglk@131.191.49.120)
16:26:58 ph88^ joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:27:46 × ph88^ quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:27:48 × kazaf quits (~kazaf@94.180.63.53) (Ping timeout: 252 seconds)
16:28:33 matthewmosior joins (~matthewmo@173.170.253.91)
16:28:36 ph88^ joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:28:40 × ph88^ quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:29:20 ph88^ joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:29:50 <Guillaum[m]> I'm having a difficult time deriving "Data" instance for a GADT, see here: https://gist.github.com/guibou/84333621ff0e6f9374b8c46eb5f14345. Is that something fundamentaly impossible or is there a solution?
16:29:59 × ph88^ quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:30:26 × mcglk quits (~mcglk@131.191.49.120) (Client Quit)
16:30:40 ph88^ joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:31:12 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:31:18 × ph88 quits (~ph88@sonicwall.snp-ag.com) (Ping timeout: 264 seconds)
16:32:15 justsomeguy joins (~justsomeg@user/justsomeguy)
16:33:12 × ph88^ quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:33:41 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
16:33:42 ph88^ joins (~ph88@sonicwall.snp-ag.com)
16:36:10 ph88_ joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:38:13 × ph88_ quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:40:04 ph88 joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:40:39 × ph88^ quits (~ph88@sonicwall.snp-ag.com) (Ping timeout: 268 seconds)
16:41:08 × ph88 quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:41:55 ph88 joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:41:59 × nilradical quits (~nilradica@user/naso) ()
16:42:01 × bliminse quits (~bliminse@user/bliminse) (Quit: leaving)
16:42:03 × ph88 quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:43:25 ph88 joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:43:41 × ph88 quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:45:28 ph88 joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:46:05 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
16:46:48 × ph88 quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:47:19 <lyxia> You might be able to write an instance by hand but that depends on what you are trying to do. That doesn't look like something GHC can derive for you.
16:47:35 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
16:48:05 ph88 joins (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3)
16:48:59 acidjnk_new joins (~acidjnk@p200300d6e705861494ef1a886018f36c.dip0.t-ipconnect.de)
16:49:31 × ph88 quits (~ph88@2a01:598:8987:f87d:9d56:f9d0:e0c4:26f3) (Read error: Connection reset by peer)
16:49:56 bender joins (~bender@105.235.135.236)
16:50:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:50:37 ph88 joins (~ph88@sonicwall.snp-ag.com)
16:52:01 ph88^ joins (~ph88@sonicwall.snp-ag.com)
16:54:09 × bender quits (~bender@105.235.135.236) (Ping timeout: 252 seconds)
16:54:27 <Guillaum[m]> lyxia: Thank you. I'm trying to write the instance by hand, but I'm stuck in the middle of the gunfold implementation and I'm having a similar issue. I'm a bit lost with the type signature of the function of the Data class ;) If by chance you know a good resource which may explain that, I'll be more than happy. Otherwise, I'm continuing my experimentation.
16:54:53 × ph88 quits (~ph88@sonicwall.snp-ag.com) (Ping timeout: 252 seconds)
16:56:15 bender joins (~bender@105.235.135.236)
16:57:20 × ph88^ quits (~ph88@sonicwall.snp-ag.com) (Ping timeout: 268 seconds)
17:00:50 × bender quits (~bender@105.235.135.236) (Ping timeout: 255 seconds)
17:01:32 bender joins (~bender@105.235.135.236)
17:02:50 vglfr joins (~vglfr@88.155.13.114)
17:03:19 × bender quits (~bender@105.235.135.236) (Read error: Connection reset by peer)
17:05:51 × vglfr quits (~vglfr@88.155.13.114) (Read error: Connection reset by peer)
17:06:02 bender joins (~bender@105.235.135.236)
17:10:04 <lyxia> Guillaum[m]: one idea is to first use the Typeable constraint to pattern-match on the index, and then each branch behaves as if the type is a single-constructor type, and you can get the code for that by copy-pasting the output of -ddump-deriv when deriving Data for a normal single-constructor type
17:10:32 vglfr joins (~vglfr@88.155.13.114)
17:10:54 × bender quits (~bender@105.235.135.236) (Ping timeout: 268 seconds)
17:11:09 <Guillaum[m]> lyxia: THANK you ;) I actually incrementally comes to similar conclusion and I was able to write an working instance, except for the implementation of gunfold, but I won't need it. So my instance is not "complete", but it's enough for my needs.
17:12:04 <Guillaum[m]> If someone is interested, for reference: https://gist.github.com/guibou/84333621ff0e6f9374b8c46eb5f14345#file-gadtsdatamanual-hs-L17-L25 Thank you.
17:12:05 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:13:13 <lyxia> hah
17:13:54 <lyxia> yeah it's easier if you're only consuming the GADT
17:15:13 × vglfr quits (~vglfr@88.155.13.114) (Ping timeout: 268 seconds)
17:15:20 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
17:17:13 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:18:19 Jade1 joins (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de)
17:19:14 vglfr joins (~vglfr@88.155.13.114)
17:23:53 × vglfr quits (~vglfr@88.155.13.114) (Read error: Connection reset by peer)
17:24:06 seriously joins (~seriously@2001:1c06:1b1d:6f00:efd2:b7b6:20af:5f73)
17:26:34 vglfr joins (~vglfr@88.155.13.82)
17:26:38 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
17:27:13 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
17:31:24 <seriously>  its me from last night/morning... still on the same problem. https://paste.tomsmeding.com/UrdyEmSb.
17:32:23 <seriously> going to retry reframing my question... how does one add 2 functions that take a map and return an integer
17:32:48 <seriously> if there is no map given
17:33:26 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
17:33:38 × Alex_test quits (~al_test@178.34.151.166) (Ping timeout: 255 seconds)
17:34:10 jgeerds joins (~jgeerds@55d46bad.access.ecotel.net)
17:34:31 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
17:34:42 <seriously> my instincts are telling me to pattern match on the functions ... so something like: add (\x -> y) (\z -> t) = ....
17:34:45 <tomsmeding> seriously: but there is a map given, right?
17:34:49 <tomsmeding> you cannot pattern match on functions
17:34:57 × AlexZenon quits (~alzenon@178.34.151.166) (Ping timeout: 268 seconds)
17:35:01 f-a joins (f2a@f2a.jujube.ircnow.org)
17:35:35 <f-a> simple question: I got a very deeply nested error and want to know the callstack. I solved by sprinkling `trace` but I guess that is the dumb way
17:37:10 <tomsmeding> f-a: if all the functions on the way have a HasCallStack constraint, then you get a stack trace on `error`
17:37:17 <tomsmeding> downside is that _all_ functions on the way need to have that constreaint
17:37:44 Alex_test joins (~al_test@178.34.151.166)
17:37:57 <seriously> add :: (M.Map String Integer -> Maybe Integer) -> (M.Map String Integer -> Maybe Integer) -> (M.Map String Integer -> Maybe Integer)
17:38:16 <tomsmeding> seriously: that function takes three arguments; what are their types?
17:38:30 <f-a> tomsmeding: iirc there was a +RTS option to auto add those (with --enble-profiling)?
17:38:55 AlexZenon joins (~alzenon@178.34.151.166)
17:38:56 <tomsmeding> f-a: ah yes, if you `cabal run --enable-profiling -- +RTS -p`
17:39:04 <seriously> there types are a function that takes a map and returns a Maybe Integer
17:39:07 <tomsmeding> maybe +RTS -xc, I don't remember
17:39:23 <geekosaur> it's not quite the same thing as HasCallstack
17:39:29 <tomsmeding> seriously: that's the first two arguments, what about the third one?
17:39:43 <geekosaur> but it does use profiling information to provide a call stack on exception
17:40:03 <f-a> -p or -xc? Well I’ll try both
17:40:11 <seriously> The same thing no? a function that takes a map and returns maybe integer?
17:40:50 <seriously> its straight forward if the type is Bool or Integer or String
17:40:58 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
17:41:05 × son0p quits (~ff@181.136.122.143) (Ping timeout: 268 seconds)
17:41:13 <tomsmeding> seriously: a -> (b -> (c -> (d -> e))) means exactly the same as a -> b -> c -> d -> e
17:41:29 <tomsmeding> returning a function is the same as taking another argument
17:41:31 <geekosaur> +RTS -xc prints a backtrace on exception if the program is compiled with profiling
17:42:01 <geekosaur> (it does not require you to enable profiling at runtime, just that the profiling information be there to build a backtrace from)
17:43:18 × Jade1 quits (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de) (Quit: Client closed)
17:44:26 <f-a> geekosaur: may I upload a .tar.gz, because *not* all calls are afaics present
17:44:29 son0p joins (~ff@181.136.122.143)
17:45:24 <geekosaur> hm. the profiling-based stack trace does differ from the one you get with HasCallStack
17:45:53 <f-a> http://www.ariis.it/link/t/prova-0.1.0.0.tar.gz in this simple two file project, I do not see functions being called in main if I cabal run prova --enable-profiling -- +RTS -xc
17:45:57 <f-a> so maybe I am doing something wrong
17:46:04 <geekosaur> in particular I think the profiling one goes by what forces evaluation while HasCallStack records the actual evaluation trace
17:46:21 × seriously quits (~seriously@2001:1c06:1b1d:6f00:efd2:b7b6:20af:5f73) (Quit: Client closed)
17:46:31 <geekosaur> but requires that alll functions in the trace be annotated to work since it's actually an implicit variable
17:46:31 seriously joins (~seriously@2001:1c06:1b1d:6f00:efd2:b7b6:20af:5f73)
17:46:41 × vglfr quits (~vglfr@88.155.13.82) (Ping timeout: 255 seconds)
17:46:55 vglfr joins (~vglfr@88.155.13.82)
17:47:09 <f-a> argh, so say I were working on ghc, I would have to annotate a large portion of the codebase just to diagnose how I reached some specific error?
17:47:15 <f-a> depressing :P
17:47:16 <geekosaur> yep
17:47:29 <geekosaur> we're still kinda in the stone age wrt debugging
17:47:58 <geekosaur> it's commonly requested that there be a way to have ghc annotate all functions itself
17:48:04 <f-a> well, so +RTS -xc is our best bet for now?
17:48:06 <geekosaur> no idea if it's been formally proposed yet
17:48:10 <geekosaur> yes
17:48:17 <f-a> (also, -xc or -xc -p?)
17:48:31 <geekosaur> hm, there's also a third way to get a backtrace that has its own shortcomings and abilities
17:48:46 <geekosaur> -p is unnecessary unless you also want to profile
17:49:27 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
17:50:31 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
17:50:54 <geekosaur> ah, right, dwarf support provides another backtrace mechanism but it can't be used with exceptions unless you set a breakpoint in whatever mangled name `error` becomes
17:51:15 <seriously> so add :: M.Map String Integer -> (Maybe Integer -> (M.Map  ..... tomsmeding
17:51:20 <geekosaur> and has to be enabled within the ghc build, which iirc it is not in currently released versions
17:52:01 neceve joins (~quassel@2.26.93.14)
17:52:02 <f-a> thanks geekosaur , still marginally better than what I did today (putting putStrLn and pray)
17:52:05 Midjak joins (~Midjak@82.66.147.146)
17:52:39 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:53:06 × vglfr quits (~vglfr@88.155.13.82) (Read error: Connection reset by peer)
17:53:11 vysn joins (~vysn@user/vysn)
17:53:12 <seriously> so using, "add f" would give me access to the first map tomsmeding
17:53:14 vglfr joins (~vglfr@88.155.13.82)
17:54:02 × jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
17:54:34 matthewmosior joins (~matthewmo@173.170.253.91)
17:56:11 <monochrom> I use Debug.Trace. More importantly, I think in terms of a "work backwards" model, unlike most people. Working backwards work great for imperative eager languages too, I once solved a mystery in someone else's C program that way.
17:56:20 <tomsmeding> seriously: note, (a -> b) -> c is _not_ the same as a -> b -> c
17:56:24 <tomsmeding> (->) is right-associative
17:57:18 zebrag joins (~chris@user/zebrag)
17:59:08 <monochrom> (Lest you cite that there are great debuggers for C: No, I merely used printf.)
17:59:15 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:00:26 <seriously> let me know if my head is in the right place... your suggesting that due to currying and partial function application, theres a way to extract the Map from add :: (M.Map String Integer -> Maybe Integer) -> (M.Map String Integer -> Maybe Integer) -> (M.Map String Integer -> Maybe Integer)
18:00:38 <seriously> tomsmeding
18:01:04 <seriously> you said earlier that this function takes 3 arguments
18:01:43 <seriously> im not following that
18:02:05 × MajorBiscuit quits (~MajorBisc@c-001-013-051.client.tudelft.eduvpn.nl) (Ping timeout: 268 seconds)
18:02:17 mmhat joins (~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de)
18:02:34 <tomsmeding> seriously: let's look at a simpler example first
18:02:35 <tomsmeding> :t const
18:02:36 <lambdabot> a -> b -> a
18:02:47 <tomsmeding> :t const 3
18:02:49 <lambdabot> Num a => b -> a
18:02:53 AlexNoo_ is now known as AlexNoo
18:03:12 <tomsmeding> so when applied to one argument of type 'a', 'const' gets type 'b -> a'
18:03:19 <tomsmeding> so clearly, const :: a -> (b -> a), right?
18:03:20 × vglfr quits (~vglfr@88.155.13.82) (Read error: Connection reset by peer)
18:03:26 <tomsmeding> :t const :: a -> (b -> a)
18:03:27 <lambdabot> a -> b -> a
18:03:28 <seriously> right
18:03:39 <tomsmeding> a -> (b -> a) and a -> b -> a are the same thing
18:03:45 <seriously> right
18:03:56 <tomsmeding> just like (a - b) - c and a - b - c are the same thing
18:04:02 vglfr joins (~vglfr@88.155.13.82)
18:04:04 <tomsmeding> but a - (b - c) is something completely different
18:04:12 <tomsmeding> (-) is left-associative
18:04:25 <tomsmeding> (->) is right-associative: you have the same parenthesisation behaviour, but the other way around
18:04:26 × vglfr quits (~vglfr@88.155.13.82) (Read error: Connection reset by peer)
18:04:35 titibandit joins (~titibandi@xdsl-212-8-147-38.nc.de)
18:04:37 <tomsmeding> a -> b -> c is the same as a -> (b -> c); this is currying
18:04:38 vglfr joins (~vglfr@88.155.13.82)
18:04:52 <tomsmeding> but (a -> b) -> c is something different: this is a function that takes an argument of type (a -> b)
18:05:05 <tomsmeding> does that makes sense?
18:05:06 × vglfr quits (~vglfr@88.155.13.82) (Read error: Connection reset by peer)
18:05:15 vglfr joins (~vglfr@88.155.13.82)
18:06:10 <seriously> yeah makes sense ... I dont have the intuition for it but it makes sense in the sense of (-) (*) (`div`)
18:06:25 <tomsmeding> for (-) it makes sense? good
18:06:36 × vglfr quits (~vglfr@88.155.13.82) (Read error: Connection reset by peer)
18:06:38 <tomsmeding> the intuition for (->) should come from the fact that partial application is a thing
18:07:02 <tomsmeding> in haskell, a function that takes three arguments is precisely the same as a function that takes one argument (the first one), and returns a _function_ that takes the remaining two arguments
18:07:23 <tomsmeding> add :: (map -> mint) -> (map -> mint) -> (map -> mint) -- I shortened the types a bit
18:07:25 vglfr joins (~vglfr@88.155.13.82)
18:07:36 <tomsmeding> this type has one set of redundant parentheses -- which one?
18:08:35 <seriously> the last one... so (map -> mint) -> (map -> mint) -> map -> mint
18:08:47 <tomsmeding> indeed!
18:08:54 <tomsmeding> so how many arguments does add take?
18:08:55 × titibandit quits (~titibandi@xdsl-212-8-147-38.nc.de) (Client Quit)
18:09:17 <seriously> 3 so... add f g map
18:09:21 <tomsmeding> yep!
18:09:28 <tomsmeding> now it's your turn again :)
18:09:31 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:09:43 <seriously> =D =D (y)
18:09:47 <seriously> thanks!!!
18:10:18 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.6)
18:10:25 <tomsmeding> seriously: by the way, there is a "normal" arithmetic operator that is also right-associative, just like (->): exponentiation (^)
18:10:42 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
18:10:47 Lord_of_Life_ is now known as Lord_of_Life
18:10:51 <tomsmeding> a ^ b ^ c is the same as a ^ (b ^ c), and is different from (a ^ b) ^ c, which is a ^ (b * c)
18:11:04 <tomsmeding> but +-*/ are left-associative
18:11:35 <seriously> even + ?
18:11:52 <tomsmeding> well for (+) and (*) it doesn't matter really :p
18:11:56 <seriously> isnt 3 + (1 + 2) the same as (3 +1) + 2
18:11:58 <tomsmeding> yeah
18:12:00 <seriously> ok ok sorry
18:12:14 <tomsmeding> well, I mean, it _is_ left-associative
18:12:20 <tomsmeding> it's just _also_ right-associative :D
18:12:24 <seriously> i think doing some pemdas training might help me
18:12:27 <tomsmeding> (we say: (+) is _associative_)
18:12:34 <seriously> havent done it inover 15 years
18:12:38 <tomsmeding> (it's also _commutative_: a + b == b + a)
18:12:51 <seriously> ok i see
18:13:01 <tomsmeding> (->) is definitely _not_ commutative though :p
18:13:14 <tomsmeding> if it were, we'd have an interesting situation on our hands
18:15:15 × califax quits (~califax@user/califx) (Remote host closed the connection)
18:15:29 × slack1256 quits (~slack1256@wsip-184-177-0-226.no.no.cox.net) (Ping timeout: 255 seconds)
18:15:37 × mmhat quits (~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
18:16:12 califax joins (~califax@user/califx)
18:18:26 <monochrom> Nooooo! If (->) were commutative, everything would be trivialized!
18:19:03 <monochrom> Right? https://xkcd.com/816/ applies. :)
18:20:05 <dolio> That's why you need ⅋.
18:20:28 <darkling> Ah, but does that proof use the axiom of choice? :)
18:22:26 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
18:28:09 notzmv joins (~zmv@user/notzmv)
18:32:53 × vglfr quits (~vglfr@88.155.13.82) (Ping timeout: 268 seconds)
18:33:08 mmhat joins (~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de)
18:35:30 Inst joins (~Inst@2601:6c4:4080:3f80:9130:6712:37bc:57ff)
18:36:52 × seriously quits (~seriously@2001:1c06:1b1d:6f00:efd2:b7b6:20af:5f73) (Ping timeout: 252 seconds)
18:38:36 × irfan quits (~irfan@user/irfan) (Quit: leaving)
18:44:48 pavonia joins (~user@user/siracusa)
18:48:57 jmdaemon joins (~jmdaemon@user/jmdaemon)
18:52:59 phma_ joins (~phma@host-67-44-208-154.hnremote.net)
18:54:24 king_gs joins (~Thunderbi@2806:103e:29:da31:7fc4:b440:75b4:b884)
18:54:26 × doelie quits (~tom@c-73-17-195-134.hsd1.me.comcast.net) (Remote host closed the connection)
18:54:29 × phma quits (~phma@host-67-44-208-1.hnremote.net) (Read error: Connection reset by peer)
18:54:37 alternateved joins (~user@staticline-31-183-149-36.toya.net.pl)
18:56:10 jgeerds joins (~jgeerds@55d46bad.access.ecotel.net)
18:56:53 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
18:57:15 king_gs1 joins (~Thunderbi@2806:103e:29:da31:6295:18ed:9b2f:858f)
18:57:30 phma_ is now known as phma
18:58:39 nate4 joins (~nate@98.45.169.16)
18:58:47 matthewmosior joins (~matthewmo@173.170.253.91)
18:59:33 × king_gs quits (~Thunderbi@2806:103e:29:da31:7fc4:b440:75b4:b884) (Ping timeout: 268 seconds)
18:59:33 king_gs1 is now known as king_gs
18:59:48 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:00:07 cyanide3dinner joins (~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d)
19:00:38 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:00:39 × Vajb quits (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
19:00:54 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:01:00 coot joins (~coot@213.134.176.158)
19:01:18 Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
19:02:18 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
19:02:56 Vajb joins (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
19:03:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
19:03:43 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
19:04:02 vglfr joins (~vglfr@88.155.13.82)
19:05:38 the_ironic_curta joins (~Thunderbi@94.140.9.171)
19:06:37 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
19:07:06 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
19:08:37 × joo-_ quits (~joo-_@fsf/member/joo--) (Remote host closed the connection)
19:15:06 × alternateved quits (~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
19:19:02 seydar joins (~seydar@154-27-113-252.starry-inc.net)
19:19:15 <seydar> I'm trying to get ruby and haskell to talk to each other using unix sockets: https://paste.tomsmeding.com/62Qx9jev
19:19:56 <seydar> unfortunately, they both just... hang. and then when I ^C the haskell client, the ruby server then prints everything and complains of a broken pipe when it tries to write back.
19:20:02 <seydar> are unix sockets secretly only one-way?
19:20:19 <Bulby[m]> lazyness?
19:20:20 <seydar> also, unix sockets are *in-memory*, right?
19:20:31 matthewmosior joins (~matthewmo@173.170.253.91)
19:21:17 <geekosaur> yes
19:21:25 yvan-sraka joins (~yvan-srak@105.67.135.250)
19:21:40 <Bulby[m]> if something doesn't work until you ^C the haskell client perhaps it's lazyness
19:21:42 × jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Remote host closed the connection)
19:21:53 <geekosaur> or buffering?
19:21:59 <Bulby[m]> yes
19:22:00 <Bulby[m]> more likely
19:22:09 <darkling> If it were pipes, my money would defintely be on buffering.
19:22:29 <darkling> Sockets, I'm not so sure about. I haven't played with them so much.
19:22:54 <geekosaur> (note that buffering is language agnostic, so you may also have to check buffering on the Ruby side)
19:23:01 <Bulby[m]> sorry i haven't written haskell in a while
19:24:03 <geekosaur> the haskell side is using raw socket operations so buffering shouldn't matter. but neither will lines, or "packet" boundaries since it's a stream socket
19:24:31 <seydar> okay, so this is definitely the right medium i'm looking to explore
19:24:36 <seydar> but why does it hate me
19:24:43 <darkling> I'd be much more inclined to believe there are buffering issues if it's a stream socket than a datagram socket.
19:25:04 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
19:25:10 <geekosaur> actually both sides appear to be using raw send and recv operations
19:25:23 <geekosaur> so no buffering unless it's the printing the result part
19:26:26 <seydar> i'm willing to bet monopoly money that it's waiting until the write side is closed before reading
19:26:39 <seydar> because if i close the ruby server first, then the haskell program does its read
19:27:40 <seydar> although that's pipe logic, not socket logic
19:27:52 <geekosaur> `recv sock 1024` will actually wait for 1024 bytes, because it's a stream
19:27:55 × vysn quits (~vysn@user/vysn) (Ping timeout: 268 seconds)
19:28:17 <geekosaur> you probably want to make it a Handle and use hGetSome or similar
19:28:55 <seydar> ooooh, so if i just do recv 4 bytes, i might see my program complete
19:29:18 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
19:29:42 <geekosaur> yes
19:29:56 <seydar> welp. that didn't quite do it either.
19:30:07 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
19:31:43 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Quit: leaving)
19:32:11 kmein joins (~weechat@user/kmein)
19:33:01 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:33:07 × yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection)
19:33:26 yvan-sraka joins (~yvan-srak@105.67.135.250)
19:35:46 <geekosaur[m]> What did it do?
19:41:14 bliminse joins (~bliminse@user/bliminse)
19:42:50 dd1 joins (~ddellacos@86.106.121.209)
19:46:54 <dd1> anyone know what this is about? Am I missing something? https://paste.tomsmeding.com/YuI3ZqA5
19:48:00 f-a parts (f2a@f2a.jujube.ircnow.org) ()
19:48:07 <geekosaur> :set NoStarIsType
19:48:10 <geekosaur> I think
19:48:11 codaraxis joins (~codaraxis@user/codaraxis)
19:49:23 × neceve quits (~quassel@2.26.93.14) (Ping timeout: 268 seconds)
19:50:26 <dd1> geekosaur: yes that was it! So I guess a name collision in some sense? I'm just learning about TypeLits so this is all new to me...
19:50:33 <geekosaur> yes
19:50:45 <geekosaur> * meaning Type (that is, a concrete type) is historical
19:50:52 <geekosaur> :k <aybe
19:50:53 <lambdabot> error: Operator applied to too few arguments: <
19:50:54 <geekosaur> er
19:50:55 dd1 is now known as ddellacosta
19:50:58 <geekosaur> :k Maybe
19:50:59 <lambdabot> * -> *
19:51:10 <geekosaur> that's the use of * it's expecting
19:51:25 <geekosaur> if you set NoStarIsType then * is freed to be a type operator
19:51:54 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
19:52:15 <ddellacosta> geekosaur: gotcha, makes sense--thanks
19:53:33 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
19:54:21 × cyanide3dinner quits (~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d) (Remote host closed the connection)
19:57:13 × noteness quits (~noteness@user/noteness) (Excess Flood)
19:57:25 × the_ironic_curta quits (~Thunderbi@94.140.9.171) (Remote host closed the connection)
19:58:15 noteness joins (~noteness@user/noteness)
20:00:25 × ubert quits (~Thunderbi@178.165.202.57.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
20:02:00 takuan joins (~takuan@178-116-218-225.access.telenet.be)
20:06:28 slack1256 joins (~slack1256@wsip-184-177-0-226.no.no.cox.net)
20:16:01 × hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 268 seconds)
20:17:45 hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net)
20:18:09 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:19:04 × dos__^^ quits (~user@user/dos/x-1723657) (Ping timeout: 244 seconds)
20:22:39 × hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 268 seconds)
20:24:55 jese joins (~nikola@109-93-165-248.dynamic.isp.telekom.rs)
20:25:14 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
20:25:48 × ddellacosta quits (~ddellacos@86.106.121.209) (Ping timeout: 268 seconds)
20:25:50 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
20:26:41 biberu joins (~biberu@user/biberu)
20:27:15 × yvan-sraka quits (~yvan-srak@105.67.135.250) (Remote host closed the connection)
20:28:40 <Bulby[m]> binary isn't giving me a good call stack
20:28:42 <Bulby[m]> it just says out of bytes
20:28:43 hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net)
20:28:54 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:29:57 d34df00d joins (~d34df00d@2600:1700:8c60:3a10::46)
20:30:37 <d34df00d> Hi!
20:30:49 <d34df00d> I want to make something in Haskell that'd run in a browser and, moreover, render some graphs. I never did either of that, so what are some good libraries/toolchains/etc?
20:35:36 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
20:37:08 <dmj`> d34df00d: https://github.com/dmjio/miso
20:37:19 × jese quits (~nikola@109-93-165-248.dynamic.isp.telekom.rs) (Quit: leaving)
20:37:32 <d34df00d> Yay thanks!
20:37:55 <d34df00d> dmj: is dmjio the same as dmj the you?
20:38:24 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
20:38:45 <dmj`> d34df00d: yea, sorry, shameless plug
20:39:14 <d34df00d> Nah, on the contrary, that's good! More sense in asking questions here :]
20:39:33 <dmj`> in that case, check this out: https://2048.haskell-miso.org/
20:39:49 alp_ joins (~alp@user/alp)
20:41:27 <tomsmeding> having never before seen ghcjs output code, https://2048.haskell-miso.org/all.js is a wild ride for the curious
20:42:49 <d34df00d> dmj: looks pretty neat!
20:43:24 matthewmosior joins (~matthewmo@173.170.253.91)
20:43:39 <d34df00d> tomsmeding: I've seen a benchmark of some languages compiling to js, and ghcjs was, well… this explains that. Idris was on top tho.
20:43:48 <d34df00d> although Idris has way less libraries :(
20:44:35 <tomsmeding> I'm not surprised; V8 is unlikely to optimise for the code patterns that result when you try to compile a _lazy_ language to JS
20:45:27 <dmj`> yea, well the STG machine (along with all the primops and RTS functionality) implemented in JS, is gonna be pretty hefty. But at least the JS output is optimized for the google closure compiler
20:45:52 × mmhat quits (~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
20:48:14 <merijn> tomsmeding: LLVM all over again xD
20:48:40 <merijn> d34df00d: Keep in mind that ghcjs is *A LOT* more than "compiling haskell to JS"
20:48:54 <merijn> d34df00d: ghcjs was a full port of GHC *plus it's RTS* to JS
20:49:00 <dmj`> If we inlined the eval function, defunctionalized the STG, and did some whole program analysis passes we could ameliorate almost all overhead from laziness and have very small js payloads.
20:49:12 <merijn> d34df00d: Which means it implements lightweight threading, complex timers, etc.
20:49:20 <d34df00d> Oh.
20:49:29 <d34df00d> green threads is something I haven't thought about as a consequence of compiling to js.
20:49:33 <d34df00d> for one
20:49:44 <merijn> d34df00d: Literally anything, except C FFI (and even some of that...) *everything* of GHC worked
20:49:48 <Rembane_> d34df00d: Have you checked out Purescript?
20:50:03 <merijn> d34df00d: If you are willing to drop a bunch of stuff like that, then you can get MUCH faster code
20:50:04 <darkling> Still waiting for someone to produce a BEAM runtime in a browser. :)
20:50:09 <d34df00d> Rembane_: tbh I don't want to learn a new language rn. I wanted to switch away from agda and get something
20:50:14 <d34df00d> actually done that'd actually run.
20:50:46 <d34df00d> Although from what I've see purescript looks pretty cool!
20:50:52 <d34df00d> Native row polymorphism and all that.
20:51:26 <darkling> I kind of sidled in here from Elm...
20:51:36 <Rembane_> d34df00d: Fair enough.
20:54:03 × king_gs quits (~Thunderbi@2806:103e:29:da31:6295:18ed:9b2f:858f) (Quit: king_gs)
21:02:05 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
21:04:08 <dmj`> d34df00d: ghcjs gives you all of hackage too :)
21:04:11 <dmj`> "all"
21:09:47 <walt> purescript is a way more reasonable choice if the goal is to run stuff in the browser, imo
21:10:14 walt is now known as ggVGc
21:10:17 <geekosaur> unless you actually need the power of ghc
21:10:32 <geekosaur> (but how often do you actually need that?)
21:14:29 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:15:17 mikoto-chan joins (~mikoto-ch@85-76-19-206-nat.elisa-mobile.fi)
21:15:55 mmhat joins (~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de)
21:16:29 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:19:33 <dmj`> rescript looks cool, could use that
21:20:55 × absentia quits (~absentia@user/absentia) (K-Lined)
21:22:57 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
21:23:22 ec joins (~ec@gateway/tor-sasl/ec)
21:23:28 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
21:23:39 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:29:05 ph88 joins (~ph88@ltea-178-013-121-150.pools.arcor-ip.net)
21:30:30 pgib joins (~textual@173.38.117.83)
21:31:26 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
21:31:45 × acidjnk_new quits (~acidjnk@p200300d6e705861494ef1a886018f36c.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
21:36:18 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
21:40:27 × michalz quits (~michalz@185.246.204.90) (Remote host closed the connection)
21:42:11 moonsheep joins (~user@user/moonsheep)
21:42:42 acidjnk_new joins (~acidjnk@p200300d6e7058614083d03ca0d10755f.dip0.t-ipconnect.de)
21:46:21 <zzz> what's the reasoning behind doing stuff like this?: https://hackage.haskell.org/package/gloss-1.7.5.2/docs/src/Graphics-Gloss-Data-Picture.html#pictures
21:46:59 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
21:47:42 <zzz> functiom = Constructor
21:48:46 <dmj`> zzz: smart constructor
21:48:57 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
21:50:13 × mikoto-chan quits (~mikoto-ch@85-76-19-206-nat.elisa-mobile.fi) (Ping timeout: 268 seconds)
21:50:42 matthewmosior joins (~matthewmo@173.170.253.91)
21:51:01 <[exa]> zzz: if you only export the function, you 1] make sure the user isn't tempted to patternmatch 2] you can change the data representation in later versions without breaking it for everyone
21:52:45 <zzz> hmm... gloss not only exports it but also doesn't perform any "smart" checks
21:55:10 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
21:58:59 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:00:02 × acidjnk_new quits (~acidjnk@p200300d6e7058614083d03ca0d10755f.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
22:01:52 Tuplanolla joins (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi)
22:02:14 × coot quits (~coot@213.134.176.158) (Quit: coot)
22:02:45 × dcoutts_ quits (~duncan@host86-167-206-78.range86-167.btcentralplus.com) (Remote host closed the connection)
22:03:07 dcoutts_ joins (~duncan@host86-167-206-78.range86-167.btcentralplus.com)
22:03:46 × Unode quits (~Unode@194.94.44.220) (Remote host closed the connection)
22:04:57 Unode joins (~Unode@194.94.44.220)
22:08:09 × ph88 quits (~ph88@ltea-178-013-121-150.pools.arcor-ip.net) (Remote host closed the connection)
22:08:30 ph88 joins (~ph88@ltea-178-013-121-150.pools.arcor-ip.net)
22:11:20 malte joins (~malte@mal.tc)
22:13:41 × ph88 quits (~ph88@ltea-178-013-121-150.pools.arcor-ip.net) (Ping timeout: 268 seconds)
22:13:49 × heartbur1 quits (~gass@2a00:d880:3:1::b1e4:b241) (Quit: leaving)
22:15:18 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:17:20 heartburn joins (~gass@2a00:d880:3:1::b1e4:b241)
22:18:05 darchitect1 joins (~darchitec@2a00:23c6:3584:df01:b208:b196:e5ae:769e)
22:18:38 matthewmosior joins (~matthewmo@173.170.253.91)
22:25:44 × califax quits (~califax@user/califx) (Read error: Connection reset by peer)
22:25:44 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
22:25:44 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Write error: Broken pipe)
22:25:44 × ec quits (~ec@gateway/tor-sasl/ec) (Write error: Connection reset by peer)
22:25:44 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Write error: Connection reset by peer)
22:25:44 × noteness quits (~noteness@user/noteness) (Write error: Connection reset by peer)
22:25:44 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Write error: Broken pipe)
22:25:44 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Write error: Broken pipe)
22:25:44 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
22:26:09 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
22:26:12 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:26:21 jpds joins (~jpds@gateway/tor-sasl/jpds)
22:26:38 califax joins (~califax@user/califx)
22:26:41 azimut joins (~azimut@gateway/tor-sasl/azimut)
22:26:54 stiell joins (~stiell@gateway/tor-sasl/stiell)
22:26:55 ec joins (~ec@gateway/tor-sasl/ec)
22:27:07 chexum joins (~quassel@gateway/tor-sasl/chexum)
22:28:32 noteness joins (~noteness@user/noteness)
22:31:37 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
22:31:40 <glguy> dminuoso: I pushed out a version of config-schema that supports matching against arbitrary values instead of just atoms. I don't know if that's still useful to you, but it's on the response to your PR I made a while back
22:32:43 azimut joins (~azimut@gateway/tor-sasl/azimut)
22:37:40 × chele quits (~chele@user/chele) (Remote host closed the connection)
22:41:52 × mmhat quits (~mmh@p200300f1c706f7beee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
22:42:02 × lsrts^ quits (~lsrts@206.85.120.17) (Ping timeout: 268 seconds)
22:44:35 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
22:49:25 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
22:51:36 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
22:51:56 chexum joins (~quassel@gateway/tor-sasl/chexum)
22:54:38 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:55:13 Sgeo joins (~Sgeo@user/sgeo)
22:58:43 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds)
22:59:30 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Client Quit)
23:00:12 nate4 joins (~nate@98.45.169.16)
23:00:26 luffy joins (~chenqisu1@183.217.201.23)
23:05:27 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
23:18:30 lsrts^ joins (~lsrts@206.85.120.17)
23:29:30 × moonsheep quits (~user@user/moonsheep) (Read error: Connection reset by peer)
23:29:46 moonsheep joins (~user@user/moonsheep)
23:36:26 × darchitect1 quits (~darchitec@2a00:23c6:3584:df01:b208:b196:e5ae:769e) (Ping timeout: 244 seconds)
23:36:59 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
23:38:01 × raym quits (~raym@user/raym) (Remote host closed the connection)
23:41:17 × slack1256 quits (~slack1256@wsip-184-177-0-226.no.no.cox.net) (Ping timeout: 255 seconds)
23:41:43 × Tuplanolla quits (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Quit: Leaving.)
23:42:04 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
23:42:22 raym joins (~raym@user/raym)
23:42:30 ChaiTRex joins (~ChaiTRex@user/chaitrex)
23:42:48 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit)
23:44:21 ChaiTRex joins (~ChaiTRex@user/chaitrex)
23:56:39 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
23:57:09 jpds joins (~jpds@gateway/tor-sasl/jpds)

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