2021/06/13

2021-06-13 00:00:01 +0200 <Hecate> lenses are pretty cool indeed
2021-06-13 00:00:48 +0200 <DigitalKiwi> if dibblego ever gets bit by a sneke and i cannot ask him questions anymore i think i can replace him with a bot that says 'use lens'
2021-06-13 00:00:50 +0200 <qrpnxz> they are kind of like arrows but for records
2021-06-13 00:01:05 +0200 <qrpnxz> DigitalKiwi, hahaha
2021-06-13 00:01:30 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 264 seconds)
2021-06-13 00:01:40 +0200 <DigitalKiwi> dibblego: <3
2021-06-13 00:01:56 +0200 <aerkenemesis> the dependency list is a bit discouraging though :S
2021-06-13 00:02:09 +0200 <geekosaur> there's always microlens
2021-06-13 00:02:50 +0200 <Rembane_> Or use other dependencies directly that lens depends on.
2021-06-13 00:03:10 +0200 <DigitalKiwi> you mean "code that someone else wrote so i don't have to"
2021-06-13 00:03:54 +0200 <maerwald> optics > lens
2021-06-13 00:04:10 +0200 <c_wraith> optics doesn't have any of the cool stuff
2021-06-13 00:04:56 +0200 <Rembane_> DigitalKiwi: That's the best code!
2021-06-13 00:05:02 +0200 <Rembane_> c_wraith: What cool stuff is optics lacking?
2021-06-13 00:06:01 +0200 <aerkenemesis> DigitalKiwi yes indeed, but haskell binaries tend to blow up astronomically in size so I usually pick libraries very carefully. "Many a mickle makes a little"
2021-06-13 00:06:15 +0200 <c_wraith> holesOf, everything in Control.Lens.Plated
2021-06-13 00:06:31 +0200 <maerwald> never heard of any of that
2021-06-13 00:06:39 +0200 <maerwald> so my guess is I don't need it
2021-06-13 00:06:49 +0200 <c_wraith> Or you just don't realize that you missed it
2021-06-13 00:07:00 +0200 <DigitalKiwi> https://mostlyabsurd.com/files/stackage-shell.nix gee i wonder why i never got this to work ;_;
2021-06-13 00:07:09 +0200 <maerwald> most of the time, I avoid both lens and optics... but when I can't, I use optics
2021-06-13 00:07:23 +0200 <Rembane_> c_wraith: Cool, I've got some reading to do. :)
2021-06-13 00:08:00 +0200 <c_wraith> like... https://hackage.haskell.org/package/lens-5.0.1/docs/Control-Lens-Plated.html#v:cosmosOf cosmosOf is amazing for any sort of "apply this everywhere" transformation
2021-06-13 00:09:17 +0200 <c_wraith> err. it's good for extraction, not transformation. But still.
2021-06-13 00:10:10 +0200 <c_wraith> like, the Plated class is actually the least useful thing in Control.Lens.Plated :)
2021-06-13 00:12:58 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net)
2021-06-13 00:13:27 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 252 seconds)
2021-06-13 00:13:27 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-13 00:14:51 +0200chomwitt(~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 272 seconds)
2021-06-13 00:14:53 +0200 <DigitalKiwi> Rembane_: yes
2021-06-13 00:16:55 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 00:18:18 +0200johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2021-06-13 00:20:24 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-13 00:21:09 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
2021-06-13 00:23:19 +0200thyriaen(~thyriaen@45.178.75.13) (Remote host closed the connection)
2021-06-13 00:24:03 +0200benin036(~benin@183.82.205.218)
2021-06-13 00:24:16 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 00:25:01 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-06-13 00:29:12 +0200jaevanko(~jaevanko@2600:1700:1330:2bef:5548:773a:cf10:a3a1) (Quit: Leaving)
2021-06-13 00:31:10 +0200bpalmer(~user@user/bpalmer)
2021-06-13 00:33:25 +0200tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2021-06-13 00:34:04 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
2021-06-13 00:34:40 +0200pdxleif(~leif@75.164.44.108) (Quit: leaving)
2021-06-13 00:35:42 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 00:38:25 +0200MorrowM(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net)
2021-06-13 00:44:28 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 00:54:54 +0200MQ-17J(~MQ-17J@8.21.10.116) (Ping timeout: 264 seconds)
2021-06-13 00:56:34 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 01:00:36 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Remote host closed the connection)
2021-06-13 01:02:20 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 01:05:02 +0200dudebbn_(~dudebbn_@31.134.191.84)
2021-06-13 01:05:02 +0200 <dudebbn_> /﹗\ ΤHІЅ CⲎᎪΝΝΕⅬ HAЅ ᎷOᏙΕᎠ ΤO ΙᏒC.LⅠBᎬRA.CΗAT #HᎪMRADⅠO /!\
2021-06-13 01:05:03 +0200 <dudebbn_> /ǃ\ THΕ JEᎳS ⲎАᏙᎬ TᎪKЕΝ ΟᏙER ᖴᎡEEⲚODEᛧ CHᎪTЅ HAᏙЕ MOᏙED ΤO IRC.ᏞⅠBΕRA.ⲤHΑТ /!\
2021-06-13 01:05:03 +0200dudebbn_(~dudebbn_@31.134.191.84) (Killed (ozone (No Spam)))
2021-06-13 01:06:48 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-13 01:13:57 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-06-13 01:16:46 +0200 <DigitalKiwi> wh- what
2021-06-13 01:17:00 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2021-06-13 01:17:12 +0200 <geekosaur> "enjoy" some spam
2021-06-13 01:17:26 +0200 <geekosaur> they're still hitting libera, sadly
2021-06-13 01:17:39 +0200 <geekosaur> more of it shows up in -beginners than here for some reason
2021-06-13 01:18:24 +0200 <DigitalKiwi> couldn't they do something better like fixing PIA ;(
2021-06-13 01:20:18 +0200 <geekosaur> ?
2021-06-13 01:21:57 +0200 <janus> Private Internet Access (PIA) is the company that owns Freenode
2021-06-13 01:22:13 +0200 <DigitalKiwi> In 2010, he founded Private Internet Access (PIA),[2] a virtual private network service for anonymizing Internet traffic.
2021-06-13 01:22:40 +0200 <janus> but these spammers aren't promoting Freenode, so it makes little sense to assert that they have the power to "fix PIA"?
2021-06-13 01:22:54 +0200 <geekosaur> so you assime Andrew is behind the spam? when they're hitting freenode even harder --- and also other networks?
2021-06-13 01:24:09 +0200 <janus> i don't really understand what they stand to gain from it. but it is interesting that apparently the cost of spamming is so low that you don't need to make money doing it?
2021-06-13 01:24:34 +0200 <janus> or maybe it is just meant as a "proof of spamming" and could potentially be monetized ?
2021-06-13 01:24:57 +0200 <DigitalKiwi> i don't know that andrew is or is not responsible for the spam; but he very clearly destroyed freenode
2021-06-13 01:25:19 +0200 <geekosaur> oh, it's trivial these days. botnets are nearly free and these days all they're doing is keeping them warm
2021-06-13 01:26:38 +0200 <janus> but it just seems like they're targeting IRC specifically... does matrix have the same problem?
2021-06-13 01:27:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 01:28:01 +0200 <janus> i guess matrix requires an account , but it just seems odd if that is the only thing stopping them
2021-06-13 01:28:54 +0200chisui(~chisui@200116b8666c8300b41cb8c96969b3fb.dip.versatel-1u1.de) (Quit: Client closed)
2021-06-13 01:29:08 +0200chisui(~chisui@200116b8666c8300147e1d1a4c512cff.dip.versatel-1u1.de)
2021-06-13 01:29:11 +0200 <DigitalKiwi> janus: ah this must be the proof of work i hear so much about ;D
2021-06-13 01:29:45 +0200 <DigitalKiwi> "see? (the botnet) it works!"
2021-06-13 01:29:56 +0200 <janus> right, i got coloured by that pattern of terminology, sorry for triggering you ;)
2021-06-13 01:30:46 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net)
2021-06-13 01:31:16 +0200theproffesor(~theproffe@2601:282:847f:8010::3a29)
2021-06-13 01:31:52 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Remote host closed the connection)
2021-06-13 01:31:56 +0200Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-06-13 01:33:43 +0200 <janus> it does suggest a difficult hobby project: OCR-based spam filter :P
2021-06-13 01:34:59 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-13 01:36:05 +0200 <Cale> If I were a young script kiddie with a botnet right now, I'd be using it to attempt routing table attacks on the p2p layer of cryptocurrency networks. Seems way more fun than messing with IRC, haha.
2021-06-13 01:38:05 +0200 <DigitalKiwi> ohi cale haven't seen you in while. so tell us cale what have you been working on lately? ;p
2021-06-13 01:38:16 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net)
2021-06-13 01:38:22 +0200 <Cale> In my spare time, mostly music
2021-06-13 01:38:35 +0200 <Cale> I've got a Lumatone (lumatone.io)
2021-06-13 01:38:50 +0200 <janus> but most of them do not have overlay networks, so why would they need a routing table? bitcoin can use torv3, but then if you're attacking tor, that is not really specific to cryptocurrency
2021-06-13 01:39:04 +0200 <DigitalKiwi> is music the codename for your botnet that attacks p2p networks
2021-06-13 01:40:04 +0200 <Cale> janus: I mean like the Kademlia stuff that nodes use to connect themselves to other nodes
2021-06-13 01:40:15 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-06-13 01:40:52 +0200 <DigitalKiwi> "no of course not you idiot bird (whispers "lumatone is the codename")"
2021-06-13 01:40:55 +0200 <janus> but is Kademlia/DHT used in cryptocurrency? i thought it only really made sense for long-time immutable data that isn't replicated across the network
2021-06-13 01:41:27 +0200 <janus> in bitcoin, everybody syncs the whole thing, so you don't need a DHT to find where the pieces are, because they will be with almost all your peers
2021-06-13 01:42:19 +0200 <Cale> janus: For many networks, yeah. Bitcoin is mostly ad-hoc configurations that can't be gamed, but a lot of networks use a DHT to make it easy to find peers to get connected to.
2021-06-13 01:42:46 +0200 <Cale> I believe Ethereum still does, unless something has changed.
2021-06-13 01:43:28 +0200 <janus> ok, so sounds like you'll be helping to establish Bitcoin-hegemony. A crypto-bitcoin-maximalist, i see ;)
2021-06-13 01:43:48 +0200 <Cale> Bitcoin, we'll have to find some other solution to
2021-06-13 01:44:28 +0200 <Cale> I want it all gone ;D
2021-06-13 01:45:16 +0200 <janus> the bitcoin blockchain contains links to child porn. so you just need a few million to establish court precedence for that constituting child porn possetion
2021-06-13 01:45:59 +0200 <janus> sadly, i can't tell you where they are, that would be criminal ;)
2021-06-13 01:46:26 +0200 <janus> hmm , but then again, i already did... damn
2021-06-13 01:47:39 +0200 <DigitalKiwi> very sus
2021-06-13 01:48:17 +0200 <Cale> amogus
2021-06-13 01:50:02 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-13 01:52:35 +0200yoctocell(~yoctocell@h87-96-130-155.cust.a3fiber.se) (Ping timeout: 268 seconds)
2021-06-13 01:52:43 +0200kluk(~kluk@2603-7000-9b3f-6934-65d8-64d7-b633-c7a9.res6.spectrum.com)
2021-06-13 01:54:31 +0200kluk(~kluk@2603-7000-9b3f-6934-65d8-64d7-b633-c7a9.res6.spectrum.com) (Read error: Connection reset by peer)
2021-06-13 01:55:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 01:56:24 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-06-13 02:02:11 +0200hmmmas(~chenqisu1@183.217.200.246)
2021-06-13 02:11:58 +0200pkkm(~pkkm@dgs4.neoplus.adsl.tpnet.pl) (Ping timeout: 272 seconds)
2021-06-13 02:13:53 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-13 02:14:01 +0200DigitalKiwitrolls ethereum twitter https://twitter.com/ArchKiwi/status/1403867746635558914?s=20
2021-06-13 02:14:43 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: leaving)
2021-06-13 02:14:58 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-06-13 02:29:04 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-06-13 02:29:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-13 02:29:14 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-06-13 02:35:31 +0200pe200012_(~pe200012@183.63.73.36) (Read error: Connection reset by peer)
2021-06-13 02:35:37 +0200pe200012(~pe200012@183.63.73.36)
2021-06-13 02:37:26 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 245 seconds)
2021-06-13 02:38:13 +0200sekun(~sekun@180.190.155.195)
2021-06-13 02:40:23 +0200swistak(~swistak@185.21.216.141) (Ping timeout: 252 seconds)
2021-06-13 02:41:00 +0200hololeap(hololeap@user/hololeap) (Quit: Bye)
2021-06-13 02:41:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
2021-06-13 02:50:20 +0200sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 245 seconds)
2021-06-13 02:58:24 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-13 02:58:40 +0200dhil(~dhil@195.213.192.47) (Ping timeout: 245 seconds)
2021-06-13 02:59:26 +0200chisui(~chisui@200116b8666c8300147e1d1a4c512cff.dip.versatel-1u1.de) (Ping timeout: 250 seconds)
2021-06-13 03:00:28 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2021-06-13 03:04:44 +0200killsushi(~killsushi@user/killsushi) (Quit: Leaving)
2021-06-13 03:08:01 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-06-13 03:10:24 +0200kw(~user@152.1.137.158) (Remote host closed the connection)
2021-06-13 03:11:59 +0200xff0x(~xff0x@2001:1a81:5382:9400:bf95:26e2:74b9:5674) (Ping timeout: 272 seconds)
2021-06-13 03:13:30 +0200xff0x(~xff0x@2001:1a81:53bf:ae00:b6fb:e579:3973:61d4)
2021-06-13 03:15:19 +0200johnw_(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2021-06-13 03:15:46 +0200dcoutts__(~duncan@94.186.125.91.dyn.plus.net)
2021-06-13 03:15:55 +0200tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-06-13 03:16:01 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Remote host closed the connection)
2021-06-13 03:16:01 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2021-06-13 03:16:01 +0200dcoutts_(~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection)
2021-06-13 03:16:09 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-13 03:16:24 +0200justBull(~justache@user/justache) (Remote host closed the connection)
2021-06-13 03:17:13 +0200justBull(~justache@user/justache)
2021-06-13 03:17:16 +0200 <janus> i am looking at http://www.vex.net/~trebla/haskell/cont.xhtml and it defines `fmap = liftM`
2021-06-13 03:18:15 +0200johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-06-13 03:18:40 +0200 <geekosaur> historically Monad didn't require Functor, so it was common to get the Functor instance that way
2021-06-13 03:19:00 +0200 <janus> right! but let's say i wanted to define fmap myself, i could take the solution for monadic bind, and substitute that into the law "fmap f xs = xs >>= return . f" from Control.Monad
2021-06-13 03:19:13 +0200 <janus> then i would have an fmap implementation that didn't rely on Monad, right?
2021-06-13 03:19:27 +0200 <geekosaur> yes
2021-06-13 03:19:37 +0200 <janus> i feel a bit dirty defining Functor in terms of Monad, since i feel like it is the wrong way around
2021-06-13 03:19:41 +0200 <geekosaur> you're looking at a historical accident, basically
2021-06-13 03:20:40 +0200 <janus> but there is another problem: that line also uses `return`. so i'd have to find a law on Control.Applicative that defines fmap in terms of "pure", right?
2021-06-13 03:21:32 +0200 <geekosaur> pure is the same as return
2021-06-13 03:21:43 +0200 <janus> right, that's why i mention it
2021-06-13 03:21:48 +0200 <geekosaur> you should be able to use them interchangeably
2021-06-13 03:21:57 +0200theproffesor(~theproffe@2601:282:847f:8010::3a29) (Changing host)
2021-06-13 03:21:57 +0200theproffesor(~theproffe@user/theproffesor)
2021-06-13 03:22:15 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds)
2021-06-13 03:22:48 +0200 <janus> right, so i showed the law that defines fmap in terms of bind and return. but i can't find a law that defines fmap in terms of applicative's pure, and surely there can't be
2021-06-13 03:23:30 +0200 <geekosaur> right, Applicative relies on having Functor as a superclass
2021-06-13 03:23:39 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-06-13 03:24:07 +0200 <janus> but then how do i do this, is it better if i just start from scratch with the fmap laws and my Cont definition?
2021-06-13 03:24:16 +0200 <geekosaur> probably yes
2021-06-13 03:24:35 +0200 <janus> ok lemme try, thanks :)
2021-06-13 03:25:17 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-13 03:26:30 +0200 <DigitalKiwi> for some reason i'm remembering a slide dibblego had where he (ab)used return lol
2021-06-13 03:27:09 +0200 <DigitalKiwi> yes i could be more vague ;(
2021-06-13 03:27:35 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-06-13 03:29:16 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 03:38:03 +0200benin036(~benin@183.82.205.218) (Ping timeout: 252 seconds)
2021-06-13 03:39:54 +0200benin036(~benin@183.82.176.84)
2021-06-13 03:43:17 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-13 03:45:55 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-13 03:46:56 +0200unyu(~pyon@user/pyon) (Quit: WeeChat 3.1)
2021-06-13 03:50:30 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:6149:a9e8:86ec:e649) (Quit: Leaving)
2021-06-13 03:51:36 +0200jiribenes(~jiribenes@rosa.jiribenes.com) (Ping timeout: 268 seconds)
2021-06-13 03:51:57 +0200 <DigitalKiwi> now i have to watch all of his videos on youtube until i find it ;(
2021-06-13 03:52:11 +0200 <Henson> Cale: the lumatone looks interesting
2021-06-13 03:53:16 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-06-13 03:53:54 +0200 <DigitalKiwi> if only i could limit it to the subset of videos i have watched before that would reduce the search space...
2021-06-13 03:54:44 +0200 <DigitalKiwi> oh wait that's all of them LOL <3
2021-06-13 03:58:26 +0200iridescent(~iridescen@41337027.cst.lightpath.net)
2021-06-13 03:58:34 +0200 <iridescent> what does the line "class Randomizable spec f | spec -> f" mean?
2021-06-13 03:58:46 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
2021-06-13 03:58:46 +0200 <iridescent> i'm not sure what the syntax here is
2021-06-13 03:59:13 +0200 <geekosaur> it's a class with a functional dependency saying that for any spec there can be only one f
2021-06-13 03:59:30 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 252 seconds)
2021-06-13 04:00:00 +0200sander(~sander@user/sander) (Quit: So long! :))
2021-06-13 04:00:21 +0200jespada(~jespada@90.254.242.55) (Ping timeout: 264 seconds)
2021-06-13 04:00:33 +0200 <geekosaur> this helps with type resolution in the presence of multiparameter typeclasses
2021-06-13 04:01:06 +0200sander(~sander@user/sander)
2021-06-13 04:01:26 +0200jespada(~jespada@90.254.242.55)
2021-06-13 04:02:16 +0200 <iridescent> what do you mean by that second statement?
2021-06-13 04:03:19 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds)
2021-06-13 04:03:42 +0200 <geekosaur> without the functional dependency, the typeclass could mean nearly anything and you would have to annotate all uses with their types. with the fundep ghc knows that if it knows spec, there's only one possible f instead of just about anything
2021-06-13 04:05:23 +0200 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/functional_dependencies.html
2021-06-13 04:07:02 +0200td_(~td@94.134.91.54) (Ping timeout: 244 seconds)
2021-06-13 04:08:53 +0200td_(~td@94.134.91.38)
2021-06-13 04:09:24 +0200sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1)
2021-06-13 04:10:23 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
2021-06-13 04:11:22 +0200iridescent(~iridescen@41337027.cst.lightpath.net) (Ping timeout: 250 seconds)
2021-06-13 04:11:35 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2021-06-13 04:13:05 +0200phma_(phma@2001:5b0:215d:8f48:bacd:d5e3:1440:7006)
2021-06-13 04:16:01 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.204.25) (Ping timeout: 244 seconds)
2021-06-13 04:16:26 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.204.25)
2021-06-13 04:16:32 +0200phma(~phma@host-67-44-209-1.hnremote.net) (Ping timeout: 244 seconds)
2021-06-13 04:17:06 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds)
2021-06-13 04:18:27 +0200phma_phma
2021-06-13 04:19:27 +0200qrpnxz(~qrpnxz@user/qrpnxz) (Disconnected: closed)
2021-06-13 04:20:11 +0200curiousgay(~quassel@178.217.208.8)
2021-06-13 04:21:57 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1)
2021-06-13 04:25:41 +0200qrpnxz(~qrpnxz@user/qrpnxz)
2021-06-13 04:25:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 04:29:26 +0200 <Cale> Henson: It's fantastic. It's actually way easier to learn than the usual piano keyboard layout, since you generally arrange it so that musical intervals and spatial intervals coincide.
2021-06-13 04:30:36 +0200 <Cale> and then you get to generalise to larger tuning systems in a natural way, but play them similarly regardless (provided they support whatever temperament is implied by your layout)
2021-06-13 04:32:38 +0200 <Cale> https://imgur.com/a/91xHTjS -- 31 equal divisions of the octave Wicki-Hayden schematic and on the keyboard :)
2021-06-13 04:33:22 +0200 <theproffesor> I love microtonal keyboards.. I think that one looks pretty sweet. Has there been any good updates software wise yet? I know that there is an ethernet port among other future planned upgrades
2021-06-13 04:33:28 +0200 <Cale> That type of layout, with perfect fifths on the / axis and perfect fourths on the \ axis so that whole tones go across is my favourite
2021-06-13 04:34:52 +0200 <Cale> There was one firmware update almost immediately after shipping with some hotfixes, but yeah, there should be a lot of potential cool stuff
2021-06-13 04:35:15 +0200da39a3ee5e6b4b0d(~textual@2403:6200:8876:2955:f1c5:68ee:212f:e12f)
2021-06-13 04:35:17 +0200da39a3ee5e6b4b0d(~textual@2403:6200:8876:2955:f1c5:68ee:212f:e12f) (Client Quit)
2021-06-13 04:35:18 +0200wei2912(~wei2912@112.199.250.21)
2021-06-13 04:35:45 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds)
2021-06-13 04:36:01 +0200curiousgay_(~quassel@178.217.208.8)
2021-06-13 04:36:10 +0200curiousgay_(~quassel@178.217.208.8) (Client Quit)
2021-06-13 04:36:55 +0200 <qrpnxz> anything in particular that made the devs go from ghc 8 to 9? (got a changelog?)
2021-06-13 04:37:02 +0200 <Cale> I also have to try to convince them to open source the firmware... for the sake of convenience it would be really nice to have an MPE mode, which I'd write myself if I could (I ended up writing a Lua script for moony.lv2 to convert channel-per-octave into MPE, but it's not as good as building it in would be)
2021-06-13 04:37:15 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-06-13 04:37:17 +0200 <Cale> qrpnxz: I guess LinearHaskell?
2021-06-13 04:37:31 +0200 <qrpnxz> what's that
2021-06-13 04:38:16 +0200 <Cale> It lets you restrict the number of times functions are allowed to use their arguments based on their type.
2021-06-13 04:38:41 +0200smokey991(sid369395@id-369395.brockwell.irccloud.com) ()
2021-06-13 04:39:03 +0200 <qrpnxz> so for example, does sum a = a + a use the argument twice?
2021-06-13 04:39:08 +0200 <Cale> yeah
2021-06-13 04:39:22 +0200 <qrpnxz> ohhhh, that's pretty nice, you can optimize a lot of it's only one use
2021-06-13 04:39:39 +0200 <Cale> Yeah, except that at least at present, it doesn't give you any additional optimisation.
2021-06-13 04:39:40 +0200 <qrpnxz> well, idk why you'd want it as part of the type
2021-06-13 04:40:00 +0200 <qrpnxz> alright thx i'll look more into it
2021-06-13 04:40:39 +0200 <Cale> I personally don't think it'll turn out to be very useful, and gives a fair amount of rope with which to hang yourself, but people are interested in the potential regardless.
2021-06-13 04:42:23 +0200 <Henson> Cale: cool, thanks for the info on the keyboard!
2021-06-13 04:42:27 +0200 <Cale> The most interesting example usages I've seen have all involved making various uses of unsafePerformIO safe, but they don't really buy you much more than the ST monad would.
2021-06-13 04:42:33 +0200unyu(~pyon@user/pyon)
2021-06-13 04:44:02 +0200 <Cale> (but slightly more terse syntax usually, you get to avoid do notation I guess)
2021-06-13 04:44:49 +0200da39a3ee5e6b4b0d(~textual@171.6.243.223)
2021-06-13 04:46:53 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 04:47:25 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 245 seconds)
2021-06-13 04:49:30 +0200Henson(~kvirc@23-233-1-122.cpe.pppoe.ca) (Quit: goodnight)
2021-06-13 04:49:43 +0200zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-06-13 04:50:14 +0200 <qrpnxz> i'm reading an article on this (https://blog.acolyer.org/2018/01/24/linear-haskell-practical-linearity-in-a-higher-order-polymorph… for reference), and it feels a LOT like ownership tbh. Because when you use a value multiple times essentially you are making an implicit copy of that value, so these types are essentially restricting your ability to copy the value, which is indeed rather useful in
2021-06-13 04:50:14 +0200 <qrpnxz> determining who has to (or can) destruct,drop,close,free,unlock,mutate etc. that value.
2021-06-13 04:50:19 +0200 <qrpnxz> I wonder if haskell just had something like Rust's Copy and Clone traits that you'd be able to do basically the same thing in many cases idk.
2021-06-13 04:53:59 +0200 <Cale> Yeah, they kind of picked... not the substructural set of operations that I'd be most interested in. Personally, I'm quite interested in stuff like Conal's "constrained categories", which translate pretty-much-arbitrary Haskell expressions into operations involving a bunch of subclasses of Category, and just leaving out constraints for the subclasses that let you duplicate values (and/or discard them, etc.) would then
2021-06-13 04:53:59 +0200 <Cale> be a better way to express substructural stuff like linearity/affineness/etc.
2021-06-13 04:55:47 +0200 <Cale> I'm not even sure it would have been much more complicated than LinearHaskell to build something like that into GHC, and I feel like it would in any case have gotten much more bang for the buck.
2021-06-13 04:55:59 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2021-06-13 04:56:10 +0200hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-13 04:57:22 +0200 <Cale> There are not a lot of practical combinator libraries that are exactly linear, but there's a lot of stuff which is somewhere in that direction, but perhaps more constrained, or a bit less.
2021-06-13 04:59:02 +0200hmmmas(~chenqisu1@183.217.200.246)
2021-06-13 04:59:39 +0200 <Cale> and the way they've rigged it up in LinearHaskell also kind of forces you into using unsafePerformIO to do anything really interesting, which is also kind of gross. They're trying too hard to overlap with the usual (->) type and that results in something which is less useful than you'd perhaps hope for.
2021-06-13 04:59:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-13 05:00:52 +0200 <Cale> (Usually I'd think you'd prefer to have a totally separate type from the type of ordinary Haskell functions, and just overload lambda to be able to produce values of your new type)
2021-06-13 05:01:44 +0200hiruji(~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Ping timeout: 252 seconds)
2021-06-13 05:02:08 +0200 <Cale> But we'll see, maybe someone will find some sort of killer app for LinearHaskell
2021-06-13 05:04:44 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-13 05:07:59 +0200hiruji(~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6)
2021-06-13 05:13:51 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 05:14:09 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-13 05:14:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
2021-06-13 05:14:45 +0200 <arahael> Given a date time, how do I format it given a particular format string and locale?
2021-06-13 05:14:55 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-13 05:15:10 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 05:15:16 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-13 05:15:33 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 05:15:40 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-13 05:16:16 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 244 seconds)
2021-06-13 05:17:01 +0200ubikium(~ubikium@2400:2200:3f7:6d04:f545:ef78:6130:411e)
2021-06-13 05:17:54 +0200 <janus> arahael: did you see https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Format-ISO8601.html ?
2021-06-13 05:19:05 +0200 <arahael> janus: That's mostly biased towards parsing, I think? I want to produce a human-friendly time, such as: "Saturday 12th June".
2021-06-13 05:21:28 +0200sheepduck(~sheepduck@2607:fea8:2a61:4800::ea20)
2021-06-13 05:22:21 +0200 <arahael> I think what I need is something like formatCalendarTime in `old-time`, but that's a deprecated module.
2021-06-13 05:23:26 +0200 <janus> araheal well i think it shouldn't be hard to make the serialization, you can use e.g. https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Calendar-OrdinalDate.html#v:mondaySta…
2021-06-13 05:23:37 +0200 <janus> and the month name surely must also be easy to get
2021-06-13 05:23:51 +0200 <janus> dunno if it is worse to make it yourself or use old-time...
2021-06-13 05:24:39 +0200 <janus> maybe easiest just to use https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Format.html#v:formatTime
2021-06-13 05:24:42 +0200 <arahael> Yeah, it shouldn't be that much work, I wonder how most people deal with time formatting.
2021-06-13 05:24:53 +0200 <janus> i just use iso8601 for everything ;)
2021-06-13 05:24:56 +0200 <arahael> Yeah, I looked at formatTime, but... How do you do the '12th"?
2021-06-13 05:26:26 +0200 <janus> that is so english-centric, i am kinda happy it isn't in 'time' ;) i see there is https://hackage.haskell.org/package/ordinal
2021-06-13 05:27:03 +0200 <arahael> janus: Yeah, so we're going back to "Manually, painstakingly, format it yourself, by hand". :(
2021-06-13 05:28:25 +0200 <janus> but are you sure your users would even appreciate the ordinal form? i know i always turn it off if i can
2021-06-13 05:28:52 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-06-13 05:29:05 +0200 <janus> it's not even available with strftime
2021-06-13 05:29:07 +0200 <arahael> janus: This is going to go into the string: "Come and meet us at <location> on Saturday 12th June at 11 AM!"
2021-06-13 05:29:30 +0200kiweun(~sheepduck@2607:fea8:2a61:4800::ea20)
2021-06-13 05:29:41 +0200sheepduck(~sheepduck@2607:fea8:2a61:4800::ea20) (Read error: Connection reset by peer)
2021-06-13 05:29:52 +0200 <arahael> So I was wanting to format the latter part of that string.
2021-06-13 05:30:32 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-13 05:31:29 +0200 <qrpnxz> rfc3339 gang
2021-06-13 05:31:30 +0200ubikium(~ubikium@2400:2200:3f7:6d04:f545:ef78:6130:411e) (Ping timeout: 268 seconds)
2021-06-13 05:31:36 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-06-13 05:32:19 +0200 <arahael> qrpnxz: That's not exactly "conversational", though.
2021-06-13 05:32:19 +0200 <qrpnxz> format you want looks like rfc1123
2021-06-13 05:32:31 +0200 <qrpnxz> see rfc1123 :)
2021-06-13 05:32:35 +0200 <janus> qrpnxz: is rfc3339 a subset of iso8601?
2021-06-13 05:32:46 +0200 <janus> looks good
2021-06-13 05:32:49 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2021-06-13 05:32:50 +0200Lord_of_Life_Lord_of_Life
2021-06-13 05:33:18 +0200 <qrpnxz> i think it's supposed to be the same, there's a good SO answer on a comparison between the two. I'm team rfc because ofc that's a std i can actually read xD
2021-06-13 05:33:23 +0200 <arahael> qrpnxz: Similar, except I want full names, and no year. :)
2021-06-13 05:33:41 +0200 <qrpnxz> sounds like a custom format
2021-06-13 05:33:42 +0200 <qrpnxz> gl
2021-06-13 05:33:55 +0200 <arahael> qrpnxz: Of course, trivially supported using the likes of strftime.
2021-06-13 05:34:18 +0200 <janus> qrpnxz: looks like neither of these have the ordinal ending https://hackage.haskell.org/package/time-http
2021-06-13 05:34:20 +0200 <qrpnxz> janus, from SO: "RFC 3339 is listed as a profile of ISO 8601" :) https://stackoverflow.com/questions/522251/whats-the-difference-between-iso-8601-and-rfc-3339-date…
2021-06-13 05:34:23 +0200 <janus> and that package includes 1123
2021-06-13 05:34:39 +0200 <janus> qrpnxz: right , that's what the rfc text says. dunno what a profile is
2021-06-13 05:34:57 +0200 <janus> but i guess it is better to use that name for it since it looks like iso8601 is way too big
2021-06-13 05:34:58 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
2021-06-13 05:35:02 +0200 <qrpnxz> probably effectively a subset
2021-06-13 05:35:24 +0200 <qrpnxz> or an instanciation
2021-06-13 05:36:47 +0200 <qrpnxz> another area go shines is time https://golang.org/pkg/time/#pkg-constants
2021-06-13 05:37:56 +0200 <janus> qrpnxz: is it really shining or is it just cutting the right corners ? ;) i see a problem already when saying "MST is -07:00" like they do there
2021-06-13 05:38:13 +0200 <qrpnxz> two different formats
2021-06-13 05:38:34 +0200 <qrpnxz> you pick
2021-06-13 05:39:25 +0200 <janus> right, but timezone names can change, and where does "MST" come from? what if it changes , and i give it a timestamp in a period where it had the old definition?
2021-06-13 05:39:48 +0200 <qrpnxz> MST just marks where the timezone goes in the format
2021-06-13 05:39:55 +0200 <qrpnxz> like Jan marks where the month goes
2021-06-13 05:40:10 +0200 <qrpnxz> and 02 marks the day and so on
2021-06-13 05:40:18 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-06-13 05:40:31 +0200 <qrpnxz> you can make your own custom format string quite easily
2021-06-13 05:40:37 +0200 <janus> ok, where does the mapping MST -> -07:00 take place? if it doesn't take place, why is MST mentioned in the docs?
2021-06-13 05:41:31 +0200 <janus> i understand that it works in 90% of the cases, probably comes from your local olson db
2021-06-13 05:41:32 +0200 <qrpnxz> maybe i don't understand the question. MST is GMT-0700, that's just what it is. Not sure what you are asking now
2021-06-13 05:42:05 +0200 <janus> i am saying that it is effectively not a "pure computation" because it comes from a database that is outside of go's control
2021-06-13 05:42:16 +0200 <qrpnxz> no it's in the lib
2021-06-13 05:42:31 +0200 <qrpnxz> you don't have to fetch it anywhere, it's not changing
2021-06-13 05:42:51 +0200 <janus> ok, so it can't handle DST changes then?
2021-06-13 05:43:19 +0200 <qrpnxz> i think it does, but DST produces different timezone codes
2021-06-13 05:43:36 +0200 <qrpnxz> like CST <-> CDT
2021-06-13 05:43:48 +0200 <qrpnxz> both central time, but one is DST and the other isnt
2021-06-13 05:44:24 +0200 <qrpnxz> 1:00 CST doesn't change meaning on what time of year you are in
2021-06-13 05:47:27 +0200 <arahael> So I'm using formatTime with the format string "%d", to get the day of the month, which I then convert to an integer, so that I can then get the Ordinal suffix for it and concat it.
2021-06-13 05:47:33 +0200 <arahael> Seems quite a lot.
2021-06-13 05:48:44 +0200 <arahael> Oh, and stripping spaces from it...
2021-06-13 05:48:52 +0200 <arahael> A bit of a mess.
2021-06-13 05:50:02 +0200 <arahael> I might as well just split my input string by '-' for the date parts.
2021-06-13 05:52:20 +0200 <arahael> Heh, Data.DateTime from datetime has this comment in the code: -- the craziness of the Haskell standard library date and time functions.
2021-06-13 05:52:42 +0200 <Cale> arahael: That sounds crazy, why not just go directly?
2021-06-13 05:52:50 +0200 <Cale> What are you starting with?
2021-06-13 05:54:06 +0200 <arahael> Cale: Unbelievably, just an ISO 8601 date.
2021-06-13 05:54:06 +0200 <davean> Yah, I mean you can just ask for the month
2021-06-13 05:54:10 +0200 <Cale> Usually you'll want to convert your UTCTime into a LocalTime in order to get the (local) Day from it, and then you can take that apart in various ways
2021-06-13 05:54:18 +0200da39a3ee_(~textual@171.6.243.223)
2021-06-13 05:54:36 +0200 <Cale> You'll need to specify which TimeZone you want to know the day in though, since otherwise it'd be ambiguous.
2021-06-13 05:54:38 +0200 <arahael> davean: But I don't want to ask for the date, the month, the day, the name of the day, the ordinal suffix of the day, etc, when I can just infer it all from the date itself.
2021-06-13 05:54:43 +0200 <arahael> Cale: Yeah, always local.
2021-06-13 05:55:06 +0200 <arahael> Cale: Taking it apart seems to be the *insane* bit in Haskell, though maybe I'm looking at the wrong module.
2021-06-13 05:55:13 +0200 <davean> arahael: except you're formating it out!
2021-06-13 05:55:23 +0200 <davean> arahael: I think you're totally confused
2021-06-13 05:55:23 +0200 <arahael> davean: In this particular instance, yes.
2021-06-13 05:55:30 +0200 <janus> arahael: what do you mean by "taking it apart" ? surely the iso8601 parsing is easy since it has already been written
2021-06-13 05:55:42 +0200 <Cale> toGregorian :: Day -> (Year, MonthOfYear, DayOfMonth)
2021-06-13 05:55:52 +0200 <Cale> is probably what you wanted?
2021-06-13 05:56:19 +0200 <Cale> Assuming that you're starting with a Day
2021-06-13 05:56:21 +0200 <arahael> Cale: I completely missed that since it's already in Gregorian... Yes, that's what I want.
2021-06-13 05:56:34 +0200 <arahael> Cale: Well, LocalTime has a Day.
2021-06-13 05:56:39 +0200 <Cale> yeah
2021-06-13 05:57:14 +0200 <arahael> That works nicely. :)
2021-06-13 05:57:50 +0200da39a3ee5e6b4b0d(~textual@171.6.243.223) (Ping timeout: 245 seconds)
2021-06-13 05:57:55 +0200 <Cale> A Day is meant to be an abstract notion of a day, and it's internally stored as the number of days since a particular day in 1858 :D
2021-06-13 05:59:30 +0200 <arahael> Makes sense. :) But... Does it support anything other than Gregorian (or Julian, even?)
2021-06-13 06:00:02 +0200 <davean> arahael: if you looked at how format was doing it you'd have found:
2021-06-13 06:00:06 +0200 <davean> mapGregorian :: Format (Integer, (Int, Int)) -> Format Day
2021-06-13 06:00:07 +0200 <Cale> There's the WeekDate stuff
2021-06-13 06:00:12 +0200 <davean> mapGregorian = mapMFormat (\(y, (m, d)) -> fromGregorianValid y m d) (\day -> (\(y, m, d) -> Just (y, (m, d))) $ toGregorian day)
2021-06-13 06:00:14 +0200 <Cale> which counts weeks of the year
2021-06-13 06:00:27 +0200 <janus> toModifiedJulianDay in https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Calendar.html#t:Day
2021-06-13 06:00:29 +0200 <pavonia> What happened o that particular day?
2021-06-13 06:00:34 +0200 <pavonia> *on
2021-06-13 06:00:35 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
2021-06-13 06:01:05 +0200 <arahael> davean: Where's mapGregorian? (And again, I dismissed all the 'gregorian' stuff as I didn't realise I had to convert calendarws)
2021-06-13 06:01:40 +0200 <janus> arahael: you don't have to "convert" calendars afaik, because the iso8601 parser will know that it is parsing a gregorian date
2021-06-13 06:02:02 +0200 <Cale> pavonia: https://groups.google.com/g/comp.os.vms/c/IMWn2Fg46VA has an answer of sorts for why it's that particular day
2021-06-13 06:02:05 +0200 <davean> arahael: the Format Day implimentation
2021-06-13 06:02:06 +0200 <janus> when you get the DayOfMonth and such, that is an integer that is also using the gregorian calendar
2021-06-13 06:02:13 +0200 <arahael> janus: Yes, that's what i was saying...
2021-06-13 06:02:15 +0200 <davean> arahael: which is how you were printing IOS8601
2021-06-13 06:02:42 +0200 <arahael> davean: I'm printing ISO 8601 by physically typing the characters in!
2021-06-13 06:02:51 +0200 <janus> arahael: but there is no conversion necessarily taking place. haskell is just abstracting the internal representation which isn't necessarily gregorian. for example a unix time isn't really gregorian
2021-06-13 06:03:26 +0200 <pavonia> Cale: Thanks. Was already reading about https://en.wikipedia.org/wiki/Great_Stink :D
2021-06-13 06:03:33 +0200 <janus> arahael: but there is no conversion necessarily taking place. haskell is just abstracting the internal representation which isn't necessarily gregorian. for example a unix time isn't really gregorian know what it means?
2021-06-13 06:03:36 +0200 <arahael> janus: I think we got our signals mixed up. Cale brought up 'toGregorgian", which turned out to be exactly what I wanted... I was saying I only dismissed that when reading the docs the first time because... I was *already* using gregorian!
2021-06-13 06:03:53 +0200 <monochrom> Haha I should have become an astronomer. My day starts at noon.
2021-06-13 06:04:15 +0200 <janus> araheal: but how do you know you were already using gregorian? the Day doesn't say that it is using that internally
2021-06-13 06:04:27 +0200 <monochrom> But I can be talked into "you were right to join computer science instead, CS grad student day starts at 4PM"
2021-06-13 06:04:27 +0200 <arahael> janus: Because I'm typing in the ****'ing date myself in gregorigan! :)
2021-06-13 06:04:47 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 06:04:59 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 252 seconds)
2021-06-13 06:05:22 +0200 <janus> arahael: but how? the Day constructor takes a ModifiedJulianDay
2021-06-13 06:05:40 +0200pe200012(~pe200012@183.63.73.36) (Ping timeout: 272 seconds)
2021-06-13 06:05:44 +0200 <arahael> janus: Yes. Perhaps I should have just ignored hackage and read the source code myself.
2021-06-13 06:06:01 +0200 <janus> so if you're typing a iso8601 and parsing that, you're only using gregorian because that is what iso8601 uses. but when you got your Day, you forgot about the fact that it was ever a gregorian
2021-06-13 06:06:47 +0200 <arahael> janus: Yeah, well, I didn't have my Day, I had a LocalTime.
2021-06-13 06:07:25 +0200derelict(~derelict@user/derelict) (Ping timeout: 272 seconds)
2021-06-13 06:08:18 +0200 <arahael> janus: And Day is documented in a completely different place. :) I was wondering: "Do I need to convert this to a UnixTime?".
2021-06-13 06:09:38 +0200 <arahael> janus: I also checked stackoverflow and other places, look at how much *code* is in https://stackoverflow.com/questions/4174372/haskell-date-parsing-and-formatting
2021-06-13 06:11:17 +0200 <arahael> Do we have a wiki or something where we consolidate all this documentation so that it's clearer to navigate/
2021-06-13 06:11:19 +0200 <arahael> ?
2021-06-13 06:11:41 +0200 <janus> there is wiki, it is easy to get a user
2021-06-13 06:11:49 +0200 <janus> or you can just send me some content and i can make a page for you
2021-06-13 06:12:26 +0200 <janus> you can also ask an SO question and answer it yourself, i kinda like that model
2021-06-13 06:14:23 +0200 <arahael> Perhaps I should think about doing a decent tutorial on the wiki.
2021-06-13 06:14:31 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 272 seconds)
2021-06-13 06:15:02 +0200ubikium(~ubikium@2400:2200:3f1:982e:b73d:c88d:7f8e:831b)
2021-06-13 06:16:02 +0200 <Cale> arahael: Yeah, the time library is actually really good and has most of what you'd ever need, but it takes a moment to get used to :)
2021-06-13 06:16:28 +0200 <janus> arahael: there is also a wikibook on haskell, you could add a chapter
2021-06-13 06:16:40 +0200 <arahael> janus: Another possibility.
2021-06-13 06:16:53 +0200 <arahael> Cale: Yeah, it's definitely not easy to dive in and see everything.
2021-06-13 06:17:50 +0200 <janus> check out this diagram https://wiki.haskell.org/File:Time-diagram.png
2021-06-13 06:17:59 +0200reumeth(~reumeth@user/reumeth)
2021-06-13 06:18:49 +0200 <davean> I don't think that diagram is quite right
2021-06-13 06:19:07 +0200 <janus> looks weird with "Day - Day" not being Void :P
2021-06-13 06:19:21 +0200 <arahael> janus: The best thing about that particular diagram is the "The following pages link to this file:", bringing up the Time docs.
2021-06-13 06:19:31 +0200thelounge92(~thelounge@cpe-23-240-28-18.socal.res.rr.com)
2021-06-13 06:19:34 +0200 <arahael> janus: All my searching was focused on either date, or datetime!
2021-06-13 06:19:42 +0200 <arahael> Those time docs are quite good.
2021-06-13 06:19:58 +0200 <davean> Pretty sure that diagram screws up the relation between AbsoluteTime and UTCTime janus
2021-06-13 06:20:18 +0200 <janus> i wouldn't call them docs on the wiki :P i mean, the diagram is on there
2021-06-13 06:20:40 +0200 <janus> would suck to make a library only for someone to make a bad diagram , put it on the wiki page, and now people tell you that your docs suck :P
2021-06-13 06:21:14 +0200 <janus> davean: thanks for the pointers! a shame, i like diagrams :P
2021-06-13 06:21:22 +0200 <arahael> janus: The back link is docs. :)
2021-06-13 06:21:37 +0200 <arahael> janus: https://wiki.haskell.org/Time
2021-06-13 06:22:18 +0200 <davean> janus: there is a function AbsoluteTime -> UTCTime but no map UTCTime -> AbsoluteTime specificly
2021-06-13 06:22:24 +0200 <janus> but documentation written mostly by Russell O'Connor in 2013. when people say "docs" don't they usually talk about the official ones?
2021-06-13 06:22:42 +0200tomsmeding(~tomsmedin@2a03:b0c0:0:1010::767:3001) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-13 06:23:20 +0200 <davean> janus: Some UTCTimes map to multiple AbsoluteTimes
2021-06-13 06:23:29 +0200 <davean> since UTCTime isn't monotonic
2021-06-13 06:24:24 +0200 <janus> why is UTC not monotonic? because of leap seconds?
2021-06-13 06:24:27 +0200Morrow_(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net)
2021-06-13 06:24:29 +0200 <davean> janus: yes
2021-06-13 06:24:41 +0200 <davean> which can go forward or backwards, so UTCTime repeats
2021-06-13 06:25:00 +0200 <janus> i wish there was a name for UTC-with-time-smearing?
2021-06-13 06:25:10 +0200 <davean> I mean just use AbsoluteTime
2021-06-13 06:25:13 +0200 <davean> TAI is pretty easy
2021-06-13 06:25:21 +0200 <davean> And its far more correct
2021-06-13 06:25:37 +0200 <davean> UTCTime is for display to humans
2021-06-13 06:25:45 +0200 <davean> computers should always just use time in TAI
2021-06-13 06:26:09 +0200 <arahael> janus: At this point, I'd have been happy with *any* docs. The hackage modules barely refer to each other except when they happen to use a type in another module.
2021-06-13 06:26:49 +0200 <janus> davean: ok, but in practice, if they don't use TAI , and they use UTC with time smearing, wouldn't it be easier to invent a new correct name for this variant, instead of rewriting everything to use TAI?
2021-06-13 06:27:03 +0200 <davean> janus: smearing varies
2021-06-13 06:27:06 +0200 <davean> so no, it wouldn't
2021-06-13 06:27:12 +0200MorrowM(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds)
2021-06-13 06:27:12 +0200 <davean> smearing is a huge mess
2021-06-13 06:27:21 +0200 <davean> So I just check the time at the time, and convert into TAI
2021-06-13 06:27:30 +0200 <davean> computers DO keep a monotonic clock
2021-06-13 06:27:35 +0200 <davean> since they can't possibly keep UTC correctly
2021-06-13 06:27:43 +0200 <davean> so I just access the monotonic clock, and get TAI out
2021-06-13 06:28:43 +0200hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-13 06:28:54 +0200 <janus> "TAI clock, if it exists. Note that it is unlikely to be set correctly, without due care and attention."
2021-06-13 06:28:57 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds)
2021-06-13 06:28:58 +0200 <janus> from https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Clock-TAI.html
2021-06-13 06:29:18 +0200 <davean> sure, which is why I use https://hackage.haskell.org/package/tai instead of time
2021-06-13 06:29:33 +0200 <janus> oh my
2021-06-13 06:29:39 +0200 <davean> That deals with the system details
2021-06-13 06:29:51 +0200 <janus> oh it's your own library :D
2021-06-13 06:29:54 +0200 <davean> Yes
2021-06-13 06:29:59 +0200 <davean> I've dealt with the time issues a lot
2021-06-13 06:30:16 +0200 <janus> space traveller?
2021-06-13 06:30:34 +0200 <glguy> aren't we all?
2021-06-13 06:30:35 +0200 <davean> as I said, the systems use mononic time, rarely TAI
2021-06-13 06:30:42 +0200 <davean> they present UTCTime
2021-06-13 06:30:57 +0200 <davean> You just have to align them
2021-06-13 06:31:07 +0200 <davean> janus: a second is a huge amount of time
2021-06-13 06:31:17 +0200 <davean> a smeared second causes a TON of issues
2021-06-13 06:31:34 +0200 <arahael> A second is long enough to crash all the eftpos terminals in my state. :)
2021-06-13 06:31:49 +0200 <davean> it might be mononic and continuous but it either drops a second or packs two times as much in
2021-06-13 06:31:56 +0200justBull(~justache@user/justache) (Excess Flood)
2021-06-13 06:31:59 +0200 <davean> arahael: right, a second is a big deal :)
2021-06-13 06:32:42 +0200 <janus> but isn't the whole point of time smearing that it is smeared out over such a long period that the delta will never grow close to a second?
2021-06-13 06:32:45 +0200justBull(~justache@user/justache)
2021-06-13 06:32:49 +0200teaSlurper(~chris@81.96.113.213)
2021-06-13 06:32:52 +0200 <davean> janus: depends on the smearing
2021-06-13 06:32:56 +0200 <davean> so ... no
2021-06-13 06:33:04 +0200 <davean> as I said, theres no specific smearing
2021-06-13 06:33:05 +0200 <arahael> davean: Yep, I just get sad at how it comes as a huge surprise even now, if the system depends on sub-second precision, why don't they do it properly? :(
2021-06-13 06:33:17 +0200 <arahael> janus: Sometimes it's smeared over "two" seconds
2021-06-13 06:33:39 +0200 <davean> janus: and even a second smeared over a day is pretty fucking obvious to anyone looking
2021-06-13 06:33:50 +0200 <davean> which isn't want anything does in practice
2021-06-13 06:34:12 +0200 <davean> so yah, mostly you get rediculous errors if you deal with UTCTime
2021-06-13 06:34:49 +0200arahaelnow finally has 'the xth day".
2021-06-13 06:34:58 +0200 <arahael> So... Now for the month! Another timesink!
2021-06-13 06:35:25 +0200 <arahael> Of course, I could simply write a 12-case switch, but blegh. This has surely been done.
2021-06-13 06:35:57 +0200 <davean> arahael: most people don't care to do their jobs well? I mean thats how people got in this situation in the first place
2021-06-13 06:36:13 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-13 06:36:56 +0200 <arahael> davean: The big problem is when responsibilities overlap or are split out. Collobrating with other components in your organisation about some technical issue that only happens maybe for a *second* once or twice every other year is a pretty big ask for many businesses.
2021-06-13 06:38:10 +0200HarveyPwca(~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Quit: Leaving)
2021-06-13 06:38:34 +0200 <davean> arahael: I mean they had to have a pretty big fundimental flaw to get there in the first place
2021-06-13 06:38:39 +0200 <davean> arahael: sure its hard to fix AFTER
2021-06-13 06:39:22 +0200 <arahael> davean: I'm convinced it's related to not only being a bit lazy, but also due to how software systems are partitioned today.
2021-06-13 06:39:35 +0200 <arahael> (In the organisations)
2021-06-13 06:39:47 +0200 <arahael> Ie, this is not just a technical issue, but also a social one.
2021-06-13 06:40:00 +0200 <janus> davean: your library needs a base bump to work on ghc 9, btw
2021-06-13 06:40:26 +0200 <davean> janus: lol, so I can't actually verify it on GHC 9 ATM because of package issues with GHC 9!
2021-06-13 06:40:36 +0200 <davean> janus: so uh, no, it doesn't need a bump :(
2021-06-13 06:40:48 +0200 <janus> :(
2021-06-13 06:40:50 +0200 <davean> I have to wait for the ecosystem to percolate
2021-06-13 06:41:01 +0200daveanshakes fist at sky
2021-06-13 06:41:25 +0200 <janus> huge amount of broken packages, just submitted 4 bump requests last week on the trustees tracker
2021-06-13 06:41:50 +0200 <davean> yah, there were a few issues, unrelated to GHC, that made the 9 transition difficult
2021-06-13 06:41:51 +0200arahaeluses formatTime to get the month name out.
2021-06-13 06:42:26 +0200 <davean> janus: for MOST configurations I think jail breaking it is fine
2021-06-13 06:42:47 +0200 <davean> janus: I just wasn't going to bump it until it was actually passing tests properly
2021-06-13 06:42:54 +0200 <davean> (across all targets, etc)
2021-06-13 06:48:54 +0200kiweun(~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 264 seconds)
2021-06-13 06:50:12 +0200nerdypepper(~nerdypepp@user/nerdypepper) (Remote host closed the connection)
2021-06-13 06:53:58 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 06:55:06 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
2021-06-13 06:56:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 07:04:15 +0200alx741(~alx741@181.196.69.243) (Quit: alx741)
2021-06-13 07:07:42 +0200da39a3ee_(~textual@171.6.243.223) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 07:09:48 +0200renzhi(~xp@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-06-13 07:14:46 +0200MQ-17J(~MQ-17J@8.21.10.116)
2021-06-13 07:15:27 +0200nerdypepper(~nerdypepp@152.67.162.71)
2021-06-13 07:27:13 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds)
2021-06-13 07:30:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-13 07:44:18 +0200chomwitt(~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295)
2021-06-13 07:47:34 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
2021-06-13 07:47:53 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-06-13 07:48:51 +0200sheepduck(~sheepduck@2607:fea8:2a61:4800::ea20)
2021-06-13 07:49:18 +0200aerona(~aerona@2600:6c54:4600:f300:6de7:8f27:ad87:4107) (Quit: Leaving)
2021-06-13 07:51:36 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-06-13 07:52:03 +0200Morrow_(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds)
2021-06-13 07:52:25 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 245 seconds)
2021-06-13 07:53:42 +0200sheepduck(~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 264 seconds)
2021-06-13 07:54:18 +0200haskl(~haskeller@2601:643:897f:561d::af3) (Ping timeout: 264 seconds)
2021-06-13 07:55:50 +0200anandprabhu(~anandprab@87.201.97.214)
2021-06-13 08:01:44 +0200Bartosz(~textual@24.35.90.211)
2021-06-13 08:03:40 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-06-13 08:04:07 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-13 08:05:00 +0200Adran(adran@botters/adran) (Quit: Este é o fim.)
2021-06-13 08:11:10 +0200benin036(~benin@183.82.176.84) (Ping timeout: 245 seconds)
2021-06-13 08:11:29 +0200benin036(~benin@183.82.176.166)
2021-06-13 08:12:00 +0200MQ-17J(~MQ-17J@8.21.10.116) (Remote host closed the connection)
2021-06-13 08:12:16 +0200Adran(~adran@botters/adran)
2021-06-13 08:12:16 +0200MQ-17J(~MQ-17J@8.21.10.116)
2021-06-13 08:15:21 +0200haskl(~haskeller@2601:643:897f:561d::af3)
2021-06-13 08:16:12 +0200adios(~adios@244.92.151.186.static.intelnet.net.gt)
2021-06-13 08:21:56 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-06-13 08:27:12 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 08:31:09 +0200amahl(~amahl@dxv5skyhc49fswhfjlcpy-3.rev.dnainternet.fi)
2021-06-13 08:34:22 +0200fvr(uid503686@id-503686.highgate.irccloud.com) ()
2021-06-13 08:34:33 +0200fvr(uid503686@id-503686.highgate.irccloud.com)
2021-06-13 08:37:49 +0200sheepduck(~sheepduck@2607:fea8:2a61:4800::ea20)
2021-06-13 08:40:25 +0200qbt(~edun@user/edun)
2021-06-13 08:40:25 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-13 08:40:38 +0200xff0x(~xff0x@2001:1a81:53bf:ae00:b6fb:e579:3973:61d4) (Ping timeout: 252 seconds)
2021-06-13 08:40:58 +0200zmt00(~zmt00@user/zmt00) (Quit: Gone.)
2021-06-13 08:42:38 +0200xff0x(~xff0x@2001:1a81:53da:9800:7857:139c:679e:1591)
2021-06-13 08:47:47 +0200sheepduck(~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 252 seconds)
2021-06-13 08:48:44 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
2021-06-13 08:49:58 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-06-13 08:50:23 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
2021-06-13 08:54:02 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-06-13 08:54:22 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
2021-06-13 08:58:42 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2021-06-13 09:00:07 +0200matsurago(~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp)
2021-06-13 09:01:05 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
2021-06-13 09:02:00 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-06-13 09:02:57 +0200sheepduck(~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-06-13 09:03:01 +0200xff0x(~xff0x@2001:1a81:53da:9800:7857:139c:679e:1591) (Ping timeout: 268 seconds)
2021-06-13 09:04:49 +0200xff0x(~xff0x@2001:1a81:53da:f000:a10f:4223:ab2e:3175)
2021-06-13 09:05:06 +0200ubikium(~ubikium@2400:2200:3f1:982e:b73d:c88d:7f8e:831b) (Ping timeout: 264 seconds)
2021-06-13 09:05:21 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
2021-06-13 09:09:09 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 09:11:33 +0200haskl(~haskeller@2601:643:897f:561d::af3) (Remote host closed the connection)
2021-06-13 09:11:50 +0200haskl(~haskeller@2601:643:897f:561d::af3)
2021-06-13 09:13:32 +0200haskl(~haskeller@2601:643:897f:561d::af3) (Remote host closed the connection)
2021-06-13 09:13:49 +0200haskl(~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693)
2021-06-13 09:14:29 +0200nerdypepper(~nerdypepp@152.67.162.71) (Changing host)
2021-06-13 09:14:29 +0200nerdypepper(~nerdypepp@user/nerdypepper)
2021-06-13 09:19:22 +0200notzmv(~zmv@user/notzmv)
2021-06-13 09:21:56 +0200 <maerwald> is there a function to get a temporary filename (without creating it)?
2021-06-13 09:22:11 +0200wonko(~wjc@62.115.229.50)
2021-06-13 09:27:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 09:30:43 +0200xff0x(~xff0x@2001:1a81:53da:f000:a10f:4223:ab2e:3175) (Ping timeout: 272 seconds)
2021-06-13 09:32:01 +0200xff0x(~xff0x@2001:1a81:53db:5a00:806f:9a3:56a7:aca6)
2021-06-13 09:35:50 +0200beka(~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection)
2021-06-13 09:36:19 +0200beka(~beka@104-244-27-23.static.monkeybrains.net)
2021-06-13 09:41:45 +0200beka(~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection)
2021-06-13 09:42:39 +0200beka(~beka@104-244-27-23.static.monkeybrains.net)
2021-06-13 09:42:42 +0200amahl(~amahl@dxv5skyhc49fswhfjlcpy-3.rev.dnainternet.fi) (Remote host closed the connection)
2021-06-13 09:44:25 +0200xff0x(~xff0x@2001:1a81:53db:5a00:806f:9a3:56a7:aca6) (Ping timeout: 244 seconds)
2021-06-13 09:45:12 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 09:45:37 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-06-13 09:46:13 +0200xff0x(~xff0x@2001:1a81:53db:9400:2ec8:4cb:1537:c74)
2021-06-13 09:46:53 +0200Peng7(~Peng@188.233.111.108)
2021-06-13 09:46:53 +0200 <Peng7> /!\ THΙЅ СΗANΝEⅬ ᎻAS МⲞVΕⅮ ТO IRϹ.LIBEᎡА.CዘAᎢ #HᎪΜᖇΑᎠIⲞ ⁄!\
2021-06-13 09:46:53 +0200Peng7(~Peng@188.233.111.108) (K-Lined)
2021-06-13 09:48:04 +0200 <Rembane_> maerwald: Do you want the name but not the file?
2021-06-13 09:48:36 +0200 <maerwald> Rembane_: yeah
2021-06-13 09:48:58 +0200 <maerwald> I want the juice, not the fruit
2021-06-13 09:49:06 +0200 <Rembane_> maerwald: Do you care at all about the shape of the name? Can it be ugly?
2021-06-13 09:49:21 +0200 <maerwald> it has to be *valid*
2021-06-13 09:49:28 +0200 <maerwald> which isn't that easy on windows
2021-06-13 09:49:41 +0200 <maerwald> otherwise you run it through `makeValid`
2021-06-13 09:50:03 +0200 <Rembane_> Are dashes valid in file names on Windows? Because if they are, you could generate an UUID that's a function of time.
2021-06-13 09:50:18 +0200 <Rembane_> And if they aren't, you could still use an UUID but remove the dashes.
2021-06-13 09:50:58 +0200poljar1(~poljar@93-139-36-109.adsl.net.t-com.hr)
2021-06-13 09:51:01 +0200 <Vq> Is going beyond 8+3 filenames still an extension? Could be tricky with so short filenames.
2021-06-13 09:52:22 +0200poljar(~poljar@93-139-68-198.adsl.net.t-com.hr) (Ping timeout: 265 seconds)
2021-06-13 09:56:50 +0200 <maerwald> filename length is a problem on windows
2021-06-13 09:57:36 +0200 <Rembane_> Is 8+3 still the max length?
2021-06-13 09:57:54 +0200 <maerwald> that depends on the path length of the temporary system directory
2021-06-13 09:59:32 +0200 <Rembane_> That's way too exciting.
2021-06-13 10:02:02 +0200 <xsperry> Rembane_, 260 should be safe (IIRC there's a way to go beyond that, but it requires registry tweaks). https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-vds/9d39e835-514b-4308-a3f9-d4a6cb…
2021-06-13 10:02:19 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
2021-06-13 10:04:39 +0200 <xsperry> of course that's the whole path, there's no specific length limit for filename alone AFAIK
2021-06-13 10:05:04 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-06-13 10:06:16 +0200jasonm(~bc817c21@217.29.117.252)
2021-06-13 10:06:38 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 244 seconds)
2021-06-13 10:07:03 +0200fendor_fendor
2021-06-13 10:07:39 +0200hendursa1(~weechat@user/hendursaga)
2021-06-13 10:07:40 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-13 10:08:00 +0200 <jasonm> hi. is there a scanf equivalent for haskell? that takes an actual string. there's scanf, but it works with template haskell
2021-06-13 10:08:27 +0200 <jasonm> (I'm working with config files that, among other things, includes user supplied scanf string)
2021-06-13 10:08:30 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-13 10:08:54 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 10:08:55 +0200 <Rembane_> jasonm: There's a bad one because you throw all type safety out of the window.
2021-06-13 10:08:55 +0200mikoto-c1(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-13 10:09:28 +0200 <Rembane_> jasonm: Nevermind, I mixed it up with printf.
2021-06-13 10:09:40 +0200 <[exa]> jasonm: using attoparsec is usually faster and much more convenient
2021-06-13 10:10:04 +0200 <jasonm> [exa], but I'd have to rewrite scanf basically
2021-06-13 10:10:23 +0200 <[exa]> do you have user-specified format strings or something?
2021-06-13 10:10:33 +0200 <jasonm> yes, I actually said that above :)
2021-06-13 10:10:34 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 252 seconds)
2021-06-13 10:10:41 +0200 <[exa]> ah sorry I just kinda arrived :D
2021-06-13 10:11:38 +0200 <[exa]> hm, like, okay, that's hard
2021-06-13 10:12:18 +0200 <[exa]> what would be the higher purpose?
2021-06-13 10:12:21 +0200 <jasonm> np. can scanf package work with strings? this is an example from their page: scanf [fmt|Hello %s|] "Hello world!" :: Maybe (String :+ ())
2021-06-13 10:12:40 +0200 <nshepperd> you might need to write your own scanf
2021-06-13 10:12:42 +0200 <jasonm> I am working with a config file that, among other things, includes scanf string
2021-06-13 10:12:43 +0200 <Rembane_> How much work is it to map the scanf "commands" to some series of attoparsec combinators?
2021-06-13 10:12:55 +0200 <nshepperd> either that or call out to C. if you need compatibility
2021-06-13 10:14:12 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 10:15:01 +0200 <[exa]> jasonm: what would happen if the user attempts buffer overflow by specifying "%d%d%d%d%d%d.........." ?
2021-06-13 10:16:47 +0200 <jasonm> bad things.. they assume cooperation of the user. that's why it be better if there was a pure haskell version, i'd get a nice error instead of memory corruption or segfault
2021-06-13 10:18:43 +0200 <aerkenemesis> jasonm I would use FFI for that
2021-06-13 10:19:07 +0200 <maerwald> Can you tell stack to use a different msys2?
2021-06-13 10:19:17 +0200tomsmeding(~tomsmedin@tomsmeding.com)
2021-06-13 10:21:08 +0200 <siers> how do people usually represent that only As are present in a list if you have data D = A | B?
2021-06-13 10:22:03 +0200 <siers> ah, there's even no A type like in scala, so you can't use that for a phantom type. so perhaps this is not a good question then
2021-06-13 10:22:04 +0200zaquest(~notzaques@5.128.210.178)
2021-06-13 10:22:23 +0200 <Rembane_> siers: What's the problem you really are trying to solve?
2021-06-13 10:22:47 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-13 10:23:08 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-06-13 10:23:16 +0200 <jasonm> D is a type, A is one of two possible values of D
2021-06-13 10:23:17 +0200 <siers> Rembane_, I have history with two entries and I want to filter and store only "A"s. If I use the D type, I will later have to make a function that handles the two cases though I care only about one.
2021-06-13 10:23:45 +0200 <siers> I guess I can move all of A's data into its own data and then D will only represent the discrimination
2021-06-13 10:24:02 +0200 <jasonm> your type is equivalent to data Bool = True | False
2021-06-13 10:24:12 +0200 <Rembane_> siers: Something like: filter (\case; A -> True; _ -> False) [{- list of As and Bs -}]
2021-06-13 10:24:55 +0200 <siers> I'd never seen an inline case, cool
2021-06-13 10:25:18 +0200 <tomsmeding> if you want type-level evidence of having only A's in a list, you need to reflect the information of "being A" on the type level
2021-06-13 10:25:21 +0200 <Rembane_> You need to activate LambdaCase, but it's worth it imo
2021-06-13 10:25:40 +0200TheRAtTheRAt_AWAY
2021-06-13 10:25:42 +0200TheRAt_AWAYTheRAt
2021-06-13 10:25:57 +0200 <tomsmeding> e.g. data D a where A :: D 'True ; B :: D 'False -- where I'm using DataKinds so that 'a' has kind Bool
2021-06-13 10:26:29 +0200 <tomsmeding> then a list of D 'True can contain only As, but you can't have a list of whatevers anymore
2021-06-13 10:26:35 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
2021-06-13 10:26:37 +0200 <maerwald> tomsmeding: yes... and in the end you'll still write your own filter function that just happens to then manipulate the types, which is one of those instances where I find type level programming pointless
2021-06-13 10:26:42 +0200 <maerwald> because you can still mess up
2021-06-13 10:26:52 +0200 <tomsmeding> but you can't mess up here?
2021-06-13 10:26:58 +0200 <tomsmeding> you can't stuff a B in a list of D 'True
2021-06-13 10:27:51 +0200 <siers> maerwald, and also you won't have to handle the cases when consuming
2021-06-13 10:28:08 +0200 <tomsmeding> you do still have to write your own filter function, but aside from skipping items / putting them in the wrong order (which the types do not prohibit), you can't put items in the wrong list
2021-06-13 10:28:18 +0200 <maerwald> siers: you convert to a different type then
2021-06-13 10:28:44 +0200 <siers> tomsmeding, pretty cool, that was kind of what I was looking for
2021-06-13 10:28:49 +0200 <tomsmeding> which is equivalent, I guess? having my GADT or instead two data types is kind of the same thing with different syntax
2021-06-13 10:29:19 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-06-13 10:29:26 +0200 <siers> maerwald, I was thinking that is the saner of options
2021-06-13 10:29:30 +0200 <tomsmeding> siers: if you want a list of "either A or B", with my GADT you now have to do wrap them though
2021-06-13 10:29:55 +0200 <siers> maerwald, I still want to know what's the alternative, crazier solution :)
2021-06-13 10:30:00 +0200 <tomsmeding> data Some f where Some :: f a -> Some f -- or alternatively, same meaning different syntax: data Some f = forall a. Some (f a)
2021-06-13 10:30:04 +0200 <tomsmeding> or use:
2021-06-13 10:30:05 +0200 <tomsmeding> @hackage some
2021-06-13 10:30:05 +0200 <lambdabot> https://hackage.haskell.org/package/some
2021-06-13 10:31:03 +0200__monty__(~toonn@user/toonn)
2021-06-13 10:31:33 +0200 <tomsmeding> which makes Some a newtype using some unsafeCoerce magic
2021-06-13 10:32:46 +0200 <tomsmeding> siers: to answer your original question, I guess: for most people that's making two datatypes, data A = A and data B = B, and having a function splitD :: [D] -> ([A], [B])
2021-06-13 10:32:58 +0200 <jasonm> can Some be used to have a list of types that implement some typeclass?
2021-06-13 10:32:59 +0200 <tomsmeding> and for the people that like type-level trickery, the GADT solution that I described
2021-06-13 10:33:07 +0200Rembane_Rembane
2021-06-13 10:33:21 +0200 <tomsmeding> jasonm: do you have an example?
2021-06-13 10:33:47 +0200 <siers> "mkSome" :D funny... is Some like a Proxy? I don't yet understand what it does
2021-06-13 10:34:05 +0200MQ-17J(~MQ-17J@8.21.10.116) (Ping timeout: 245 seconds)
2021-06-13 10:34:06 +0200 <tomsmeding> siers: 'Some Maybe' is a type that contains a 'Maybe a' for some existential 'a'
2021-06-13 10:34:07 +0200 <jasonm> tomsmeding, having a list of Show a => [a], for example. existential types can be used for this
2021-06-13 10:34:40 +0200 <tomsmeding> siers: in this case, with my GADT-based D, you can have a list of 'Some D' where each item is a 'D a' for some existential 'a' -- i.e. either 'True or 'False in this case
2021-06-13 10:34:45 +0200matsurago(~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp) (Quit: Leaving)
2021-06-13 10:35:06 +0200 <siers> tomsmeding, it's starting to make sense
2021-06-13 10:35:15 +0200 <siers> the some part // the D a part is clear
2021-06-13 10:35:23 +0200hmmmas(~chenqisu1@183.217.200.246)
2021-06-13 10:35:31 +0200 <tomsmeding> it's not like a Proxy in that a Proxy has only a phantom type variable; Some carries data but hides one type variable behind an existential
2021-06-13 10:37:09 +0200 <tomsmeding> but you don't have to use Some for your D; you can also directly write: data SomeD where SomeD :: D a -> SomeD -- or equivalently: data SomeD = forall a. SomeD (D a)
2021-06-13 10:37:14 +0200 <siers> but if TagInt :: Tag Int, then shouldn't Some TagInt be Some Tag?
2021-06-13 10:37:16 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Remote host closed the connection)
2021-06-13 10:37:30 +0200 <tomsmeding> siers: is TagInt a constructor of a GADT named Tag?
2021-06-13 10:37:39 +0200 <maerwald> tomsmeding: your example requires using a different type... I was thinking of type families
2021-06-13 10:37:44 +0200 <tomsmeding> then yes Some TagInt :: Some Tag
2021-06-13 10:37:45 +0200 <siers> tomsmeding, ah, gotcha
2021-06-13 10:38:06 +0200 <siers> I'm not used to data .. where syntax
2021-06-13 10:38:40 +0200 <tomsmeding> jasonm: (sorry missed your message) no for that you have to write a custom GADT
2021-06-13 10:39:06 +0200 <jasonm> ok
2021-06-13 10:39:39 +0200 <tomsmeding> or, I guess, Some (Product (Has Show) []), where Product is from Data.Functor.Product, and data Has c a where Has :: c a => Has c a
2021-06-13 10:39:54 +0200 <tomsmeding> (using ConstraintKinds to pass a constraint to the type variable 'c' of Has)
2021-06-13 10:40:06 +0200 <tomsmeding> but at that point just write a custom GADT :p
2021-06-13 10:40:11 +0200yoctocell(~yoctocell@h87-96-130-155.cust.a3fiber.se)
2021-06-13 10:40:45 +0200 <tomsmeding> siers: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/gadt.html?highlight=gadts
2021-06-13 10:40:51 +0200 <tomsmeding> maerwald: I'm not sure I see how?
2021-06-13 10:42:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
2021-06-13 10:43:04 +0200 <siers> tomsmeding, cool link
2021-06-13 10:43:17 +0200 <tomsmeding> siers: the ghc user's guide is underappreciated
2021-06-13 10:43:35 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 10:44:42 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:b19b:35e2:2fd0:444d)
2021-06-13 10:44:46 +0200tomsmeding(~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-13 10:46:06 +0200tomsmeding(~tomsmedin@tomsmeding.com)
2021-06-13 10:48:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-13 10:48:09 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2021-06-13 10:48:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 268 seconds)
2021-06-13 10:49:31 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
2021-06-13 10:50:34 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-13 10:53:14 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-13 10:54:58 +0200fendor_(~fendor@77.119.131.227.wireless.dyn.drei.com)
2021-06-13 10:57:57 +0200fendor(~fendor@91.141.0.106.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
2021-06-13 11:00:07 +0200berberman(~berberman@user/berberman)
2021-06-13 11:00:42 +0200 <maerwald> tomsmeding: yeah, on second thought... me neither
2021-06-13 11:01:02 +0200 <tomsmeding> :)
2021-06-13 11:01:30 +0200berberman_(~berberman@user/berberman) (Ping timeout: 264 seconds)
2021-06-13 11:02:43 +0200neceve(~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130)
2021-06-13 11:03:06 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 11:06:54 +0200xff0x(~xff0x@2001:1a81:53db:9400:2ec8:4cb:1537:c74) (Ping timeout: 264 seconds)
2021-06-13 11:07:50 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-06-13 11:08:22 +0200xff0x(~xff0x@2001:1a81:53dc:de00:96fb:36f9:fddc:a0cb)
2021-06-13 11:08:26 +0200hseg(~gesh@185.120.126.41)
2021-06-13 11:10:28 +0200da39a3ee5e6b4b0d(~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a)
2021-06-13 11:11:07 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-13 11:14:00 +0200 <hseg> Hi. I want a function :: Semigroup v => (k -> v -> [l]) -> Map k v -> Map l v that replaces all (k,v) pairs in the map by their image, then collects them all, sconcat'ing if there are duplicate keys
2021-06-13 11:14:13 +0200 <hseg> The current way I have of doing this is fromListWith (<>) . toList . traverseWithKey f
2021-06-13 11:14:50 +0200 <hseg> but a) am unsure whether this will fuse away the intermediate list and b) seems like an awkward way of doing things
2021-06-13 11:14:56 +0200 <hseg> am I missing something?
2021-06-13 11:15:21 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
2021-06-13 11:15:46 +0200 <hseg> (in fact, this is the unary case of what is actually a parametrized binary op on Maps in my use case)
2021-06-13 11:16:31 +0200 <hseg> (ie convolveF :: (_, Foldable f, Semigroup v) => (i -> j -> f k) -> Map i v -> Map j v -> Map k v
2021-06-13 11:16:59 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-06-13 11:18:25 +0200 <tomsmeding> hseg: that function doesn't seem to typecheck
2021-06-13 11:18:48 +0200 <hseg> bc of the hole in the context?
2021-06-13 11:19:05 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
2021-06-13 11:19:06 +0200 <c_wraith> because traverseWithKey is returning a list of maps
2021-06-13 11:19:43 +0200 <hseg> ah oops
2021-06-13 11:20:52 +0200 <hseg> yeah, ig that intermediate toList should be map toList ?
2021-06-13 11:21:51 +0200 <hseg> ... foldMap toList
2021-06-13 11:21:54 +0200 <c_wraith> maybe concatMap?
2021-06-13 11:22:01 +0200 <hseg> concatMap, right
2021-06-13 11:22:15 +0200 <hseg> (though for lists those coincide, right?
2021-06-13 11:22:24 +0200 <c_wraith> yeah, those two are the same in that case
2021-06-13 11:23:24 +0200 <c_wraith> in that case, I can basically guarantee the intermediate lists are not getting fused away
2021-06-13 11:23:30 +0200 <hseg> hrm... a moment, I made a mistake in my type tetris
2021-06-13 11:23:33 +0200tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-06-13 11:23:45 +0200 <hseg> (the traversal is modifying the values, not the keys)
2021-06-13 11:23:58 +0200 <hseg> but the general point is clear
2021-06-13 11:24:31 +0200 <hseg> ig that containers doesn't provide a clean, quick way of doing this then?
2021-06-13 11:24:55 +0200 <hseg> and that i need to use monoidal-containers instead?
2021-06-13 11:24:57 +0200 <c_wraith> Not clean, but foldlWithKey' would be efficient.
2021-06-13 11:25:22 +0200 <c_wraith> though it doesn't do a thing for your binary case
2021-06-13 11:25:48 +0200 <hseg> oh well. it's what I get for abusing a container outside its intended use case
2021-06-13 11:26:25 +0200 <hseg> Map k v is meant to be "v-valued container keyed by k", not "v-valuation on k values"
2021-06-13 11:28:14 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-13 11:28:25 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-13 11:29:19 +0200 <hseg> ... actually, instead of destructing+reconstructing, could just unionsWith (<>)
2021-06-13 11:29:28 +0200 <hseg> so at least there's that
2021-06-13 11:29:56 +0200 <tomsmeding> which is, then, probably the best you'll get
2021-06-13 11:30:06 +0200 <hseg> ... and that's yet another thing Map has that HashMap doesn't *frustration*
2021-06-13 11:30:12 +0200 <hseg> yeah, ig
2021-06-13 11:31:30 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 264 seconds)
2021-06-13 11:32:14 +0200azeem(~azeem@176.201.21.98)
2021-06-13 11:33:32 +0200teaSlurper(~chris@81.96.113.213)
2021-06-13 11:33:45 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-06-13 11:35:17 +0200cheater(~Username@user/cheater) (Quit: (BitchX) A gentleman is one who knows how to play the bagpipes, but chooses not to.)
2021-06-13 11:38:08 +0200 <hseg> ... ok, so the "solution" I began with doesn't even work, since it modifies the values, not the keys
2021-06-13 11:38:09 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2021-06-13 11:38:29 +0200 <hseg> and indeed, I don't see a traversal in containers that permits altering the keys
2021-06-13 11:38:49 +0200 <hseg> like, except mapKeys
2021-06-13 11:41:10 +0200 <hseg> and even with that, I can end up with a Map (f k) v, but with no way of distributing that f over Map
2021-06-13 11:42:31 +0200 <tomsmeding> because in terms of a tree data structure, that operation makes no sense anywah
2021-06-13 11:42:33 +0200 <tomsmeding> *anyway
2021-06-13 11:43:05 +0200 <tomsmeding> you basically can't do better than iterating over the tree and building a new one, which is exactly what the approach that goes via a list does
2021-06-13 11:43:08 +0200 <c_wraith> the binary version is a cartesian product anyway. might as well perform it on lists
2021-06-13 11:43:33 +0200 <hseg> fair. am being myopic
2021-06-13 11:43:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 11:47:29 +0200L29AhL29Ah[XMPP]
2021-06-13 11:47:30 +0200cheater(~Username@user/cheater)
2021-06-13 11:48:44 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 252 seconds)
2021-06-13 11:50:03 +0200rusua(uid124537@id-124537.highgate.irccloud.com)
2021-06-13 11:50:34 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-06-13 11:51:17 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com)
2021-06-13 11:51:31 +0200azeem(~azeem@176.201.21.98) (Read error: Connection reset by peer)
2021-06-13 11:52:35 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
2021-06-13 11:53:28 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-13 11:53:50 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 11:55:14 +0200bfrk(~bfrk@200116b845b21700ca15fbad8d1b9d07.dip.versatel-1u1.de)
2021-06-13 11:55:49 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net)
2021-06-13 11:58:33 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-13 12:00:21 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 12:00:30 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-06-13 12:01:20 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 12:04:46 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-13 12:07:25 +0200hulo(~hulo@182.18.206.5)
2021-06-13 12:08:26 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 12:08:47 +0200hulo(~hulo@182.18.206.5) ()
2021-06-13 12:14:05 +0200beka(~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 245 seconds)
2021-06-13 12:17:29 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-06-13 12:22:39 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-13 12:25:10 +0200sudden(~cat@h-98-128-128-173.A351.priv.bahnhof.se) (Quit: Lost terminal)
2021-06-13 12:25:33 +0200sudden(~cat@h-98-128-128-173.A351.priv.bahnhof.se)
2021-06-13 12:27:26 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 12:28:45 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 12:30:54 +0200oxide(~lambda@user/oxide) (Ping timeout: 265 seconds)
2021-06-13 12:32:07 +0200blankhart(~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net)
2021-06-13 12:35:47 +0200gedda(~gedda@user/gedda)
2021-06-13 12:36:31 +0200da39a3ee5e6b4b0d(~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 12:36:47 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
2021-06-13 12:37:38 +0200 <gedda> is there a difference in lazyness in `f foo = case foo of ...` vs pattern matching on foo directly?
2021-06-13 12:37:53 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
2021-06-13 12:38:44 +0200 <gedda> oh wow first result on google gave me the answer smh
2021-06-13 12:40:10 +0200 <maerwald> gedda: I don't think so (in this case)
2021-06-13 12:40:49 +0200 <aerkenemesis> I'm looking to discuss CI using nix flakes, so step forward if that's something that floats your boat
2021-06-13 12:41:12 +0200 <maerwald> gedda: but if you're using -XStrict, then yes
2021-06-13 12:41:30 +0200 <gedda> maerwald, apparently pattern matching gets transformed into cases in core, just like if's
2021-06-13 12:41:39 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-06-13 12:41:48 +0200 <gedda> maerwald, interesting, but not -XStrictData i presume?
2021-06-13 12:42:05 +0200 <maerwald> StrictData is something entirely different
2021-06-13 12:42:33 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds)
2021-06-13 12:42:58 +0200 <gedda> Yep, I'm just mixing things up sorry
2021-06-13 12:43:08 +0200 <maerwald> oh wait, no I misread... it's the same for Strict too
2021-06-13 12:43:25 +0200 <maerwald> I was thinking of f = \foo -> case foo of
2021-06-13 12:43:40 +0200 <maerwald> I think that's different under -XStrict than f foo
2021-06-13 12:44:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 12:44:54 +0200 <gedda> is -XStrict actually useful in production somewhere? feels like more of a flag for testing purposes
2021-06-13 12:45:29 +0200xkuru(~xkuru@user/xkuru)
2021-06-13 12:46:11 +0200 <maerwald> gedda: https://github.com/yesodweb/wai/pull/752#issuecomment-501531386
2021-06-13 12:49:29 +0200bor0(~boro@user/bor0)
2021-06-13 12:50:01 +0200 <maerwald> I've started using it in my own projects too... the times it causes problems are rather obvious ones
2021-06-13 12:50:12 +0200 <maerwald> e.g. some monadic combinators
2021-06-13 12:50:17 +0200hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-13 12:50:35 +0200 <maerwald> and when you want fusion etc. you also don't want it
2021-06-13 12:51:26 +0200 <gedda> yeah i would believe the performance angle is the one that allows for XStrict
2021-06-13 12:51:38 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 272 seconds)
2021-06-13 12:52:27 +0200 <maerwald> well, it can worsen performance too
2021-06-13 12:53:14 +0200 <maerwald> but I feel... if you rely on huge performance gain based on the fact that a function argument hides a huge computation... either it's a "combinator" library (like lens) or you're doing something odd
2021-06-13 12:54:39 +0200ubikium(~ubikium@2400:2200:3f7:8d39:b162:d489:71fa:a323)
2021-06-13 12:55:06 +0200 <maerwald> it might blow up sooner or later anyway
2021-06-13 12:55:37 +0200lambdabot(~lambdabot@haskell/bot/lambdabot) (Quit: brb)
2021-06-13 12:55:46 +0200lambdabot(~lambdabot@haskell/bot/lambdabot)
2021-06-13 12:58:08 +0200pe200012(~pe200012@120.236.162.19)
2021-06-13 12:58:29 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-06-13 12:59:12 +0200nerdypepper(~nerdypepp@user/nerdypepper) (Quit: bye)
2021-06-13 13:00:10 +0200pkkm(~pkkm@dgs4.neoplus.adsl.tpnet.pl)
2021-06-13 13:00:55 +0200 <maerwald> anything non-trivial doesn't fuse easily anyway (look at what lengths libraries like streamly have to go to make fusion work... and then it easily breaks with a new GHC version)
2021-06-13 13:01:38 +0200 <maerwald> so I don't buy the "better performance with laziness" argument, because you have to specifically engineer for it
2021-06-13 13:07:51 +0200nf(~n@monade.li) (Quit: Fairfarren.)
2021-06-13 13:09:26 +0200anandprabhu(~anandprab@87.201.97.214) (Quit: Leaving)
2021-06-13 13:10:16 +0200nf(~n@monade.li)
2021-06-13 13:13:15 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
2021-06-13 13:16:21 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 13:18:38 +0200sailboat(uid503239@id-503239.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-13 13:18:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-13 13:21:45 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-13 13:23:15 +0200haltux(~haltux@a89-154-181-47.cpe.netcabo.pt) (Ping timeout: 245 seconds)
2021-06-13 13:24:33 +0200xkuru(~xkuru@user/xkuru) (Ping timeout: 272 seconds)
2021-06-13 13:24:43 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 13:26:49 +0200xkuru(~xkuru@user/xkuru)
2021-06-13 13:27:11 +0200mjs2600_(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 252 seconds)
2021-06-13 13:28:17 +0200 <int-e> so @more should no longer produce that embarrassing `init` error... but it's still broken, because it keeps forgetting the history that it is supposed to be replaying
2021-06-13 13:28:59 +0200bramhaag(~bramhaag@134.195.121.39) (The Lounge - https://thelounge.chat)
2021-06-13 13:29:05 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
2021-06-13 13:35:45 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 264 seconds)
2021-06-13 13:41:52 +0200bor0(~boro@user/bor0) (Quit: Leaving)
2021-06-13 13:44:29 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 13:45:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 13:45:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 13:47:57 +0200teaSlurper(~chris@81.96.113.213)
2021-06-13 13:49:21 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 13:49:57 +0200zebrag(~chris@user/zebrag)
2021-06-13 13:50:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 264 seconds)
2021-06-13 13:51:05 +0200Deide(~Deide@user/deide)
2021-06-13 13:51:21 +0200hseg(~gesh@185.120.126.41) (Ping timeout: 264 seconds)
2021-06-13 13:53:32 +0200 <nitrix> glguy, Do I have to go through you for the cloak on Libera or the staff?
2021-06-13 13:53:50 +0200 <[exa]> nitrix: join #libera or maybe #libera-cloak
2021-06-13 13:56:01 +0200 <nitrix> I can't join #libera-cloak as I'm already cloak with the user unaffiliated one.
2021-06-13 13:57:23 +0200 <nitrix> Yeah, Libera just confirmed the affiliated cloaks go through the respective groups.
2021-06-13 13:59:09 +0200TheRAt(~TheRAt@user/therat) (Ping timeout: 264 seconds)
2021-06-13 14:00:32 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-13 14:00:40 +0200 <nitrix> Oh, I just checked my emails, it isn't glguy, sorry for the noise :]
2021-06-13 14:01:51 +0200TheRAt(~TheRAt@user/therat)
2021-06-13 14:02:21 +0200dhil(~dhil@195.213.192.47)
2021-06-13 14:07:37 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2021-06-13 14:08:33 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-06-13 14:10:33 +0200dhil(~dhil@195.213.192.47) (Ping timeout: 252 seconds)
2021-06-13 14:12:21 +0200jiribenes(~jiribenes@rosa.jiribenes.com)
2021-06-13 14:12:31 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-06-13 14:12:51 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-13 14:13:26 +0200da39a3ee5e6b4b0d(~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a)
2021-06-13 14:14:01 +0200Morrow(~MorrowM_@147.161.8.134)
2021-06-13 14:15:19 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-13 14:15:44 +0200Ranhir(~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2021-06-13 14:15:49 +0200mikoto-c1(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-c1)
2021-06-13 14:16:04 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-13 14:16:38 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-13 14:16:56 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-06-13 14:19:21 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-13 14:19:46 +0200P1RATEZ(piratez@user/p1ratez)
2021-06-13 14:22:22 +0200Ranhir(~Ranhir@157.97.53.139)
2021-06-13 14:23:44 +0200dunkeln(~dunkeln@94.129.65.28) (Quit: leaving)
2021-06-13 14:24:11 +0200wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
2021-06-13 14:24:27 +0200dhil(~dhil@80.208.56.181)
2021-06-13 14:25:48 +0200wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Client Quit)
2021-06-13 14:27:14 +0200Ranhir(~Ranhir@157.97.53.139) (Client Quit)
2021-06-13 14:27:39 +0200tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
2021-06-13 14:27:39 +0200tremontremon_
2021-06-13 14:29:27 +0200unclechu(~unclechu@2001:470:69fc:105::354)
2021-06-13 14:31:43 +0200Ranhir(~Ranhir@157.97.53.139)
2021-06-13 14:32:14 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-13 14:33:33 +0200Morrow(~MorrowM_@147.161.8.134) (Remote host closed the connection)
2021-06-13 14:33:50 +0200Morrow(~MorrowM_@147.161.8.134)
2021-06-13 14:37:10 +0200haltux(~haltux@a89-154-181-47.cpe.netcabo.pt)
2021-06-13 14:38:18 +0200haltux(~haltux@a89-154-181-47.cpe.netcabo.pt) (Remote host closed the connection)
2021-06-13 14:42:12 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-13 14:46:18 +0200Morrow(~MorrowM_@147.161.8.134) (Ping timeout: 252 seconds)
2021-06-13 14:46:22 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-06-13 14:46:48 +0200leah2(~leah@vuxu.org) (Remote host closed the connection)
2021-06-13 14:46:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 14:47:12 +0200leah2(~leah@vuxu.org)
2021-06-13 14:51:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 244 seconds)
2021-06-13 14:51:29 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-13 14:58:17 +0200sekun(~sekun@180.190.155.195) (Ping timeout: 272 seconds)
2021-06-13 14:58:32 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
2021-06-13 15:01:16 +0200alx741(~alx741@181.196.69.243)
2021-06-13 15:02:04 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-06-13 15:02:53 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 252 seconds)
2021-06-13 15:04:19 +0200delYsid(~user@62-178-101-151.cable.dynamic.surfer.at)
2021-06-13 15:04:55 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
2021-06-13 15:05:48 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 15:08:00 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 15:09:35 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-13 15:09:57 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 15:11:26 +0200benin0364(~benin@183.82.205.8)
2021-06-13 15:13:29 +0200benin036(~benin@183.82.176.166) (Ping timeout: 272 seconds)
2021-06-13 15:13:30 +0200benin0364benin036
2021-06-13 15:13:46 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-06-13 15:14:43 +0200delYsid(~user@62-178-101-151.cable.dynamic.surfer.at) (Remote host closed the connection)
2021-06-13 15:14:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 15:15:13 +0200hendursaga(~weechat@user/hendursaga)
2021-06-13 15:26:01 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-13 15:26:06 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 15:26:13 +0200xff0x(~xff0x@2001:1a81:53dc:de00:96fb:36f9:fddc:a0cb) (Ping timeout: 272 seconds)
2021-06-13 15:27:34 +0200xff0x(~xff0x@2001:1a81:53e1:ab00:45af:7b21:1d2b:3d2e)
2021-06-13 15:31:13 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-06-13 15:33:36 +0200pe200012(~pe200012@120.236.162.19) (Ping timeout: 252 seconds)
2021-06-13 15:33:37 +0200pe200012_(~pe200012@58.248.179.150)
2021-06-13 15:34:24 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 15:36:50 +0200mirko1(~mirko@ip1f115d03.dynamic.kabel-deutschland.de)
2021-06-13 15:37:20 +0200mirko1(~mirko@ip1f115d03.dynamic.kabel-deutschland.de) ()
2021-06-13 15:38:39 +0200Hafydd(~Hafydd@2001:41d0:305:2100::31aa) (Changing host)
2021-06-13 15:38:39 +0200Hafydd(~Hafydd@user/hafydd)
2021-06-13 15:46:54 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-13 15:48:45 +0200hseg(~gesh@185.120.126.41)
2021-06-13 15:49:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-13 15:54:56 +0200dhil(~dhil@80.208.56.181) (Ping timeout: 245 seconds)
2021-06-13 15:56:40 +0200matsurago(~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp)
2021-06-13 16:00:33 +0200jespada(~jespada@90.254.242.55) (Ping timeout: 252 seconds)
2021-06-13 16:02:51 +0200jespada(~jespada@90.254.242.55)
2021-06-13 16:04:36 +0200taeaad(~taeaad@user/taeaad) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-06-13 16:07:11 +0200dustingetz(~textual@pool-173-49-123-198.phlapa.fios.verizon.net)
2021-06-13 16:11:01 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 16:12:26 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: Connection reset by peer)
2021-06-13 16:14:09 +0200Solarion_Solarion
2021-06-13 16:14:23 +0200iridescent(~iridescen@41337027.cst.lightpath.net)
2021-06-13 16:14:26 +0200 <iridescent> has anyone seen this? https://bitemyapp.com/blog/grokking-sums-and-constructors/
2021-06-13 16:14:40 +0200 <iridescent> i'm having trouble understanding the point of all of this
2021-06-13 16:14:56 +0200 <iridescent> they're wrapping things with value constructors, but can't you just do the exact same thing without them?
2021-06-13 16:15:07 +0200 <iridescent> definitely missing something, but not sure what it is
2021-06-13 16:20:03 +0200xkuru(~xkuru@user/xkuru) (Remote host closed the connection)
2021-06-13 16:20:40 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-13 16:23:10 +0200thelounge92(~thelounge@cpe-23-240-28-18.socal.res.rr.com) (Ping timeout: 272 seconds)
2021-06-13 16:24:30 +0200 <nitrix> The article seems to try to introduce some core concepts of the language; it's not really trying to achieve anything special.
2021-06-13 16:25:19 +0200 <nitrix> What is the wrapping you think of and what confuses you?
2021-06-13 16:26:43 +0200 <iridescent> oh hm
2021-06-13 16:26:46 +0200 <iridescent> just like
2021-06-13 16:26:53 +0200 <iridescent> if you don't actually need names for fruits
2021-06-13 16:27:08 +0200 <iridescent> why would you want to have data Apple and data Orange over data Fruit = Apple | Orange
2021-06-13 16:27:57 +0200 <nitrix> Right. I see the confusion now.
2021-06-13 16:28:05 +0200da39a3ee5e6b4b0d(~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a) (Quit: Textual IRC Client: www.textualapp.com)
2021-06-13 16:28:52 +0200 <janus> if you have them separate, you can use them to parametrize other types
2021-06-13 16:29:26 +0200 <janus> essentially, do you want the distinction at runtime or compile time?
2021-06-13 16:29:30 +0200oxide(~lambda@user/oxide)
2021-06-13 16:29:31 +0200 <nitrix> iridescent, If you allow me, I think I have an example that makes more sense then theirs to build your intuition.
2021-06-13 16:29:39 +0200 <iridescent> sure why not :)
2021-06-13 16:29:40 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2021-06-13 16:29:53 +0200 <iridescent> also how is this different from dependent types?
2021-06-13 16:30:03 +0200 <iridescent> or is it just a specific instance of that
2021-06-13 16:30:04 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 252 seconds)
2021-06-13 16:30:25 +0200 <nitrix> iridescent, Haskell has two data types, you can have either product types or sum types. I can explain why they're named this way later, but they conceptually are very close to a struct and a tagged union if you're familiar with those.
2021-06-13 16:30:26 +0200jaevanko(~jaevanko@2600:1700:1330:2bef:d2ba:7480:75b7:9b34)
2021-06-13 16:30:40 +0200Nixkernal(~Nixkernal@2a02:1205:34ed:fa00:a5f7:ad7:30d5:9688)
2021-06-13 16:30:40 +0200pe200012_(~pe200012@58.248.179.150) (Remote host closed the connection)
2021-06-13 16:30:44 +0200 <iridescent> yeah i get the concept of sum and product types
2021-06-13 16:31:07 +0200pe200012_(~pe200012@58.248.179.150)
2021-06-13 16:31:18 +0200 <nitrix> iridescent, So, starting with the product types, a couple examples would be: data Circle = MkCircle Float and data Rectangle = MkRectangle Int Int
2021-06-13 16:31:49 +0200 <iridescent> yep
2021-06-13 16:32:14 +0200 <nitrix> Here, `Circle` and `Rectangle` are the type names, while `MkCircle` and `MkRectangle` are the constructors. They are functions that will accept either a `Float` or two `Int` to eventually create a Circle or a Rectangle.
2021-06-13 16:32:37 +0200hemlock(~hemlock@ip72-203-188-10.tu.ok.cox.net)
2021-06-13 16:32:57 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 16:33:19 +0200 <iridescent> got it
2021-06-13 16:33:40 +0200 <nitrix> Similarly, you can also have sum types. The syntax is a bit different, the different possible options are separated by a | character. An example would be: data Weekday = Monday | Tuesday | Wednesday | Thirday | Friday.
2021-06-13 16:34:30 +0200 <nitrix> Here, `Monday` is also a constructor, but it doesn't take any argument. Using it immediately creates a `Weekday`.
2021-06-13 16:35:49 +0200 <nitrix> Haskell is said to have algebraic data types, and so, to showcase a bit that "algebra" (which I think is what the article was trying to do), you would combine sum types with product types into a new type.
2021-06-13 16:35:51 +0200ubikium(~ubikium@2400:2200:3f7:8d39:b162:d489:71fa:a323) (Read error: Connection reset by peer)
2021-06-13 16:37:13 +0200 <nitrix> iridescent, Something like data Shape = TheCircle Circle | TheSquare Square, where `Shape` can be constructed with two different ways, either TheCircle or TheSquare, which accepts a Circle and a Square respectively.
2021-06-13 16:37:27 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
2021-06-13 16:37:42 +0200bmo(~bmo@185.254.75.34)
2021-06-13 16:38:09 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net)
2021-06-13 16:38:40 +0200 <nitrix> Does that make sense or I lost you :P ?
2021-06-13 16:40:47 +0200hemlock(~hemlock@ip72-203-188-10.tu.ok.cox.net) (Quit: Quit)
2021-06-13 16:41:44 +0200bleloch_(bleloch@gateway/vpn/protonvpn/bleloch)
2021-06-13 16:41:50 +0200hemlock(~hemlock@ip72-203-188-10.tu.ok.cox.net)
2021-06-13 16:42:14 +0200 <bmo> What are currently the "best" frameworks (non-static) to write web-applications? It's been a while I used yesod before and servant as well but I wasn't necessarily too convinced of either.
2021-06-13 16:42:36 +0200 <bmo> yesod felt like a very over-kill solution and pretty heavy-weight.
2021-06-13 16:43:24 +0200 <bmo> servant was nice and I liked it quite a bit sometimes, however I recall having to write my own authentication layer which felt wrong
2021-06-13 16:43:40 +0200 <bmo> What do people use nowadays?
2021-06-13 16:44:39 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-13 16:45:20 +0200dustingetz(~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 16:46:31 +0200pavonia(~user@user/siracusa)
2021-06-13 16:47:41 +0200derelict(~derelict@user/derelict)
2021-06-13 16:48:04 +0200 <janus> bmo: i am not sure people that like advanced typing stuff ever stopped using servant
2021-06-13 16:48:15 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 16:48:37 +0200gedda(~gedda@user/gedda) (Quit: Lost terminal)
2021-06-13 16:49:26 +0200Bartosz(~textual@24.35.90.211)
2021-06-13 16:53:41 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-13 16:56:37 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
2021-06-13 17:01:51 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-13 17:03:04 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-06-13 17:03:25 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-13 17:07:29 +0200oxide(~lambda@user/oxide) (Ping timeout: 272 seconds)
2021-06-13 17:07:32 +0200 <iridescent> nitrix: think it makes sense, so basically your last example is like <constructor 1 which can take in a lot of arguments> OR <constructor 2 which can take a lot of argumnets>, and the lots of arguments is the product type
2021-06-13 17:08:37 +0200gentauro(~gentauro@user/gentauro)
2021-06-13 17:09:24 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 17:09:33 +0200rk04(~rk04@user/rajk)
2021-06-13 17:09:40 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-13 17:11:11 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 17:11:29 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-13 17:11:33 +0200 <nitrix> iridescent, The sum type gives you a choice between multiple values to construct the type. data Foo = A | B | C, there are 3 possible values of type Foo, the A, B and C.
2021-06-13 17:12:53 +0200 <nitrix> iridescent, Product types combines existing types, so data Bar = F Foo Foo, would construct a Bar with two Foo, that's 9 possible values, F A A, F A B, F A C, F B A, F B B, F B C, F C A, F C B, F C C.
2021-06-13 17:13:34 +0200 <nitrix> I guess that's a little hint as to why they're called sum versus product.
2021-06-13 17:14:09 +0200 <nitrix> Sorry, 6 values x]
2021-06-13 17:14:14 +0200 <nitrix> Two Foo with 3 values each, 2 * 3 = 6.
2021-06-13 17:16:28 +0200 <nitrix> As for the sum, if I did data Bar = F1 Foo | F2 Foo, the possible values would be F1 A, F1 B, F1 C, F2 A, F2 B, F2 C, aka sum type, 3 + 3 = 6.
2021-06-13 17:17:00 +0200 <nitrix> I chose a bad example that both arrives to 6, but you can see how the arithmetic is different :P
2021-06-13 17:17:08 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 17:18:04 +0200 <iridescent> yeah
2021-06-13 17:18:05 +0200 <iridescent> i see
2021-06-13 17:19:15 +0200dustingetz(~textual@pool-173-49-123-198.phlapa.fios.verizon.net)
2021-06-13 17:19:40 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 17:22:49 +0200bhrgunatha(~bhrgunath@2001-b011-8011-27f4-086a-6ad6-9ae6-0f90.dynamic-ip6.hinet.net)
2021-06-13 17:23:09 +0200fendor_fendor
2021-06-13 17:24:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 17:24:34 +0200 <pavonia> nitrix: 9 values was correct, it's Foo x Foo
2021-06-13 17:25:48 +0200 <nitrix> Oh, thank god. I was wondering if I was losing it while explaining that, haha.
2021-06-13 17:25:48 +0200tv(~tv@user/tv) (Read error: Connection reset by peer)
2021-06-13 17:26:44 +0200 <nitrix> So yeah, 3x3=9 vs 3+3=6, as an example of why the product `F Foo Foo` differs from the sum `F1 Foo | F2 Foo`.
2021-06-13 17:26:53 +0200 <iridescent> got it
2021-06-13 17:27:00 +0200 <iridescent> i guess product is like taking combinations
2021-06-13 17:27:04 +0200 <nitrix> Yep.
2021-06-13 17:27:29 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 17:27:55 +0200bleloch_(bleloch@gateway/vpn/protonvpn/bleloch) (Remote host closed the connection)
2021-06-13 17:28:40 +0200rk04(~rk04@user/rajk) (Ping timeout: 245 seconds)
2021-06-13 17:28:50 +0200 <bmo> janus, thanks for the response. guess I'll stick to servant then, the auth "issue" might turn out to be none as I am free of requirements there
2021-06-13 17:29:02 +0200 <nitrix> And sum would be enumerating things (which could themselves be combinations).
2021-06-13 17:29:48 +0200 <nitrix> It's all very layman, just to give an intuition.
2021-06-13 17:29:52 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1)
2021-06-13 17:30:24 +0200 <iridescent> yeah i see
2021-06-13 17:31:15 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-13 17:32:12 +0200rk04(~rk04@user/rajk)
2021-06-13 17:32:28 +0200rk04(~rk04@user/rajk) (Client Quit)
2021-06-13 17:35:02 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3)
2021-06-13 17:35:53 +0200dustingetz(~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 17:36:11 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
2021-06-13 17:37:04 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-13 17:38:11 +0200pe200012_(~pe200012@58.248.179.150) (Remote host closed the connection)
2021-06-13 17:38:37 +0200pe200012_(~pe200012@120.236.162.19)
2021-06-13 17:39:43 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 17:39:47 +0200fizbin(~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds)
2021-06-13 17:40:30 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit)
2021-06-13 17:40:46 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 17:40:58 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit)
2021-06-13 17:41:55 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 17:42:00 +0200teaSlurper(~chris@81.96.113.213)
2021-06-13 17:42:10 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit)
2021-06-13 17:43:51 +0200tv(~tv@user/tv)
2021-06-13 17:43:57 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-13 17:45:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 17:45:49 +0200Guest9(~Guest9@103.240.169.98)
2021-06-13 17:46:33 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2021-06-13 17:47:15 +0200mc47(~mc47@xmonad/TheMC47) (Ping timeout: 252 seconds)
2021-06-13 17:49:21 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-13 17:50:39 +0200aerona(~aerona@2600:6c54:4600:f300:dd2b:2b3b:fbbd:f67)
2021-06-13 17:51:29 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 17:52:50 +0200zmt00(~zmt00@user/zmt00)
2021-06-13 17:54:21 +0200 <kaol> "cabal build all" tells me that things are up to date even though I did changes to a source file. How can I give it a nudge? (Short of rm -rf dist-newstyle.)
2021-06-13 17:55:08 +0200nerdypepper(~nerdypepp@user/nerdypepper)
2021-06-13 17:56:13 +0200 <quintasan> Did anyone manage to produce fully static binary of Scotty + PostgreSQL web app?
2021-06-13 17:56:53 +0200 <kaol> With cabal-install 3.0.0.0.
2021-06-13 17:57:21 +0200Katarushisu(~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Ping timeout: 264 seconds)
2021-06-13 17:57:23 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2021-06-13 17:57:44 +0200teaSlurper(~chris@81.96.113.213)
2021-06-13 17:57:49 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 17:58:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
2021-06-13 17:58:43 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-13 17:59:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 17:59:21 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 17:59:43 +0200 <quintasan> kaol: hmm, any details on how to do this? I tried doing that in an alpine container but never managed to get it working due to missing symbols when linking
2021-06-13 18:00:41 +0200Guest9(~Guest9@103.240.169.98) (Ping timeout: 272 seconds)
2021-06-13 18:01:03 +0200 <kaol> quintasan: Sorry for the confusion, I wasn't responding you but adding details to my own question.
2021-06-13 18:01:07 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 18:01:20 +0200 <quintasan> bah, silly me
2021-06-13 18:01:33 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
2021-06-13 18:01:55 +0200 <quintasan> kaol: wouldn't touching the file make cabal think it's time to rebuild?
2021-06-13 18:02:30 +0200 <geekosaur> I've found bugs in cabal < 3.4, might want to upgrade it
2021-06-13 18:02:31 +0200 <kaol> Yes, but it's not happening and I'm trying to figure out why.
2021-06-13 18:03:26 +0200Bartosz(~textual@24.35.90.211)
2021-06-13 18:07:00 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 245 seconds)
2021-06-13 18:09:05 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection)
2021-06-13 18:09:21 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-13 18:10:00 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-13 18:10:53 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-13 18:12:01 +0200 <kaol> Does new style cabal even look into source files or does it do checking by package versions only?
2021-06-13 18:12:37 +0200bartavelle(~bartavell@2001:41d0:1:744c::1) ()
2021-06-13 18:13:00 +0200alx741(~alx741@181.196.69.243) (Quit: alx741)
2021-06-13 18:13:12 +0200 <geekosaur> it looks at source files associated with your project, package versions only for dependencies outside of your project
2021-06-13 18:13:39 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24)
2021-06-13 18:14:40 +0200alx741(~alx741@181.196.69.243)
2021-06-13 18:14:58 +0200 <kaol> If I have a cabal.project file at the project root and the change is to a package in a subdirectory, does it see changes to its sources? Is it considered "outside of project" for this?
2021-06-13 18:16:30 +0200 <geekosaur> I think it won't look if it's listed as a dependency, as opposed to being directly part of your project
2021-06-13 18:18:45 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-06-13 18:18:59 +0200Sgeo(~Sgeo@user/sgeo)
2021-06-13 18:19:37 +0200 <kaol> I guess I'll just have to reorganize my project and not use packages internally. If that's what it takes to make incremental builds work.
2021-06-13 18:20:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-13 18:22:28 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-13 18:22:33 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 18:24:50 +0200 <kaol> This feels like a step down from using sandboxes.
2021-06-13 18:28:10 +0200 <maerwald> I liked them too
2021-06-13 18:28:17 +0200 <maerwald> it's a clean API
2021-06-13 18:28:35 +0200Guest9(~Guest9@103.240.169.98)
2021-06-13 18:28:37 +0200 <maerwald> well... s/API/user interface/
2021-06-13 18:28:44 +0200allbery_b(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-13 18:28:54 +0200 <maerwald> doesn't cargo do the same still?
2021-06-13 18:29:50 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 272 seconds)
2021-06-13 18:31:30 +0200ozataman(~ozataman@71.190.112.58)
2021-06-13 18:31:33 +0200allbery_bgeekosaur
2021-06-13 18:31:41 +0200 <kaol> I think I'll go with v1 commands for now. I may have to start sending patches if I want to stick to my workflow in a few years.
2021-06-13 18:33:52 +0200econo(uid147250@user/econo)
2021-06-13 18:35:17 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
2021-06-13 18:35:34 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2021-06-13 18:35:55 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2021-06-13 18:43:07 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 272 seconds)
2021-06-13 18:43:43 +0200alanz__(~user@host86-135-160-135.range86-135.btcentralplus.com)
2021-06-13 18:45:33 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 18:47:18 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
2021-06-13 18:47:32 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 18:50:14 +0200 <teaSlurper> hey
2021-06-13 18:53:15 +0200pe200012_(~pe200012@120.236.162.19) (Ping timeout: 272 seconds)
2021-06-13 18:53:32 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 18:53:47 +0200derelict(~derelict@user/derelict) (Ping timeout: 268 seconds)
2021-06-13 18:55:38 +0200lbseale(~lbseale@user/ep1ctetus)
2021-06-13 18:57:07 +0200 <teaSlurper> in a haskel, cabal project, what's best way to execute/run individual files?
2021-06-13 18:57:21 +0200 <teaSlurper> right now i have 1 main file under exe folder
2021-06-13 18:57:32 +0200 <teaSlurper> and i used cabal run to execute that
2021-06-13 18:58:35 +0200 <Rembane> teaSlurper: Add another executable section to your cabal file
2021-06-13 19:00:03 +0200Guest71(~Guest71@176.232.106.148)
2021-06-13 19:01:38 +0200grepcake(~artyom@77.234.203.54)
2021-06-13 19:02:58 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 19:03:15 +0200chexum(~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-06-13 19:05:22 +0200Guest71(~Guest71@176.232.106.148) ()
2021-06-13 19:06:03 +0200chexum(~chexum@gateway/tor-sasl/chexum)
2021-06-13 19:07:34 +0200grepcake(~artyom@77.234.203.54) (Quit: Konversation terminated!)
2021-06-13 19:12:25 +0200wonko(~wjc@62.115.229.50) (Ping timeout: 245 seconds)
2021-06-13 19:13:11 +0200carr(~user@2601:645:4000:db:5c42:3046:45d6:af66)
2021-06-13 19:13:29 +0200iridescent(~iridescen@41337027.cst.lightpath.net) (Quit: Client closed)
2021-06-13 19:13:59 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-13 19:14:40 +0200carr(~user@2601:645:4000:db:5c42:3046:45d6:af66) ()
2021-06-13 19:15:06 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-13 19:15:15 +0200mc47(~mc47@xmonad/TheMC47) (Client Quit)
2021-06-13 19:15:34 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-13 19:16:30 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 19:18:21 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
2021-06-13 19:18:29 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 19:18:38 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 19:23:55 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 19:24:08 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-13 19:24:28 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
2021-06-13 19:24:34 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 19:24:44 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 19:26:51 +0200jasonm(~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-06-13 19:26:54 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (WeeChat 2.8)
2021-06-13 19:27:20 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 19:27:23 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 19:27:28 +0200fjmorazan_fjmorazan
2021-06-13 19:28:00 +0200 <sm[m]> bmo: yesod and servant are still the most popular and probably the best out there - one or the other will be a better fit depending on your needs.
2021-06-13 19:28:03 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 19:28:03 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 19:28:18 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 19:28:52 +0200jumper149(~jumper149@80.240.31.34)
2021-06-13 19:29:17 +0200 <sm[m]> though, what do you mean by "non-static" ? If you are building largely client-side apps, miso might be a candidate
2021-06-13 19:30:01 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-13 19:30:27 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 19:30:28 +0200 <jumper149> Hi, is it possible to somehow derive MonadTrans for a newtype over 2 transformers, for example: `newtype MyT m a = MyT (ExceptT String (ReaderT Int m) a) deriving stock (...) deriving MonadTrans via ???`
2021-06-13 19:32:11 +0200aerkenemesis(~aerkeneme@c83-252-164-58.bredband.tele2.se) (Quit: Client closed)
2021-06-13 19:32:31 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-06-13 19:33:01 +0200 <geekosaur> what goes wrong if you just derive it normally with GND?
2021-06-13 19:33:05 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-06-13 19:33:58 +0200 <c_wraith> I don't think you can GND it, because it's two layers
2021-06-13 19:34:22 +0200 <c_wraith> But you can just write the instance by hand, it's literally lift = MyT . lift . lift
2021-06-13 19:34:32 +0200 <jumper149> yeah GND doesn't work here
2021-06-13 19:34:45 +0200 <jumper149> c_wraith: Surely I can, but it would be neet :p
2021-06-13 19:35:26 +0200 <jumper149> I have it in mind for MonadTransControl too.
2021-06-13 19:35:38 +0200 <jumper149> There it's a bit more cumbersome to write instances
2021-06-13 19:35:55 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-06-13 19:36:04 +0200 <jumper149> And this https://hackage.haskell.org/package/monad-control-1.0.2.3/docs/Control-Monad-Trans-Control.html#v:…
2021-06-13 19:36:11 +0200 <jumper149> ^ doesn't work anymore with GHC 9
2021-06-13 19:36:16 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-13 19:36:20 +0200mc47(~mc47@xmonad/TheMC47) (Client Quit)
2021-06-13 19:36:21 +0200hemlock(~hemlock@ip72-203-188-10.tu.ok.cox.net) (Ping timeout: 264 seconds)
2021-06-13 19:36:43 +0200 <jumper149> So I was thinking, maybe it's worth to use deriving via
2021-06-13 19:37:05 +0200hemlock(~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83)
2021-06-13 19:40:28 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-13 19:41:43 +0200bhrgunatha(~bhrgunath@2001-b011-8011-27f4-086a-6ad6-9ae6-0f90.dynamic-ip6.hinet.net) (Quit: Leaving)
2021-06-13 19:42:01 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
2021-06-13 19:42:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 19:46:29 +0200 <jumper149> I actually just came up with this: http://ix.io/3pQs
2021-06-13 19:47:13 +0200 <jumper149> Would enjoy seeing some opinion on that :)
2021-06-13 19:47:32 +0200ent(entgod@kapsi.fi)
2021-06-13 19:49:20 +0200derelict(~derelict@user/derelict)
2021-06-13 19:50:11 +0200matsurago(~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp) (Quit: Leaving)
2021-06-13 19:52:03 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-13 19:53:11 +0200 <jumper149> and it even works for MonadTransControl http://ix.io/3pQu
2021-06-13 19:54:37 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 19:55:37 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-13 19:56:09 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 19:56:10 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2021-06-13 19:57:44 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net)
2021-06-13 19:59:02 +0200jaevanko(~jaevanko@2600:1700:1330:2bef:d2ba:7480:75b7:9b34) (Quit: Leaving)
2021-06-13 20:03:34 +0200evie1(~evie@188.27.66.89) (Quit: WeeChat 2.7.1)
2021-06-13 20:08:37 +0200qbt(~edun@user/edun) (Ping timeout: 272 seconds)
2021-06-13 20:09:04 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
2021-06-13 20:09:19 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 20:12:46 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2021-06-13 20:13:22 +0200Guest9(~Guest9@103.240.169.98) (Quit: Connection closed)
2021-06-13 20:13:53 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-06-13 20:14:17 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-06-13 20:14:36 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-13 20:16:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 20:20:00 +0200charukiewicz_charukiewicz
2021-06-13 20:20:09 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-13 20:20:48 +0200teaSlurper(~chris@81.96.113.213)
2021-06-13 20:20:54 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 20:24:33 +0200wonko(~wjc@62.115.229.50)
2021-06-13 20:25:06 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-06-13 20:25:11 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-13 20:25:11 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 20:28:02 +0200 <dminuoso> jumper149: Why wouldn't it work with GHC 9 anymor
2021-06-13 20:28:04 +0200P1RATEZ(piratez@user/p1ratez) ()
2021-06-13 20:28:40 +0200 <dminuoso> jumper149: Is that even worth it? What are you saving?
2021-06-13 20:28:43 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-06-13 20:29:05 +0200 <dminuoso> It seems to me handrolling the MonadTrans/MonadTransControl instance is less code and clearer.
2021-06-13 20:29:24 +0200chaosite(~chaosite@user/chaosite)
2021-06-13 20:30:46 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 20:30:53 +0200 <jumper149> https://github.com/basvandijk/monad-control/issues/52
2021-06-13 20:31:30 +0200 <jumper149> dminuoso: The reason is simplified subsumption: https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption
2021-06-13 20:31:35 +0200 <dminuoso> jumper149: You should be fine with eta-extending it.
2021-06-13 20:31:54 +0200 <dminuoso> The first two arguments, that is.
2021-06-13 20:32:01 +0200 <jumper149> I tried
2021-06-13 20:32:05 +0200 <dminuoso> Both?
2021-06-13 20:32:12 +0200 <dminuoso> Or.. the third actually. Sorry
2021-06-13 20:32:24 +0200 <jumper149> Say exactly what you mean and I'll test it
2021-06-13 20:32:35 +0200 <dminuoso> Try eta-extending each argument.
2021-06-13 20:33:19 +0200 <jumper149> I think the problem lies in the `Run` type alias, which can't be unified with `RunDefault2`
2021-06-13 20:34:06 +0200 <jumper149> dminuoso: I tried pretty hard. But I am not absolutely sure, whether it's really not possible
2021-06-13 20:34:17 +0200 <dminuoso> jumper149: So Im a bit fuzzy on the details, but with the new simplified subsumption, you can make stuff compile again when you eta-expend
2021-06-13 20:34:26 +0200 <dminuoso> I think something along the lines of":
2021-06-13 20:34:33 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
2021-06-13 20:34:40 +0200 <dminuoso> liftWith f = defaultLiftWith2 RecolorXT unRecolorXT (\x -> f x)
2021-06-13 20:36:07 +0200jao(jao@gateway/vpn/protonvpn/jao)
2021-06-13 20:36:25 +0200mc47(~mc47@xmonad/TheMC47) (Quit: Leaving)
2021-06-13 20:37:22 +0200 <jumper149> dminuoso: Wow, that actually seems to work
2021-06-13 20:37:57 +0200dan(~AdminUser@host86-167-185-202.range86-167.btcentralplus.com)
2021-06-13 20:41:38 +0200dustingetz(~textual@pool-173-49-123-198.phlapa.fios.verizon.net)
2021-06-13 20:42:58 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 20:43:15 +0200dan(~AdminUser@host86-167-185-202.range86-167.btcentralplus.com) (Ping timeout: 252 seconds)
2021-06-13 20:43:52 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
2021-06-13 20:43:54 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-13 20:44:08 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 20:44:19 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 20:44:44 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 20:44:44 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 20:44:52 +0200 <jumper149> dminuoso: Can you explain to me, how you knew, that is the exact place which needed eta-expansion?
2021-06-13 20:46:32 +0200fizbin(~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6)
2021-06-13 20:46:41 +0200 <dminuoso> You told me, I just guessed.
2021-06-13 20:46:49 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 20:47:06 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 20:48:43 +0200dhil(~dhil@80.208.56.181)
2021-06-13 20:50:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-13 20:50:46 +0200 <dminuoso> jumper149: I actually wonder whether `liftWith f = defaultWithWith2 RecolorXT unRecolorXT f` is even enough
2021-06-13 20:51:18 +0200fizbin(~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Ping timeout: 264 seconds)
2021-06-13 20:51:43 +0200 <jumper149> dminuoso: http://ix.io/3pQS
2021-06-13 20:51:51 +0200 <jumper149> ^ That's what you get then
2021-06-13 20:52:01 +0200 <dminuoso> Ah hold on I found the relevant part
2021-06-13 20:52:11 +0200 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption
2021-06-13 20:52:15 +0200 <dminuoso> This seems to be the second example
2021-06-13 20:52:20 +0200 <dminuoso> f' :: (Eq a, Eq b) => a -> b -> b
2021-06-13 20:52:23 +0200 <dminuoso> g' :: (Eq p => p -> Eq q => q -> q) -> Int
2021-06-13 20:52:25 +0200 <dminuoso> etc
2021-06-13 20:52:36 +0200 <jumper149> hm
2021-06-13 20:52:38 +0200 <jumper149> ?
2021-06-13 20:53:07 +0200 <dminuoso> Like I said, Im a bit fuzzy on the details. I have a very sketchy understanding what deep-skolemnization even is.
2021-06-13 20:54:02 +0200dustingetz(~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-06-13 20:54:44 +0200 <jumper149> Ah yeah, I see why you think the second example fits right here. Basically the type alias `Run` brings this additional context.
2021-06-13 20:54:46 +0200 <jumper149> @Run
2021-06-13 20:54:48 +0200 <lambdabot> <no location info>: error: not an expression: ‘’
2021-06-13 20:55:00 +0200 <jumper149> https://hackage.haskell.org/package/monad-control-1.0.2.3/docs/Control-Monad-Trans-Control.html#t:…
2021-06-13 20:55:30 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2021-06-13 20:56:09 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-06-13 20:57:08 +0200 <dminuoso> I guess the confusion is just based on not even understanding how higher rank type inference works. It almost seems as if you have to read SPJs `Practical Type Inference for Arbitrary-Rank Types`
2021-06-13 20:57:21 +0200 <dminuoso> That paper is outside of my reach.
2021-06-13 20:58:15 +0200 <dminuoso> I find it a bit sad that the GHC manual does not elaborate on what "relies on deep skolemization" even means.
2021-06-13 20:58:55 +0200Patrick(~Patrick@pool-100-36-167-42.washdc.fios.verizon.net)
2021-06-13 20:59:18 +0200 <Rembane> Could that be considered a bug?
2021-06-13 20:59:45 +0200 <dminuoso> A documentation bug, yes.
2021-06-13 21:00:31 +0200PatrickPatrick157
2021-06-13 21:01:51 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:02:11 +0200 <dminuoso> jumper149: https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#deep-instantiation
2021-06-13 21:02:13 +0200 <dminuoso> Mmm
2021-06-13 21:02:34 +0200 <dminuoso> jumper149: Or is this a case of deep instantiation? Im beginning to suspect this is the case
2021-06-13 21:03:31 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 21:03:45 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:03:50 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 21:04:19 +0200 <shapr> OH SURE
2021-06-13 21:04:26 +0200 <shapr> dmwit: hi, how's life?
2021-06-13 21:05:46 +0200 <dmwit> hi shapr!
2021-06-13 21:05:51 +0200 <jumper149> dminuoso: That may be right. I honestly don't understand it enough to argue for one or the other.
2021-06-13 21:06:03 +0200 <dmwit> Recently I've been being bad at computer vision! It's great.
2021-06-13 21:06:13 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 21:06:17 +0200 <dmwit> What's life like in shapr-land?
2021-06-13 21:06:28 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:07:04 +0200 <shapr> dmwit: that sounds exciting, are you building some fun projects with computer vision?
2021-06-13 21:07:14 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 21:07:28 +0200 <shapr> dmwit: just got the second moderna shot, so I can spend time with people again
2021-06-13 21:07:29 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:08:00 +0200 <dmwit> grats!
2021-06-13 21:08:17 +0200dispater(~dispater@mail.brprice.uk)
2021-06-13 21:09:30 +0200dispater(~dispater@mail.brprice.uk) (Client Quit)
2021-06-13 21:09:35 +0200 <dmwit> I've been staying quarantined-ish even though I'm vax'd. But I'm hopeful that we get to a point where I feel like we've solved it as a country rather than just personally having solved it.
2021-06-13 21:10:45 +0200 <dmwit> I'm excited for people that are choosing to rejoin society, too. ^_^
2021-06-13 21:10:51 +0200dispater(~dispater@mail.brprice.uk)
2021-06-13 21:10:57 +0200 <shapr> yeah, I agree
2021-06-13 21:11:23 +0200 <shapr> last weekend (or the one before?) I learned how to package a simple C application with nix, and then how to add that as an overlay to my system
2021-06-13 21:11:34 +0200 <shapr> this weekend I'm trying to learn how to write a plugin for haskell-language-server
2021-06-13 21:11:55 +0200 <dmwit> oh, I should learn HLS at some point
2021-06-13 21:12:01 +0200 <dmwit> I have like three bookmarks. =P
2021-06-13 21:12:07 +0200 <shapr> at my job it's easy to lose track of which language pragmas are in scope, so I figured I'd try to make a code lens that displays all implicit pragmas at the top of the file
2021-06-13 21:12:14 +0200 <maerwald> dmwit: new hls release is on the way
2021-06-13 21:12:17 +0200 <dminuoso> jumper149: My rough understanding of the change is: GHC used to do this eta-expansion implicitly in order to elaborate said programs into Core. But eta-expansion changes semantics (because in WHNF `\x -> undefined x` will not bottom out, while `undefined` will)
2021-06-13 21:12:33 +0200 <shapr> dmwit: oh if you're not using it, my example file may help some: https://github.com/shapr/hlsexamples/blob/main/src/Examples.hs#L38
2021-06-13 21:12:45 +0200hseg(~gesh@185.120.126.41) (Quit: WeeChat 3.1)
2021-06-13 21:12:55 +0200 <shapr> I need to update that example file for hls 1.1
2021-06-13 21:13:09 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
2021-06-13 21:13:19 +0200 <shapr> cdsmith and I were pairing on something yesterday and I got to demonstrate some of the amazing wingman features.
2021-06-13 21:13:31 +0200polyphem(~polyphem@2a02:810d:640:776c:12c4:e67d:3560:5ad7)
2021-06-13 21:13:41 +0200 <dminuoso> jumper149: So GHC changed the RankNTypes type inference that this would not happen again (avoiding implicitly changing program semantics, and simplifying implementation) - but that means if you still want these things that automatically inferred, you have to do this eta-expansion explicitly (and thus there's no change in semantics anymore)
2021-06-13 21:14:11 +0200 <shapr> anyway, I'm slowly working my way through the hls plugin tutorial, happily a code lens is the first example.
2021-06-13 21:14:23 +0200sm2n(~sm2n@user/sm2n) (Ping timeout: 268 seconds)
2021-06-13 21:14:28 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-06-13 21:14:29 +0200 <shapr> my mvp is "show all enabled language pragmas"
2021-06-13 21:14:53 +0200 <dminuoso> I admit, this is all very handwaving.
2021-06-13 21:15:41 +0200 <shapr> I have a bunch of other plugin/feature ideas, like "rewrite all imports to implicit on load, rewrite all imports to explicit on save"
2021-06-13 21:15:43 +0200 <maerwald> shapr: I wanted to do a code lens that shows function arity on hover (bc that is important for inlining and can be relevant for memory leaks as well)0000000
2021-06-13 21:15:55 +0200 <shapr> maerwald: oh that's a cool idea!
2021-06-13 21:15:56 +0200 <maerwald> oops, my qmk config needs fixing
2021-06-13 21:16:34 +0200 <jumper149> dminuoso: The `undefined` example and the fact that it's a change to the type inference with RankNTypes is already quite a bit eye-opening to me :)
2021-06-13 21:17:57 +0200 <dminuoso> jumper149: type system wise, it was exactly 4 parts (covariante of function types, contravariance of function types, deep skolemisation and deep instanstation) that caused this implicit eta-extension. In the GHC proposal these things were just yanked without replacement.
2021-06-13 21:18:11 +0200 <shapr> another idea I have is to use the "find references" feature to look only in the thisproject:test section to run tests that reference a function after the file is saved, and add some kind of syntax highlighting to show the test status.
2021-06-13 21:18:20 +0200 <dminuoso> It's just that I cant match what these exactly mean or when GHC would use them. You'd have to read the paper I cited earlier.
2021-06-13 21:19:16 +0200dispater(~dispater@mail.brprice.uk) (Quit: ZNC 1.8.1 - https://znc.in)
2021-06-13 21:19:38 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
2021-06-13 21:19:39 +0200dispater(~dispater@user/brprice)
2021-06-13 21:19:46 +0200 <maerwald> shapr: I'd want it for right-click->run-tests... "on save" might be a bit excessive, depending on the tests
2021-06-13 21:19:53 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:20:09 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 21:20:24 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:20:31 +0200 <maerwald> I think some IDEs have visual buttons for "you can run a test here"
2021-06-13 21:20:36 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 21:20:38 +0200 <maerwald> not sure if that's integratable with hls
2021-06-13 21:21:08 +0200 <dminuoso> jumper149: Luckily, all of this means: Without contra/covariance of function types, deep skolemisation and instanation - you can still make all programs type check if you apply the eta-extension manually in the exact place that GHC would have done it implicitly. Because once you eta-expand, you dont need these 4 things anyhow.
2021-06-13 21:21:19 +0200 <maerwald> first, you'd need *file locations* that can run tests, I guess
2021-06-13 21:21:22 +0200dispater(~dispater@user/brprice) (Client Quit)
2021-06-13 21:21:43 +0200dispater(~dispater@user/brprice)
2021-06-13 21:21:43 +0200 <maerwald> and then a way to tell HLS: "run test for this file location"
2021-06-13 21:22:18 +0200esclearesclear[m]
2021-06-13 21:22:36 +0200 <maerwald> this might very well be outside of LSP protocol scope...
2021-06-13 21:22:45 +0200esclear[m]esclear[i]
2021-06-13 21:22:58 +0200 <maerwald> so clients would need to support it manually
2021-06-13 21:23:36 +0200 <janus> when was (<>) added to prelude? i am having little log googling it
2021-06-13 21:24:16 +0200 <janus> *luck
2021-06-13 21:24:43 +0200 <Clint> was it part of AMP?
2021-06-13 21:24:48 +0200 <janus> the ghc wiki says it was added to base in ghc 8, but that doesn't mean it went directly into the prelude, i imagine
2021-06-13 21:24:50 +0200 <davean> https://hackage.haskell.org/package/base-4.15.0.0/changelog see?
2021-06-13 21:25:00 +0200 <davean> Theres a changelog that lists this specificly
2021-06-13 21:25:10 +0200 <janus> aaah right! i thought it would be older
2021-06-13 21:25:30 +0200 <janus> wait, it says 4.11 from March 2018. so it is quite old
2021-06-13 21:25:37 +0200dispater(~dispater@user/brprice) (Client Quit)
2021-06-13 21:25:55 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:25:55 +0200 <janus> weird how i am just getting this error now with ghc 9
2021-06-13 21:26:07 +0200 <maerwald> means you're getting older as well
2021-06-13 21:26:58 +0200dispater(~dispater@user/brprice)
2021-06-13 21:29:13 +0200 <shapr> maerwald: it'd be interesting to try
2021-06-13 21:29:21 +0200 <shapr> maerwald: certainly blog post worthy
2021-06-13 21:29:32 +0200 <shapr> I still don't understand enough lsp details to know what might not work
2021-06-13 21:29:55 +0200 <maerwald> there are many things where you need to go beyond lsp protocol
2021-06-13 21:30:06 +0200 <maerwald> e.g. "type of expression" isn't currently supported by the protocol
2021-06-13 21:30:11 +0200 <maerwald> but we really want it, right?
2021-06-13 21:30:43 +0200lavaman(~lavaman@98.38.249.169)
2021-06-13 21:31:10 +0200 <maerwald> https://github.com/microsoft/language-server-protocol/issues/377
2021-06-13 21:31:35 +0200xsperry(~as@user/xsperry) (Remote host closed the connection)
2021-06-13 21:32:28 +0200xsperry(~as@user/xsperry)
2021-06-13 21:33:03 +0200 <maerwald> I think the main thing would be: make it work in VSCode
2021-06-13 21:33:43 +0200 <shapr> I would certainly want to be able to select part of my buffer and get the type of that selection
2021-06-13 21:34:08 +0200 <shapr> I do that manually by factoring out that chunk to its own name and looking at that.
2021-06-13 21:34:27 +0200 <shapr> but most people I've seen try to hover over the end parentheses to get the type of the parens.
2021-06-13 21:34:38 +0200 <maerwald> right, because type computation is hard... I might know what `fmap` is, but not `fmap . fmap . fmap . fmap` :)
2021-06-13 21:35:29 +0200 <shapr> yeah, I have that question often
2021-06-13 21:36:57 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: Lost terminal)
2021-06-13 21:37:27 +0200 <shapr> I like that so many things in Haskell are compositional, I just wish laziness weren't the big exception
2021-06-13 21:39:32 +0200alanz__(~user@host86-135-160-135.range86-135.btcentralplus.com) (Remote host closed the connection)
2021-06-13 21:40:27 +0200 <maerwald> I haven't made up my mind... I think having Laziness on type level is interesting, but I can't say that I've tried enough Idris to judge the ergonomics
2021-06-13 21:40:32 +0200unclechu(~unclechu@2001:470:69fc:105::354) (Quit: Reconnecting)
2021-06-13 21:40:39 +0200 <davean> shapr: I'm confused by that statement - it seems laziness is the most compositional
2021-06-13 21:40:47 +0200unclechu(~unclechu@2001:470:69fc:105::354)
2021-06-13 21:40:49 +0200 <maerwald> davean: you never know when it breaks
2021-06-13 21:41:34 +0200 <maerwald> oh, you accidentially kept a reference for later, now it doesn't fuse and blows up your ram
2021-06-13 21:42:30 +0200 <dminuoso> Before I sketch it out, tyfam application disappear in generics right?
2021-06-13 21:42:33 +0200 <dmwit> Is strict superior there?
2021-06-13 21:42:36 +0200 <shapr> Haskell is still my favorite language by far, but it's good to be aware of the scary bits.
2021-06-13 21:42:39 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 252 seconds)
2021-06-13 21:42:49 +0200 <maerwald> dmwit: no, but what if you had proof of laziness?
2021-06-13 21:43:04 +0200 <davean> maerwald: I think you just explained it as compositional to say it wasn't. I'm confused - what composition rule do you expect?
2021-06-13 21:43:07 +0200 <shapr> I wish the type could somehow describe the laziness of a function.
2021-06-13 21:43:28 +0200 <janus> shapr: did you see how it works in idris?
2021-06-13 21:43:33 +0200 <shapr> janus: I have not!
2021-06-13 21:43:45 +0200 <shapr> does idris express laziness or strictness on the type level?
2021-06-13 21:43:46 +0200 <Rembane> Or that there was some part of compilation or some other static tooling that automatically helped with it.
2021-06-13 21:43:49 +0200 <davean> shapr: the type does, the function is lazy. The question is what will be pulled through when you force it.
2021-06-13 21:43:50 +0200 <dminuoso> shapr: `A -> B` with A having some fields as strict, others not. How would you expect this to be communicated?
2021-06-13 21:43:53 +0200 <janus> shapr: http://docs.idris-lang.org/en/latest/tutorial/typesfuns.html#laziness
2021-06-13 21:43:57 +0200P1RATEZ(piratez@user/p1ratez)
2021-06-13 21:44:13 +0200 <shapr> hello P1RATEZ, are you learning Haskell?
2021-06-13 21:44:23 +0200 <maerwald> davean: if you combine two lazy functions, they should *generally* fuse. That's not a very formal description, but is easily violated in haskell... very easily.
2021-06-13 21:44:25 +0200 <P1RATEZ> i was a long time ago
2021-06-13 21:44:37 +0200 <davean> maerwald: fusion and laziness are seperate
2021-06-13 21:44:38 +0200 <maerwald> davean: depending on code and even GHC version
2021-06-13 21:44:39 +0200 <shapr> P1RATEZ: aha! so you're back to try the lambda lifestyle again?
2021-06-13 21:44:41 +0200 <maerwald> davean: yes
2021-06-13 21:44:48 +0200 <davean> maerwald: so why are you talking about fusion?
2021-06-13 21:44:58 +0200 <maerwald> davean: it's a way to describe when you broke laziness
2021-06-13 21:45:18 +0200 <davean> I think of fusion as a way of talking about code optimization by replacement
2021-06-13 21:45:19 +0200 <shapr> P1RATEZ: are you using ghcup to install the latest version of the compiler and the lsp plugin?
2021-06-13 21:45:31 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
2021-06-13 21:45:48 +0200 <P1RATEZ> i don't have it installed at the moment but i could give it a shot
2021-06-13 21:45:56 +0200 <P1RATEZ> having troubles?
2021-06-13 21:46:16 +0200 <shapr> P1RATEZ: no, just wanting to help someone who's jumping into the lambda lifestyle again
2021-06-13 21:46:17 +0200teddyc(theodorc@cassarossa.samfundet.no) (Quit: WeeChat 2.3)
2021-06-13 21:46:20 +0200 <davean> maerwald: the problem with fusion is it implicitly runs functions on your code, but thats true of strict *or* lazy
2021-06-13 21:46:22 +0200 <maerwald> davean: well... "purity" was also defined in terms of evaluation strategy equivalence... so I think defining laziness semantics in terms of fusion could be a reasonable attempt
2021-06-13 21:46:28 +0200teddyc(theodorc@cassarossa.samfundet.no)
2021-06-13 21:46:30 +0200 <davean> maerwald: the fusion issue is entirely independent
2021-06-13 21:46:40 +0200 <maerwald> not independent
2021-06-13 21:46:48 +0200 <maerwald> but there are more problems to fusion than laziness
2021-06-13 21:47:34 +0200 <maerwald> I'm not writing a paper about it :)
2021-06-13 21:47:44 +0200 <shapr> maerwald, davean : perhaps we can make up "Big L notation" that describes the space usage per number of inputs?
2021-06-13 21:47:52 +0200 <shapr> L for laziness? :-)
2021-06-13 21:48:31 +0200 <davean> shapr: so in the worst case you're talking about something the size of computability - but few sane functions will hit that really.
2021-06-13 21:49:10 +0200 <davean> maerwald: So fusion can cause you to force *less* stuff than the non-fused code, but shouldn't allow you to force more for correctly implimented fusion
2021-06-13 21:49:54 +0200 <maerwald> My point is that rules for maintaining laziness are similarly obscure as rules for triggering fusion
2021-06-13 21:50:07 +0200 <davean> But not in terms of bounds
2021-06-13 21:50:34 +0200yoctocell(~yoctocell@h87-96-130-155.cust.a3fiber.se) (Quit: C-x C-c, Shutting down OS...)
2021-06-13 21:50:46 +0200 <maerwald> Most ppl, I'm certain, have no intuition about which of their functions are really properly lazy... and the only time you really develop this intuition is... when you deal with fusion
2021-06-13 21:50:59 +0200 <davean> I do not deal with fusion and I do
2021-06-13 21:51:08 +0200 <davean> so you're very much clearly showing some bias I'm unfamiliar with
2021-06-13 21:51:18 +0200 <shapr> davean: we could run a poll
2021-06-13 21:51:31 +0200Xnuk(~xnuk@45.76.202.58) (Quit: ZNC - https://znc.in)
2021-06-13 21:51:42 +0200 <shapr> or we could put up a quiz where people see the source code and then say which variables are strict or lazy or whatnot.
2021-06-13 21:51:48 +0200Xnuk(~xnuk@vultr.xnu.kr)
2021-06-13 21:51:49 +0200 <davean> mmm
2021-06-13 21:51:52 +0200 <maerwald> "understanding laziness" is an effort of fixing memory leaks in your haskell code :p
2021-06-13 21:51:56 +0200remedan(~remedan@balak.me)
2021-06-13 21:51:59 +0200 <davean> maerwald: no it isn't
2021-06-13 21:52:06 +0200 <davean> maerwald: its an effort to extract performance
2021-06-13 21:52:09 +0200 <maerwald> well, I have very different experience
2021-06-13 21:52:10 +0200 <dmwit> One thing to keep in mind is that if you are using Haskell professionally, there may well be people on the project who are not as intimately familiar with Haskell as we are.
2021-06-13 21:52:30 +0200 <shapr> true that
2021-06-13 21:52:41 +0200 <dmwit> So I agree that there is something to be said for programming in a way that leaves things robust, even if that means you don't use cool language features.
2021-06-13 21:52:42 +0200 <davean> maerwald: laziness lets us do better than the general performance bounds.
2021-06-13 21:52:55 +0200 <maerwald> when you've been paying for 64GB ram amazon instances, because you didn't use StrictData in the right places... then you start to have a somewhat different opinion
2021-06-13 21:53:31 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:53:31 +0200 <maerwald> (and that after you hired expensive haskell consultants, who couldn't find it either)
2021-06-13 21:53:38 +0200 <shapr> I bought a laptop with 128GB ram, so much easier!
2021-06-13 21:53:38 +0200 <davean> I think the largest Haskell programs I have are ~12GiB and thats because I load the entire dataset into memory of a few million node graph for performance.
2021-06-13 21:53:45 +0200wonko(~wjc@62.115.229.50) (Ping timeout: 272 seconds)
2021-06-13 21:54:03 +0200allbery_b(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-13 21:54:31 +0200 <davean> and even then about 2GiB of it is a cache
2021-06-13 21:54:36 +0200kayprish_(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:54:42 +0200 <shapr> I've still eaten far more than 128gb when I wrote a space leak. It took twenty seconds to eat my ram, and ten seconds to wait for the kill command to stop the problem.
2021-06-13 21:54:45 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds)
2021-06-13 21:54:48 +0200kayprish1(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 21:55:07 +0200allbery_bgeekosaur
2021-06-13 21:55:26 +0200 <maerwald> however... I can't say if that platform would have been truly better with "strict by default"... but I can say that debugging laziness issues is very non-trivial in haskell, and I'm wondering if the Idris approach would have helped
2021-06-13 21:55:30 +0200 <maerwald> I'm not sure
2021-06-13 21:55:54 +0200 <davean> maerwald: your experience doesn't at all match mine
2021-06-13 21:56:43 +0200 <davean> But your perspective and take on the problem doesn't either
2021-06-13 21:56:50 +0200 <davean> we clearly come at this from very different directions
2021-06-13 21:57:24 +0200 <maerwald> davean: https://github.com/yesodweb/wai/pull/752#issuecomment-501531386
2021-06-13 21:57:28 +0200 <maerwald> I agree with Kazu
2021-06-13 21:57:47 +0200 <shapr> I really enjoy laziness for many solutions
2021-06-13 21:57:55 +0200 <shapr> I just wish it were somehow more compositional
2021-06-13 21:57:57 +0200 <davean> maerwald: yah well, lets talk about warp ...
2021-06-13 21:58:01 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 21:58:01 +0200kayprish_(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 21:58:01 +0200kayprish1(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit)
2021-06-13 21:58:06 +0200 <davean> maerwald: that code base is a mess and I had to fork it
2021-06-13 21:58:12 +0200 <maerwald> :p
2021-06-13 21:58:20 +0200 <davean> It doesn't even manage exceptions!
2021-06-13 21:58:27 +0200 <davean> It doesn't work in production IME
2021-06-13 21:58:32 +0200 <maerwald> davean: guess what... I had to fork `tar`, because it's a broken mess and even after forking doesn't work correctly
2021-06-13 21:58:33 +0200 <davean> but it didn't take long to fix
2021-06-13 21:58:41 +0200 <maerwald> part of it being over-use of "lazy patterns"
2021-06-13 21:58:44 +0200 <davean> maerwald: right, its a mostly-rewrite
2021-06-13 21:58:50 +0200 <davean> maerwald: yes, that is a problem in tar
2021-06-13 21:59:00 +0200 <maerwald> while it should use a proper streaming library
2021-06-13 21:59:01 +0200 <davean> maerwald: thats actually ... yah, tar is a fuckfest
2021-06-13 21:59:08 +0200 <davean> yes, I have a version thatstarts to
2021-06-13 21:59:10 +0200 <maerwald> see, we finally agree :D
2021-06-13 21:59:14 +0200 <davean> this is actually a security bug
2021-06-13 21:59:24 +0200 <davean> tar uses laziness for a dumb reason
2021-06-13 21:59:27 +0200 <davean> and they wouldn't fix it
2021-06-13 21:59:30 +0200 <davean> so now I get to
2021-06-13 21:59:39 +0200 <davean> its better than maintaining my own warp!
2021-06-13 21:59:44 +0200 <maerwald> yes... if you have a 200mb file in the tar archive, you'll get that 200mb file loaded into memory
2021-06-13 21:59:50 +0200 <davean> no, no
2021-06-13 21:59:58 +0200 <davean> you can use tar in constant space for arbitrary files
2021-06-13 21:59:58 +0200 <maerwald> yes
2021-06-13 22:00:01 +0200 <davean> I've done that a lot
2021-06-13 22:00:01 +0200 <maerwald> no
2021-06-13 22:00:05 +0200 <davean> No, I have
2021-06-13 22:00:09 +0200 <maerwald> I don't believe you!
2021-06-13 22:00:14 +0200 <davean> I've streameed tape through it
2021-06-13 22:00:24 +0200 <maerwald> (I'm talking about unpack)
2021-06-13 22:00:25 +0200 <davean> but you can force it to load all the data
2021-06-13 22:00:50 +0200 <davean> Oh unpack?
2021-06-13 22:00:51 +0200 <maerwald> https://github.com/haskell/tar/issues/57
2021-06-13 22:00:55 +0200 <davean> No you have to use the base combinators
2021-06-13 22:00:56 +0200 <maerwald> yes, it leaks file size
2021-06-13 22:01:05 +0200 <davean> Right
2021-06-13 22:01:07 +0200 <davean> unpack is broken
2021-06-13 22:01:14 +0200 <maerwald> yeah... I fixed it with streamly
2021-06-13 22:01:15 +0200 <davean> You need to use the folds
2021-06-13 22:01:29 +0200 <maerwald> but then I thought... why use tar at all, I'm gonna re-implement it in streamly
2021-06-13 22:01:46 +0200 <maerwald> but then I was too lazy and used `libarchive`
2021-06-13 22:02:00 +0200 <maerwald> which now exposed me to tons of c2hs errors
2021-06-13 22:02:10 +0200 <maerwald> you can't win :)
2021-06-13 22:02:31 +0200 <davean> So you can use the folds interface just fine of tar
2021-06-13 22:02:42 +0200 <shapr> I kinda want to start a hackathon to add more tests to the most used libraries on hackage
2021-06-13 22:02:49 +0200 <shapr> too bad I won't be at zurihac :-(
2021-06-13 22:03:04 +0200 <maerwald> shapr: why not?
2021-06-13 22:03:07 +0200 <davean> shapr: Yah, we actually signed up for the UNIX tests as an OSS project to run the ACTUAL standards tests on tar
2021-06-13 22:03:28 +0200 <Rembane> shapr: If you start a distancehackathon wtih that purpose I'm in!
2021-06-13 22:03:55 +0200 <davean> shapr: you've seen my test coverage :-p
2021-06-13 22:03:58 +0200 <shapr> maerwald: I'm driving to see my family this weekend, emergency things that have to be done
2021-06-13 22:04:10 +0200 <davean> shapr: I tend to give up when I start finding bugs in the linux kernel via my unit tests
2021-06-13 22:04:15 +0200 <shapr> cdsmith showed me hpc yesterday, somehow I've never seen it before!
2021-06-13 22:04:28 +0200 <shapr> I'd like to see hpc coverage for all the libraries, in reverse dependcy order.
2021-06-13 22:04:30 +0200 <davean> shapr: wait, really? No you have
2021-06-13 22:04:40 +0200 <davean> shapr: because you've seen my coverage
2021-06-13 22:04:51 +0200 <shapr> davean: might have been years ago?
2021-06-13 22:04:55 +0200juhp(~juhp@128.106.188.66) (Ping timeout: 245 seconds)
2021-06-13 22:04:56 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-06-13 22:04:58 +0200 <davean> Sure, it was in like 2018
2021-06-13 22:05:09 +0200 <shapr> I must have forgotten
2021-06-13 22:05:40 +0200 <davean> I've done coverage with you though when we paired
2021-06-13 22:05:48 +0200shaprshrugs
2021-06-13 22:06:09 +0200 <davean> shapr: cabal wants hpc to be something it isn't :(
2021-06-13 22:06:19 +0200 <davean> That entire tree is such a mess
2021-06-13 22:06:32 +0200 <shapr> I think it'd be nice to have a tests hackathon
2021-06-13 22:07:01 +0200 <davean> shapr: I know I specificly went over how I did the tests in 'miss' with you BTW
2021-06-13 22:07:21 +0200 <davean> getting a fast test suite with high coverage
2021-06-13 22:07:25 +0200 <davean> I remember that specificly
2021-06-13 22:07:36 +0200juhp(~juhp@128.106.188.66)
2021-06-13 22:07:40 +0200 <davean> talking about testing methedologies in Haskell
2021-06-13 22:07:55 +0200 <davean> shapr: you know theres laziness testing libraries, right?
2021-06-13 22:08:16 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2021-06-13 22:08:25 +0200 <shapr> davean: I think I've heard of such
2021-06-13 22:08:28 +0200 <davean> actually, maerwald and dminuoso - if you do work with people who don't understand the details, have you tried specifying and using inspection testing?
2021-06-13 22:09:08 +0200hemlock(~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 252 seconds)
2021-06-13 22:10:26 +0200hemlock(~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83)
2021-06-13 22:10:50 +0200 <maerwald> I've not used hpc that extensively
2021-06-13 22:11:44 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-13 22:13:01 +0200 <maerwald> my real world problem are IO probles (e.g. in ghcup... some file operation blowing up on windows 7, bc some registry key is not set)
2021-06-13 22:13:04 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 22:13:11 +0200 <davean> maerwald: its not very loved.
2021-06-13 22:13:17 +0200 <davean> maerwald: well, thats what hpc is good for though
2021-06-13 22:13:33 +0200 <maerwald> given that you HAVE a windows 7 machine :p
2021-06-13 22:13:37 +0200 <davean> maerwald: I think you may not have read closely enough? hpc is coverage, it tells you what code is used. inspection testing is entirely seperate
2021-06-13 22:13:47 +0200 <davean> maerwald: I mean thats what CI is for?
2021-06-13 22:14:02 +0200 <davean> maerwald: but thats actually not the problem
2021-06-13 22:14:07 +0200 <maerwald> davean: yeah, except half of our runners are broken due to docker right now
2021-06-13 22:14:10 +0200 <davean> not having a W7 machine is what hpc helps with
2021-06-13 22:14:13 +0200 <maerwald> but I'm going offtrack
2021-06-13 22:14:19 +0200 <davean> it shows you *haven't checked that code path on any machine*
2021-06-13 22:14:38 +0200 <maerwald> davean: I'm not sure that would catch it... bc I do run that codepath on Windows 10
2021-06-13 22:14:42 +0200 <maerwald> it just behaves different there
2021-06-13 22:14:56 +0200 <davean> maerwald: you sure? you sure there isn't a branch not taken on W10?
2021-06-13 22:15:30 +0200 <maerwald> in MY code all paths are taken
2021-06-13 22:15:35 +0200 <maerwald> dependencies, ffi etc, I dunno
2021-06-13 22:15:47 +0200 <davean> Yah well how far you push coverage down is a thing
2021-06-13 22:16:01 +0200 <maerwald> So what I'm more interested in is testing behavior
2021-06-13 22:16:03 +0200 <davean> I've been pushing coverage into the kernel for some of my more important projects, but thats hard with Haskell
2021-06-13 22:16:10 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-13 22:16:23 +0200 <davean> If I ever figure out a useful setup for that, I should write it up ...
2021-06-13 22:16:26 +0200 <davean> everything I've got is shit
2021-06-13 22:16:28 +0200 <maerwald> when half your code is about IO and file operations, behavior matters more than anything else
2021-06-13 22:16:33 +0200alex3(~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 272 seconds)
2021-06-13 22:16:37 +0200ajarmst(~user@S01066032b134d205.ed.shawcable.net)
2021-06-13 22:16:56 +0200thelounge92(~thelounge@cpe-23-240-28-18.socal.res.rr.com)
2021-06-13 22:17:20 +0200alex3(~alex3@BSN-77-82-41.static.siol.net)
2021-06-13 22:17:31 +0200 <maerwald> I thought about using freer or whatnot to define all these operations in a DSL, which may give me more flexibility... but this might just be "cool", but not help in any way
2021-06-13 22:17:56 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 22:18:05 +0200 <maerwald> however, you could write interpreters, that simulate e.g. windows 7
2021-06-13 22:18:06 +0200 <davean> I've used that (with free, not freer) to get cleaner code and faster testing before
2021-06-13 22:18:22 +0200 <maerwald> like simulate file locking, right?
2021-06-13 22:18:25 +0200 <maerwald> that would be cool
2021-06-13 22:18:29 +0200reumeth(~reumeth@user/reumeth) (Remote host closed the connection)
2021-06-13 22:18:34 +0200 <davean> I actually worked on a FS crash simulator
2021-06-13 22:18:40 +0200 <davean> Need to restart that project
2021-06-13 22:18:53 +0200reumeth(~reumeth@user/reumeth)
2021-06-13 22:18:57 +0200 <davean> but it cuts off at the FS access level, and produces all legal FS behaviors as a tree
2021-06-13 22:18:58 +0200 <maerwald> linux vs windows is a HUGE difference... mainly due to file locking
2021-06-13 22:19:09 +0200 <davean> File locking was a reason for it
2021-06-13 22:19:17 +0200 <davean> git is ... hard to get right with respect to locks
2021-06-13 22:19:37 +0200 <davean> the design is highly inconsistent
2021-06-13 22:19:50 +0200 <davean> maerwald: why would you choose freer?
2021-06-13 22:19:54 +0200 <maerwald> like... self-updating an exe on linux: just remove it... on windows: 1. uh, try file rename, 2. but oh wait... needs to be atomic... so 3. are we on the same device and 4. make sure it really is atomic
2021-06-13 22:20:11 +0200 <maerwald> davean: becase `eff` isn't ready yet
2021-06-13 22:20:18 +0200 <maerwald> not sure it ever will
2021-06-13 22:20:31 +0200 <davean> You're happy with the freer design though?
2021-06-13 22:21:06 +0200 <davean> I'm much more comfortable with the 'free' approach
2021-06-13 22:21:49 +0200benin0366(~benin@183.82.205.8)
2021-06-13 22:21:50 +0200 <maerwald> I dunno... I also looked at polysemy and it wasn't that bad either. But from what I understand they're all slow and may even be unsound
2021-06-13 22:22:03 +0200 <davean> Right, this is why I lean to 'free' over any of them
2021-06-13 22:22:15 +0200benin036(~benin@183.82.205.8) (Ping timeout: 272 seconds)
2021-06-13 22:22:16 +0200benin0366benin036
2021-06-13 22:22:26 +0200 <davean> so I'm curious what your selection approach was
2021-06-13 22:22:36 +0200 <maerwald> "ergonomics", less technical
2021-06-13 22:22:52 +0200 <davean> Hum, the technicalities were critical to me, interesting
2021-06-13 22:22:53 +0200 <maerwald> my code is IO-bound
2021-06-13 22:23:04 +0200 <davean> Its nto about performance
2021-06-13 22:23:10 +0200 <davean> infact, its harder to get performance with 'free'
2021-06-13 22:23:15 +0200dhil(~dhil@80.208.56.181) (Ping timeout: 245 seconds)
2021-06-13 22:23:16 +0200 <davean> (though totally possible)
2021-06-13 22:23:36 +0200 <maerwald> Well, this sounds like a good project for zurihac
2021-06-13 22:24:07 +0200 <davean> but things like bracketing and how they behave in 'freer'
2021-06-13 22:24:14 +0200 <kayprish> [A[A
2021-06-13 22:24:23 +0200 <kayprish> [A[A[A
2021-06-13 22:24:38 +0200 <kayprish> trx
2021-06-13 22:24:43 +0200 <kayprish> sat
2021-06-13 22:24:49 +0200 <maerwald> davean: I never went that deep... I just wrote some small stuff... testing it on a real program will surely be more insightful
2021-06-13 22:24:59 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
2021-06-13 22:25:17 +0200 <davean> maerwald: Ah, did you not take time to understand the implimentation before using it?
2021-06-13 22:25:32 +0200 <maerwald> hell no
2021-06-13 22:25:36 +0200 <davean> Seriously?
2021-06-13 22:26:04 +0200 <kayprish> apologies guys, my client started messing with me
2021-06-13 22:26:16 +0200 <davean> kayprish: we'll never forgive you but quickly forget
2021-06-13 22:26:34 +0200 <maerwald> davean: from what I read, sometimes the authors don't understand their own implementation ;)
2021-06-13 22:26:51 +0200 <davean> maerwald: yah, which is why I take time to consider them ...
2021-06-13 22:27:01 +0200 <davean> like when reading a paper - redo the proofs
2021-06-13 22:27:09 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 22:27:09 +0200 <davean> satisfy YOURSELF they're right, don't take the author's word
2021-06-13 22:27:19 +0200 <davean> saves a bunch of time
2021-06-13 22:27:20 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-13 22:27:33 +0200 <maerwald> that's way too serious for a "lemme see if I can improve this real quick" :)
2021-06-13 22:28:24 +0200 <shapr> davean: have you considered writing blog posts about these not so well known tools?
2021-06-13 22:28:24 +0200safinaskar(~safinaska@109.252.90.89)
2021-06-13 22:28:42 +0200zeenk(~zeenk@188.26.30.39)
2021-06-13 22:28:51 +0200 <safinaskar> is there some online haskell compiler with relatively new ghc?
2021-06-13 22:29:01 +0200 <davean> shapr: Yes, though I'd NEVER think hpc wasn't well known. There the performance book over at HF thats comeing together. We had a long debate about how to handle tools.
2021-06-13 22:29:07 +0200 <safinaskar> i tried repl.it and godbolt.org, but they have old ghc versions
2021-06-13 22:29:23 +0200 <safinaskar> for example, -XGHC2021 seems not supported
2021-06-13 22:29:38 +0200 <maerwald> safinaskar: I think repl.it is indeed one of the more updated ones
2021-06-13 22:30:53 +0200 <safinaskar> maerwald: i just checked, -XGHC2021 still gives error there
2021-06-13 22:34:05 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
2021-06-13 22:34:34 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving)
2021-06-13 22:34:46 +0200reumeth(~reumeth@user/reumeth) (Ping timeout: 244 seconds)
2021-06-13 22:34:53 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-06-13 22:34:59 +0200 <maerwald> safinaskar: offline is not an option?
2021-06-13 22:35:50 +0200 <safinaskar> maerwald: of course, it is. i am simply curious whether such site exists. it would speed up my productivity
2021-06-13 22:36:24 +0200hemlock(~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 268 seconds)
2021-06-13 22:36:48 +0200hemlock(~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83)
2021-06-13 22:36:51 +0200 <maerwald> Could be another topic for the HF...
2021-06-13 22:37:00 +0200dhil(~dhil@195.213.192.47)
2021-06-13 22:38:22 +0200jakefromstatefar(~jakefroms@2001:470:69fc:105::15ef)
2021-06-13 22:39:35 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
2021-06-13 22:41:09 +0200ddellacosta(~ddellacos@89.45.224.48)
2021-06-13 22:41:53 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 272 seconds)
2021-06-13 22:42:52 +0200ddellacosta(~ddellacos@89.45.224.48) (Remote host closed the connection)
2021-06-13 22:43:21 +0200ddellacosta(~ddellacos@89.45.224.48)
2021-06-13 22:45:30 +0200ddellaco_(~ddellacos@89.45.224.243)
2021-06-13 22:46:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 22:47:50 +0200ddellacosta(~ddellacos@89.45.224.48) (Ping timeout: 245 seconds)
2021-06-13 22:51:03 +0200Guest2(~Guest2@154.21.21.108)
2021-06-13 22:51:51 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-13 22:52:10 +0200beka(~beka@104-244-27-23.static.monkeybrains.net)
2021-06-13 22:56:31 +0200Obo(~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
2021-06-13 22:56:45 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-13 22:57:33 +0200hrnzhrnz[m]
2021-06-13 22:57:50 +0200hrnz[m]hrnz
2021-06-13 22:58:44 +0200teaSlurper(~chris@81.96.113.213)
2021-06-13 23:01:30 +0200haskl(~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Ping timeout: 264 seconds)
2021-06-13 23:01:35 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Ping timeout: 245 seconds)
2021-06-13 23:02:20 +0200haskl(~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693)
2021-06-13 23:03:22 +0200bmo_(~bmo@185.254.75.34)
2021-06-13 23:03:30 +0200fizbin(~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6)
2021-06-13 23:03:36 +0200allbery_b(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-13 23:03:59 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-13 23:04:32 +0200curiousgay_(~quassel@178.217.208.8)
2021-06-13 23:04:36 +0200Scotty_Trees2(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-13 23:04:37 +0200unclechu(~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer)
2021-06-13 23:04:37 +0200carmysilna(~brightly-@2001:470:69fc:105::2190) (Read error: Connection reset by peer)
2021-06-13 23:04:37 +0200bb010g(~bb010gmat@2001:470:69fc:105::9a5) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200oak-(~oakuniver@2001:470:69fc:105::fcd) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200kadoban(~kadoban@user/kadoban) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200wallymathieu[m](~wallymath@2001:470:69fc:105::16ae) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200ru0mad[m](~ru0madmat@2001:470:69fc:105::9b2) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200unrooted(~unrooted@2001:470:69fc:105::a4a) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200siraben(~siraben@user/siraben) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200MatrixTravelerbo(~voyagert2@2001:470:69fc:105::22) (Write error: Connection reset by peer)
2021-06-13 23:04:38 +0200jaror[m](~jaror@2001:470:69fc:105::265) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200autrim64[m](~autrim64m@2001:470:69fc:105::16a1) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200bitonic(~bitonic@2001:470:69fc:105::1812) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200fgaz(~fgaz@2001:470:69fc:105::842) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200fabfianda[m](~fabfianda@2001:470:69fc:105::6db) (Read error: Connection reset by peer)
2021-06-13 23:04:38 +0200tomferon[m](~tomferon@2001:470:69fc:105::268) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200Soft(~soft-matr@2001:470:69fc:105::c75) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200marinelli[m](~marinelli@2001:470:69fc:105::2d8) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200jakefromstatefar(~jakefroms@2001:470:69fc:105::15ef) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200cdepillabout[m](~cdepillab@2001:470:69fc:105::3d3) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200dualinverter[m](~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200RohitGoswami[m](~rgoswamim@2001:470:69fc:105::16cc) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200yin[m](~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200bryan[m](~bchreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer)
2021-06-13 23:04:39 +0200Artem[m](~artemtype@2001:470:69fc:105::75b) (Read error: Connection reset by peer)
2021-06-13 23:04:40 +0200ac(~aloiscoch@2001:470:69fc:105::65) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200sm[m](~sm@plaintextaccounting/sm) (Read error: Connection reset by peer)
2021-06-13 23:04:40 +0200peddie(~peddie@2001:470:69fc:105::25d) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200jophish(~jophish@2001:470:69fc:105::670) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200adziahel[m](~adziahelm@2001:470:69fc:105::b4d) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200kosmikus[m](~andresloe@2001:470:69fc:105::95d) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200srid[m](~sridmatri@2001:470:69fc:105::1c2) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200Drezil(~drezilkif@2001:470:69fc:105::7f8) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200amesgen[m](~amesgenam@2001:470:69fc:105::82b) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200thedward[m](~thedwardm@2001:470:69fc:105::f79) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a9c) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200hjulle[m](~hjullemat@2001:470:69fc:105::1dd) (Write error: Connection reset by peer)
2021-06-13 23:04:40 +0200cdsmith(~cdsmithma@2001:470:69fc:105::284) (Write error: Connection reset by peer)
2021-06-13 23:04:42 +0200ServerStatsDisco(~serversta@2001:470:69fc:105::1a) (Read error: Connection reset by peer)
2021-06-13 23:04:42 +0200maralorn(~maralorn@2001:470:69fc:105::251) (Read error: Connection reset by peer)
2021-06-13 23:04:42 +0200the-coot[m](~the-cootm@2001:470:69fc:105::95f) (Read error: Connection reset by peer)
2021-06-13 23:04:42 +0200psydroid(~psydroidm@user/psydroid) (Read error: Connection reset by peer)
2021-06-13 23:04:48 +0200poljar(~poljar@93-139-36-109.adsl.net.t-com.hr)
2021-06-13 23:04:55 +0200comerijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 23:05:00 +0200ralu7(~ralu@static.211.245.203.116.clients.your-server.de)
2021-06-13 23:05:01 +0200lambdap2(~lambdap@static.167.190.119.168.clients.your-server.de)
2021-06-13 23:05:15 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-13 23:05:18 +0200thedward[m](~thedwardm@2001:470:69fc:105::f79)
2021-06-13 23:05:21 +0200waleee-cl(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-13 23:05:22 +0200bmo__(~bmo@185.254.75.34)
2021-06-13 23:05:24 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-13 23:05:57 +0200jao(jao@gateway/vpn/protonvpn/jao) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200pkkm(~pkkm@dgs4.neoplus.adsl.tpnet.pl) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200Techcable(~Techcable@168.235.93.147) (Read error: Connection reset by peer)
2021-06-13 23:05:57 +0200ajarmst(~user@S01066032b134d205.ed.shawcable.net) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200dispater(~dispater@user/brprice) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200bmo(~bmo@185.254.75.34) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200cheater(~Username@user/cheater) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200td_(~td@94.134.91.38) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200dcoutts__(~duncan@94.186.125.91.dyn.plus.net) (Ping timeout: 245 seconds)
2021-06-13 23:05:57 +0200beka_(~beka@104-244-27-23.static.monkeybrains.net)
2021-06-13 23:06:00 +0200teaSlurp_(~chris@81.96.113.213)
2021-06-13 23:06:06 +0200ac(~aloiscoch@2001:470:69fc:105::65)
2021-06-13 23:06:06 +0200siraben(~siraben@user/siraben)
2021-06-13 23:06:06 +0200sm[m](~sm@plaintextaccounting/sm)
2021-06-13 23:06:06 +0200maralorn(~maralorn@2001:470:69fc:105::251)
2021-06-13 23:06:07 +0200peddie(~peddie@2001:470:69fc:105::25d)
2021-06-13 23:06:07 +0200fgaz(~fgaz@2001:470:69fc:105::842)
2021-06-13 23:06:07 +0200fabfianda[m](~fabfianda@2001:470:69fc:105::6db)
2021-06-13 23:06:07 +0200bb010g(~bb010gmat@2001:470:69fc:105::9a5)
2021-06-13 23:06:07 +0200psydroid(~psydroidm@2001:470:69fc:105::165)
2021-06-13 23:06:07 +0200MatrixTravelerbo(~voyagert2@2001:470:69fc:105::22)
2021-06-13 23:06:07 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e)
2021-06-13 23:06:07 +0200ServerStatsDisco(~serversta@2001:470:69fc:105::1a)
2021-06-13 23:06:07 +0200the-coot[m](~the-cootm@2001:470:69fc:105::95f)
2021-06-13 23:06:07 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2021-06-13 23:06:07 +0200kadoban(~kadoban@user/kadoban)
2021-06-13 23:06:07 +0200jophish(~jophish@2001:470:69fc:105::670)
2021-06-13 23:06:08 +0200thelounge923(~thelounge@cpe-23-240-28-18.socal.res.rr.com)
2021-06-13 23:06:10 +0200beka(~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 245 seconds)
2021-06-13 23:06:10 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 245 seconds)
2021-06-13 23:06:11 +0200zebrag(~chris@user/zebrag) (Ping timeout: 245 seconds)
2021-06-13 23:06:11 +0200shapr`(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-06-13 23:06:14 +0200pkkm(~pkkm@dgs4.neoplus.adsl.tpnet.pl)
2021-06-13 23:06:16 +0200pavonia_(~user@user/siracusa)
2021-06-13 23:06:18 +0200srid[m](~sridmatri@2001:470:69fc:105::1c2)
2021-06-13 23:06:18 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2021-06-13 23:06:18 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2021-06-13 23:06:18 +0200dualinverter[m](~dualinver@2001:470:69fc:105::16a7)
2021-06-13 23:06:18 +0200hjulle[m](~hjullemat@2001:470:69fc:105::1dd)
2021-06-13 23:06:19 +0200cdepillabout[m](~cdepillab@2001:470:69fc:105::3d3)
2021-06-13 23:06:19 +0200unrooted(~unrooted@2001:470:69fc:105::a4a)
2021-06-13 23:06:19 +0200tomferon[m](~tomferon@2001:470:69fc:105::268)
2021-06-13 23:06:19 +0200wallymathieu[m](~wallymath@2001:470:69fc:105::16ae)
2021-06-13 23:06:19 +0200marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2021-06-13 23:06:19 +0200Drezil(~drezilkif@2001:470:69fc:105::7f8)
2021-06-13 23:06:19 +0200Soft(~soft-matr@2001:470:69fc:105::c75)
2021-06-13 23:06:19 +0200kosmikus[m](~andresloe@2001:470:69fc:105::95d)
2021-06-13 23:06:19 +0200bryan[m](~bchreekat@2001:470:69fc:105::16b5)
2021-06-13 23:06:19 +0200autrim64[m](~autrim64m@2001:470:69fc:105::16a1)
2021-06-13 23:06:19 +0200Artem[m](~artemtype@2001:470:69fc:105::75b)
2021-06-13 23:06:19 +0200amesgen[m](~amesgenam@2001:470:69fc:105::82b)
2021-06-13 23:06:19 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a9c)
2021-06-13 23:06:19 +0200adziahel[m](~adziahelm@2001:470:69fc:105::b4d)
2021-06-13 23:06:19 +0200RohitGoswami[m](~rgoswamim@2001:470:69fc:105::16cc)
2021-06-13 23:06:19 +0200yin[m](~zwromatri@2001:470:69fc:105::1d4)
2021-06-13 23:06:19 +0200jakefromstatefar(~jakefroms@2001:470:69fc:105::15ef)
2021-06-13 23:06:23 +0200carmysilna(~brightly-@2001:470:69fc:105::2190)
2021-06-13 23:06:27 +0200Techcable(~Techcable@168.235.93.147)
2021-06-13 23:06:27 +0200cheater(~Username@user/cheater)
2021-06-13 23:06:34 +0200unclechu(~unclechu@2001:470:69fc:105::354)
2021-06-13 23:06:34 +0200jaror[m](~jaror@2001:470:69fc:105::265)
2021-06-13 23:06:35 +0200cdsmith(~cdsmithma@2001:470:69fc:105::284)
2021-06-13 23:06:35 +0200oak-(~oakuniver@2001:470:69fc:105::fcd)
2021-06-13 23:06:35 +0200bitonic(~bitonic@2001:470:69fc:105::1812)
2021-06-13 23:06:35 +0200ru0mad[m](~ru0madmat@2001:470:69fc:105::9b2)
2021-06-13 23:06:36 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Ping timeout: 245 seconds)
2021-06-13 23:06:40 +0200benin0367(~benin@183.82.205.8)
2021-06-13 23:06:41 +0200ralu(~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer)
2021-06-13 23:06:41 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-06-13 23:06:41 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Quit: Ping timeout (120 seconds))
2021-06-13 23:06:41 +0200dtman34_(~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-06-13 23:06:41 +0200P1RATEZ(piratez@user/p1ratez) (Ping timeout: 252 seconds)
2021-06-13 23:06:41 +0200lechner(~lechner@letbox-vps.us-core.com) (Ping timeout: 252 seconds)
2021-06-13 23:06:42 +0200sshine(~simon@hubris.eta.solutions) (Ping timeout: 252 seconds)
2021-06-13 23:06:43 +0200dispater(~dispater@user/brprice)
2021-06-13 23:06:48 +0200juhp(~juhp@128.106.188.66) (Ping timeout: 252 seconds)
2021-06-13 23:06:48 +0200ozataman(~ozataman@71.190.112.58) (Ping timeout: 252 seconds)
2021-06-13 23:06:48 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-06-13 23:06:48 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 252 seconds)
2021-06-13 23:06:49 +0200justBull(~justache@user/justache) (Ping timeout: 252 seconds)
2021-06-13 23:06:49 +0200awth13(~user@user/awth13) (Ping timeout: 252 seconds)
2021-06-13 23:06:49 +0200Square(~a@178.62.91.8) (Ping timeout: 252 seconds)
2021-06-13 23:06:49 +0200asm(~alexander@user/asm) (Ping timeout: 252 seconds)
2021-06-13 23:06:49 +0200meejah(~meejah@rutas.meejah.ca) (Ping timeout: 252 seconds)
2021-06-13 23:06:49 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se) (Ping timeout: 252 seconds)
2021-06-13 23:07:03 +0200justBull(~justache@user/justache)
2021-06-13 23:07:05 +0200awth13(~user@user/awth13)
2021-06-13 23:07:21 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-06-13 23:07:21 +0200thelounge92(~thelounge@cpe-23-240-28-18.socal.res.rr.com) (Ping timeout: 252 seconds)
2021-06-13 23:07:21 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Ping timeout: 252 seconds)
2021-06-13 23:07:22 +0200stefan-_(~cri@42dots.de) (Ping timeout: 252 seconds)
2021-06-13 23:07:22 +0200lambdap(~lambdap@static.167.190.119.168.clients.your-server.de) (Ping timeout: 252 seconds)
2021-06-13 23:07:22 +0200xsarnik(xsarnik@lounge.fi.muni.cz) (Ping timeout: 252 seconds)
2021-06-13 23:07:25 +0200fendor(~fendor@77.119.131.227.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
2021-06-13 23:07:26 +0200sndr(~sander@user/sander)
2021-06-13 23:07:32 +0200asm(~alexander@burner.asm89.io)
2021-06-13 23:07:34 +0200xsarnik(xsarnik@lounge.fi.muni.cz)
2021-06-13 23:07:34 +0200chaosite_(~chaosite@user/chaosite)
2021-06-13 23:07:39 +0200poljar_(~poljar@93-139-36-109.adsl.net.t-com.hr)
2021-06-13 23:07:43 +0200lechner(~lechner@letbox-vps.us-core.com)
2021-06-13 23:08:10 +0200stefan-_(~cri@42dots.de)
2021-06-13 23:08:13 +0200saolof(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-13 23:08:21 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-13 23:08:28 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
2021-06-13 23:08:29 +0200nshepperd29(~nshepperd@li364-218.members.linode.com)
2021-06-13 23:08:54 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-06-13 23:09:08 +0200GIANTWORLDKEEPR_(~pjetcetal@2.95.204.25)
2021-06-13 23:09:09 +0200slowButP1esent(~slowButPr@user/slowbutpresent)
2021-06-13 23:09:25 +0200gabiruh_(~gabiruh@vps19177.publiccloud.com.br)
2021-06-13 23:09:55 +0200seeg-(~seeg@2a05:f480:1400:311:5400:1ff:feff:256)
2021-06-13 23:10:03 +0200jespada_(~jespada@90.254.242.55)
2021-06-13 23:10:12 +0200zeenk2(~zeenk@188.26.30.39)
2021-06-13 23:10:18 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-13 23:10:21 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-13 23:10:21 +0200aighearach_(~paris@c-71-63-160-210.hsd1.or.comcast.net)
2021-06-13 23:10:23 +0200zaquest_(~notzaques@5.128.210.178)
2021-06-13 23:10:23 +0200Square(~a@178.62.91.8)
2021-06-13 23:10:24 +0200sshine(~simon@hubris.eta.solutions)
2021-06-13 23:10:35 +0200curiousgay__(~quassel@178.217.208.8)
2021-06-13 23:10:36 +0200dtman34(~dtman34@c-73-62-246-247.hsd1.mn.comcast.net)
2021-06-13 23:10:58 +0200td_(~td@94.134.91.38)
2021-06-13 23:10:58 +0200Aighearach(~paris@c-71-63-160-210.hsd1.or.comcast.net) (Killed (NickServ (GHOST command used by aighearach_)))
2021-06-13 23:11:02 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-13 23:11:03 +0200charukiewicz_(~quassel@irouteince04.i.subnet.rcn.com)
2021-06-13 23:11:05 +0200ralu(~ralu@static.211.245.203.116.clients.your-server.de)
2021-06-13 23:11:06 +0200aighearach_Aighearach
2021-06-13 23:11:07 +0200ell2(~ellie@user/ellie)
2021-06-13 23:11:19 +0200np(~nerdypepp@user/nerdypepper)
2021-06-13 23:11:21 +0200MidAutumnMoon2(~MidAutumn@user/midautumnmoon)
2021-06-13 23:11:22 +0200lambdap(~lambdap@static.167.190.119.168.clients.your-server.de)
2021-06-13 23:11:27 +0200pierrot_(~pi@user/pierrot)
2021-06-13 23:11:31 +0200abhixec_(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-06-13 23:11:37 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se)
2021-06-13 23:11:38 +0200wolfshappen_(~waff@irc.furworks.de)
2021-06-13 23:11:51 +0200LambdaDu1k(~anka@ksit.fixme.fi)
2021-06-13 23:11:51 +0200barrucad1(~barrucadu@carcosa.barrucadu.co.uk)
2021-06-13 23:12:01 +0200thaumavorio_(~thaumavor@thaumavor.io)
2021-06-13 23:12:10 +0200xerox_(~edi@user/edi)
2021-06-13 23:12:14 +0200mjrosenb(~mrosenbe@nyc.schrodinger.com)
2021-06-13 23:12:18 +0200Shards(~Scraeling@user/scraeling)
2021-06-13 23:12:23 +0200hpc_(~juzz@ip98-169-35-13.dc.dc.cox.net)
2021-06-13 23:12:24 +0200comerijn_(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-13 23:12:25 +0200int-e_(~noone@int-e.eu)
2021-06-13 23:12:26 +0200ubuntu_(~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com)
2021-06-13 23:12:33 +0200ptrcmd_(~ptrcmd@user/ptrcmd)
2021-06-13 23:12:34 +0200Bartosz(~textual@24.35.90.211)
2021-06-13 23:12:34 +0200Bartosz(~textual@24.35.90.211) (Client Quit)
2021-06-13 23:12:35 +0200jneira_(~jneira_@166.red-81-39-172.dynamicip.rima-tde.net)
2021-06-13 23:12:48 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
2021-06-13 23:12:48 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-13 23:12:49 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.204.25) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200ajarmst`(~user@S01066032b134d205.ed.shawcable.net)
2021-06-13 23:12:49 +0200jespada(~jespada@90.254.242.55) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200pavonia(~user@user/siracusa) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200zaquest(~notzaques@5.128.210.178) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200poljar1(~poljar@93-139-36-109.adsl.net.t-com.hr) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200allbery_b(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200bmo_(~bmo@185.254.75.34) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200benin036(~benin@183.82.205.8) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200curiousgay(~quassel@178.217.208.8) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200sander(~sander@user/sander) (Ping timeout: 272 seconds)
2021-06-13 23:12:49 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Ping timeout: 272 seconds)
2021-06-13 23:12:50 +0200sndrsander
2021-06-13 23:12:50 +0200benin0367benin036
2021-06-13 23:12:54 +0200dixie_(~dixie@real.wilbury.sk)
2021-06-13 23:13:00 +0200slowButP1esentslowButPresent
2021-06-13 23:13:08 +0200dy`(~dy@user/dy)
2021-06-13 23:13:09 +0200jneira_jneira
2021-06-13 23:13:22 +0200meridion_(~meridion@punt.hetgrotebos.org)
2021-06-13 23:13:47 +0200xlei_(znc@pool-68-129-84-118.nycmny.fios.verizon.net)
2021-06-13 23:13:50 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-13 23:14:01 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-06-13 23:14:03 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2021-06-13 23:14:11 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 272 seconds)
2021-06-13 23:14:29 +0200forell_(~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
2021-06-13 23:14:37 +0200mniip_(mniip@libera/staff/mniip)
2021-06-13 23:14:38 +0200chomwitt(~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 268 seconds)
2021-06-13 23:14:46 +0200chaosite(~chaosite@user/chaosite) (Read error: Connection reset by peer)
2021-06-13 23:14:46 +0200curiousgay_(~quassel@178.217.208.8) (Read error: Connection reset by peer)
2021-06-13 23:14:46 +0200dy(~dy@user/dy) (Ping timeout: 264 seconds)
2021-06-13 23:14:46 +0200yahb(xsbot@user/mniip/bot/yahb) (Ping timeout: 264 seconds)
2021-06-13 23:14:46 +0200xerox(~edi@user/edi) (Ping timeout: 264 seconds)
2021-06-13 23:14:46 +0200Ekho(~Ekho@user/ekho) (Ping timeout: 264 seconds)
2021-06-13 23:14:46 +0200wolfshappen(~waff@irc.furworks.de) (Read error: Connection reset by peer)
2021-06-13 23:14:46 +0200pavonia_(~user@user/siracusa) (Ping timeout: 264 seconds)
2021-06-13 23:14:46 +0200shapr`(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200bmo__(~bmo@185.254.75.34) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200poljar(~poljar@93-139-36-109.adsl.net.t-com.hr) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200Scotty_Trees2(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200ptrcmd(~ptrcmd@user/ptrcmd) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200forell(~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200LambdaDuck(~anka@ksit.fixme.fi) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200nshepperd2(~nshepperd@li364-218.members.linode.com) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200barrucadu(~barrucadu@carcosa.barrucadu.co.uk) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200superbil(~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200bjfs(bart@kobayashi.com.pl) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200ralu7(~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200comerijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200zeenk(~zeenk@188.26.30.39) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200seeg_(~seeg@45.76.32.162) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200mjrosenb_(~mrosenbe@104.225.243.2) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200ell(~ellie@user/ellie) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200Guest2041(~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200thaumavorio(~thaumavor@thaumavor.io) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200int-e(~noone@int-e.eu) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200Scraeling(~Scraeling@34.84.165.63) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200meridion(~meridion@punt.hetgrotebos.org) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200lambdap2(~lambdap@static.167.190.119.168.clients.your-server.de) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200tcard(~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200pierrot(~pi@user/pierrot) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200hpc(~juzz@98.169.35.13) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200dixie(~dixie@real.wilbury.sk) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200nerdypepper(~nerdypepp@user/nerdypepper) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200mniip(mniip@libera/staff/mniip) (Ping timeout: 624 seconds)
2021-06-13 23:14:47 +0200chkno_(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-06-13 23:14:47 +0200xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 264 seconds)
2021-06-13 23:14:47 +0200MidAutumnMoon2MidAutumnMoon
2021-06-13 23:14:48 +0200ell2ell
2021-06-13 23:14:58 +0200Sgeo_(~Sgeo@ool-18b9875e.dyn.optonline.net)
2021-06-13 23:15:11 +0200meejah(~meejah@rutas.meejah.ca)
2021-06-13 23:15:13 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-13 23:15:29 +0200poljar(~poljar@93-139-36-109.adsl.net.t-com.hr)
2021-06-13 23:15:33 +0200yahb(xsbot@user/mniip/bot/yahb)
2021-06-13 23:15:33 +0200notzmv(~zmv@user/notzmv)
2021-06-13 23:15:50 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-06-13 23:16:02 +0200teaSlurper(~chris@81.96.113.213)
2021-06-13 23:16:09 +0200waleee-cl(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds)
2021-06-13 23:16:09 +0200beka__(~beka@104-244-27-23.static.monkeybrains.net)
2021-06-13 23:16:16 +0200safinaskar(~safinaska@109.252.90.89) ()
2021-06-13 23:16:34 +0200nshepperd2(~nshepperd@li364-218.members.linode.com)
2021-06-13 23:17:05 +0200benin0362(~benin@183.82.205.8)
2021-06-13 23:17:12 +0200awth13`(~user@185.209.196.143)
2021-06-13 23:17:18 +0200pavonia(~user@user/siracusa)
2021-06-13 23:17:22 +0200ham(~ham4@user/ham) (Read error: Connection reset by peer)
2021-06-13 23:17:40 +0200waleee-cl(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-06-13 23:18:02 +0200thelounge9230(~thelounge@cpe-23-240-28-18.socal.res.rr.com)
2021-06-13 23:18:14 +0200oxide(~lambda@user/oxide)
2021-06-13 23:18:39 +0200pkkm2(~pkkm@dgs4.neoplus.adsl.tpnet.pl)
2021-06-13 23:18:42 +0200teehemkay_(sid14792@id-14792.tooting.irccloud.com)
2021-06-13 23:18:43 +0200wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-13 23:18:58 +0200Tuplanolla1(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-06-13 23:19:16 +0200iphy_(sid67735@id-67735.tooting.irccloud.com)
2021-06-13 23:19:21 +0200chaosite(~chaosite@user/chaosite)
2021-06-13 23:19:26 +0200ham(~ham4@user/ham)
2021-06-13 23:19:42 +0200NemesisD_(sid24071@id-24071.tooting.irccloud.com)
2021-06-13 23:19:45 +0200teehemkay(sid14792@id-14792.tooting.irccloud.com) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200acid(~acid@user/acid) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200iphy(sid67735@2001:67c:2f08:4::1:897) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200jackhill(~jackhill@kalessin.dragonsnail.net) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200kmein(~weechat@user/kmein) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200dwt_(~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200liskin(~liskin@xmonad/liskin) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200NemesisD(sid24071@2001:67c:2f08:4::5e07) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200esclear[i](~esclear@phobos.esclear.de) (Ping timeout: 265 seconds)
2021-06-13 23:19:45 +0200koz(~koz@121.99.240.58) (Ping timeout: 265 seconds)
2021-06-13 23:19:46 +0200teehemkay_teehemkay
2021-06-13 23:19:46 +0200iphy_iphy
2021-06-13 23:19:46 +0200NemesisD_NemesisD
2021-06-13 23:19:49 +0200Techcable_(~Techcable@168.235.93.147)
2021-06-13 23:19:54 +0200lisk1n(~liskin@xmonad/liskin)
2021-06-13 23:19:55 +0200kmein(~weechat@user/kmein)
2021-06-13 23:20:00 +0200xsarnik3(xsarnik@lounge.fi.muni.cz)
2021-06-13 23:20:00 +0200koz-(~koz@121.99.240.58)
2021-06-13 23:20:03 +0200koz-koz
2021-06-13 23:20:14 +0200sndr(~sander@user/sander)
2021-06-13 23:20:18 +0200slowButP1esent(~slowButPr@user/slowbutpresent)
2021-06-13 23:20:19 +0200asm_(~alexander@burner.asm89.io)
2021-06-13 23:20:24 +0200bcoppens_(~bartcopp@vpn2.bartcoppens.be)
2021-06-13 23:20:57 +0200comerijn_(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-06-13 23:21:02 +0200Guest2(~Guest2@154.21.21.108) (Quit: Client closed)
2021-06-13 23:21:07 +0200NieDzejkob_(~quassel@195.149.98.3)
2021-06-13 23:21:11 +0200Unode_(~Unode@194.94.44.220)
2021-06-13 23:21:13 +0200mekeor(~user@2001:a61:34b6:5701:f8e2:383b:42a4:84ad)
2021-06-13 23:21:22 +0200pie__bnc(~pie_bnc@user/pie/x-2818909)
2021-06-13 23:21:36 +0200acid(~acid@user/acid)
2021-06-13 23:21:40 +0200lisq_(~quassel@lis.moe)
2021-06-13 23:21:44 +0200esclear[i](~esclear@phobos.esclear.de)
2021-06-13 23:21:45 +0200Aleksejs_Home(~Aleksejs@haskell.lv)
2021-06-13 23:21:54 +0200neceve(~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 264 seconds)
2021-06-13 23:22:01 +0200NieDzejkob(~quassel@195.149.98.3) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200fjmorazan(~quassel@user/fjmorazan) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200bcoppens(~bartcopp@vpn2.bartcoppens.be) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200Aleksejs(~Aleksejs@haskell.lv) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200Unode(~Unode@194.94.44.220) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200pie_bnc(~pie_bnc@user/pie/x-2818909) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200amir(sid22336@user/amir) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200c_wraith(~c_wraith@adjoint.us) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200agander_m(sid407952@id-407952.tinside.irccloud.com) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200dexterfoo(dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200kaychaks_(sid236345@id-236345.brockwell.irccloud.com) (Ping timeout: 265 seconds)
2021-06-13 23:22:02 +0200Unode_Unode
2021-06-13 23:22:04 +0200incertia(~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 265 seconds)
2021-06-13 23:22:04 +0200lisq(~quassel@lis.moe) (Ping timeout: 265 seconds)
2021-06-13 23:22:04 +0200bbhoss(sid18216@id-18216.tinside.irccloud.com) (Ping timeout: 265 seconds)
2021-06-13 23:22:04 +0200ski(~ski@ed-3358-10.studat.chalmers.se) (Ping timeout: 265 seconds)
2021-06-13 23:22:04 +0200peutri(~peutri@ns317027.ip-94-23-46.eu) (Ping timeout: 265 seconds)
2021-06-13 23:22:04 +0200T_S_(sid501726@id-501726.highgate.irccloud.com) (Ping timeout: 265 seconds)
2021-06-13 23:22:04 +0200integral(sid296274@user/integral) (Ping timeout: 265 seconds)
2021-06-13 23:22:06 +0200pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-57-65-92-163-194.dsl.bell.ca)
2021-06-13 23:22:06 +0200fjmorazan_(~quassel@user/fjmorazan)
2021-06-13 23:22:23 +0200ski(~ski@ed-3358-10.studat.chalmers.se)
2021-06-13 23:22:30 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Killed (NickServ (GHOST command used by Tuplanolla1)))
2021-06-13 23:22:33 +0200kaychaks_(sid236345@brockwell.irccloud.com)
2021-06-13 23:22:33 +0200Tuplanolla1Tuplanolla
2021-06-13 23:22:33 +0200amir(sid22336@user/amir)
2021-06-13 23:22:42 +0200abrar(~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Ping timeout: 265 seconds)
2021-06-13 23:22:42 +0200adamse(sid72084@user/adamse) (Ping timeout: 265 seconds)
2021-06-13 23:22:44 +0200dexterfoo(dexter@2a01:7e00::f03c:91ff:fe86:59ec)
2021-06-13 23:22:45 +0200cheater1__(~Username@user/cheater)
2021-06-13 23:22:50 +0200abrar_(~abrar@static-108-2-152-54.phlapa.fios.verizon.net)
2021-06-13 23:22:51 +0200peutri(~peutri@ns317027.ip-94-23-46.eu)
2021-06-13 23:23:00 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 23:23:02 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-06-13 23:23:08 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 265 seconds)
2021-06-13 23:23:08 +0200pieguy128_(~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) (Ping timeout: 265 seconds)
2021-06-13 23:23:31 +0200T_S_(sid501726@id-501726.highgate.irccloud.com)
2021-06-13 23:23:34 +0200integral(sid296274@user/integral)
2021-06-13 23:23:38 +0200Patternm1ster(~georg@li1192-118.members.linode.com)
2021-06-13 23:23:40 +0200Ekho-(~Ekho@user/ekho)
2021-06-13 23:23:42 +0200agander_m(sid407952@id-407952.tinside.irccloud.com)
2021-06-13 23:23:44 +0200adamse(sid72084@user/adamse)
2021-06-13 23:23:49 +0200remexre(~nathan@user/remexre) (Remote host closed the connection)
2021-06-13 23:24:04 +0200remexre(~nathan@user/remexre)
2021-06-13 23:24:10 +0200meridion_meridion
2021-06-13 23:24:22 +0200tcard(~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp)
2021-06-13 23:24:23 +0200bbhoss(sid18216@id-18216.tinside.irccloud.com)
2021-06-13 23:24:48 +0200jackhill(~jackhill@kalessin.dragonsnail.net)
2021-06-13 23:24:53 +0200zaquest_(~notzaques@5.128.210.178) (*.net *.split)
2021-06-13 23:24:53 +0200xlei_(znc@pool-68-129-84-118.nycmny.fios.verizon.net) (*.net *.split)
2021-06-13 23:24:53 +0200GIANTWORLDKEEPR_(~pjetcetal@2.95.204.25) (*.net *.split)
2021-06-13 23:24:53 +0200slowButPresent(~slowButPr@user/slowbutpresent) (*.net *.split)
2021-06-13 23:24:53 +0200nshepperd29(~nshepperd@li364-218.members.linode.com) (*.net *.split)
2021-06-13 23:24:53 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (*.net *.split)
2021-06-13 23:24:53 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (*.net *.split)
2021-06-13 23:24:53 +0200saolof(~olofs@90-227-86-119-no542.tbcn.telia.com) (*.net *.split)
2021-06-13 23:24:53 +0200stefan-_(~cri@42dots.de) (*.net *.split)
2021-06-13 23:24:53 +0200poljar_(~poljar@93-139-36-109.adsl.net.t-com.hr) (*.net *.split)
2021-06-13 23:24:53 +0200chaosite_(~chaosite@user/chaosite) (*.net *.split)
2021-06-13 23:24:53 +0200xsarnik(xsarnik@lounge.fi.muni.cz) (*.net *.split)
2021-06-13 23:24:53 +0200asm(~alexander@burner.asm89.io) (*.net *.split)
2021-06-13 23:24:53 +0200sander(~sander@user/sander) (*.net *.split)
2021-06-13 23:24:53 +0200awth13(~user@user/awth13) (*.net *.split)
2021-06-13 23:24:53 +0200benin036(~benin@183.82.205.8) (*.net *.split)
2021-06-13 23:24:53 +0200Techcable(~Techcable@168.235.93.147) (*.net *.split)
2021-06-13 23:24:53 +0200justBull(~justache@user/justache) (*.net *.split)
2021-06-13 23:24:53 +0200cheater(~Username@user/cheater) (*.net *.split)
2021-06-13 23:24:53 +0200pkkm(~pkkm@dgs4.neoplus.adsl.tpnet.pl) (*.net *.split)
2021-06-13 23:24:53 +0200thelounge923(~thelounge@cpe-23-240-28-18.socal.res.rr.com) (*.net *.split)
2021-06-13 23:24:53 +0200teaSlurp_(~chris@81.96.113.213) (*.net *.split)
2021-06-13 23:24:53 +0200beka_(~beka@104-244-27-23.static.monkeybrains.net) (*.net *.split)
2021-06-13 23:24:53 +0200xsperry(~as@user/xsperry) (*.net *.split)
2021-06-13 23:24:53 +0200Sgeo(~Sgeo@user/sgeo) (*.net *.split)
2021-06-13 23:24:53 +0200tv(~tv@user/tv) (*.net *.split)
2021-06-13 23:24:53 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (*.net *.split)
2021-06-13 23:24:54 +0200Lord_of_Life_Lord_of_Life
2021-06-13 23:24:55 +0200sndrsander
2021-06-13 23:24:55 +0200benin0362benin036
2021-06-13 23:24:55 +0200xsarnik3xsarnik
2021-06-13 23:24:57 +0200cheater1__cheater
2021-06-13 23:25:02 +0200stefan-__(~cri@42dots.de)
2021-06-13 23:25:21 +0200Pent(sid313808@id-313808.tooting.irccloud.com) (Ping timeout: 265 seconds)
2021-06-13 23:25:21 +0200tureba(tureba@tureba.org) (Ping timeout: 265 seconds)
2021-06-13 23:25:27 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it)
2021-06-13 23:25:34 +0200c_wraith(~c_wraith@adjoint.us)
2021-06-13 23:25:37 +0200justBull7(~justache@user/justache)
2021-06-13 23:25:49 +0200V(~v@anomalous.eu) (Ping timeout: 265 seconds)
2021-06-13 23:25:49 +0200Patternmaster(~georg@li1192-118.members.linode.com) (Ping timeout: 265 seconds)
2021-06-13 23:26:00 +0200tv(~tv@user/tv)
2021-06-13 23:26:18 +0200zaquest_(~notzaques@5.128.210.178)
2021-06-13 23:26:23 +0200incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2021-06-13 23:26:25 +0200lisk1nliskin
2021-06-13 23:26:26 +0200slowButP1esentslowButPresent
2021-06-13 23:26:36 +0200V(~v@anomalous.eu)
2021-06-13 23:26:36 +0200Pent(sid313808@id-313808.tooting.irccloud.com)
2021-06-13 23:27:27 +0200xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net)
2021-06-13 23:27:40 +0200wroathe_wroathe
2021-06-13 23:27:44 +0200vicfred(~vicfred@user/vicfred)
2021-06-13 23:27:46 +0200tureba(~tureba@tureba.org)
2021-06-13 23:27:52 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-13 23:28:15 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-06-13 23:28:53 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-13 23:29:17 +0200xsperry(~as@user/xsperry)
2021-06-13 23:30:10 +0200Megant(megant@user/megant) (Ping timeout: 265 seconds)
2021-06-13 23:30:34 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Changing host)
2021-06-13 23:30:34 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-13 23:30:39 +0200Megant(megant@user/megant)
2021-06-13 23:30:53 +0200GIANTWORLDKEEPR_(~pjetcetal@2.95.204.25)
2021-06-13 23:35:05 +0200Bartosz(~textual@104.192.206.22)
2021-06-13 23:35:15 +0200sm2n(~sm2n@user/sm2n)
2021-06-13 23:36:05 +0200justBull7justBull
2021-06-13 23:36:35 +0200blackbar1(~sv@pool-173-63-177-191.nwrknj.fios.verizon.net)
2021-06-13 23:36:43 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-13 23:37:12 +0200haskl(~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Remote host closed the connection)
2021-06-13 23:37:16 +0200haskller(~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693)
2021-06-13 23:37:20 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:b19b:35e2:2fd0:444d) (Quit: Leaving)
2021-06-13 23:37:42 +0200superbil(~superbil@1-34-176-171.HINET-IP.hinet.net)
2021-06-13 23:37:53 +0200bjfs(bart@kobayashi.com.pl)
2021-06-13 23:38:22 +0200barrucad1barrucadu
2021-06-13 23:38:24 +0200zfnmxt(~zfnmxt@user/zfnmxt) (Quit: Bye!)
2021-06-13 23:41:55 +0200azeem(~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-13 23:43:31 +0200sander(~sander@user/sander) (Quit: So long! :))
2021-06-13 23:44:35 +0200fizbin(~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Remote host closed the connection)
2021-06-13 23:47:59 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-13 23:50:43 +0200bfrk(~bfrk@200116b845b21700ca15fbad8d1b9d07.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2021-06-13 23:51:19 +0200forell_forell
2021-06-13 23:53:07 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-13 23:53:57 +0200chaosite(~chaosite@user/chaosite) (Ping timeout: 272 seconds)
2021-06-13 23:54:48 +0200Bartosz(~textual@104.192.206.22) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-13 23:54:52 +0200tcard(~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2021-06-13 23:57:07 +0200superbil(~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 244 seconds)
2021-06-13 23:57:20 +0200warnz(~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6)
2021-06-13 23:58:23 +0200tcard(~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp)
2021-06-13 23:59:22 +0200chaosite(~chaosite@user/chaosite)