2020/11/27

2020-11-27 00:03:15 +0100Amras(~Amras@unaffiliated/amras) (Ping timeout: 272 seconds)
2020-11-27 00:05:36 +0100 <hekkaidekapus> dminuoso: Is `Data.Tree` a hard or lax requirement?
2020-11-27 00:05:36 +0100coot(~coot@37.30.48.178.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-11-27 00:10:25 +0100bruce_wayne(~prateekpr@94.129.87.184) (Ping timeout: 240 seconds)
2020-11-27 00:10:59 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net)
2020-11-27 00:11:17 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 00:11:18 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-27 00:11:41 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 00:11:43 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 00:12:25 +0100 <dminuoso> hekkaidekapus: Mmm, well my data is in Tree currently. What do you have in mind?
2020-11-27 00:12:54 +0100 <hekkaidekapus> Suggesting an fgl export.
2020-11-27 00:13:56 +0100 <hekkaidekapus> fgl is an almost zero-cost intermediate step because you already have all its deps.
2020-11-27 00:14:12 +0100 <hekkaidekapus> Then have fun with graphviz.
2020-11-27 00:14:39 +0100honigkuchen(~honigkuch@ip5b42981b.dynamic.kabel-deutschland.de)
2020-11-27 00:15:21 +0100esandeen(~esandeen@84.39.117.57)
2020-11-27 00:16:13 +0100invaser(~Thunderbi@31.148.23.125) (Quit: invaser)
2020-11-27 00:16:23 +0100ryantrinkle(~ryan@cpe-68-173-35-198.nyc.res.rr.com)
2020-11-27 00:16:34 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-27 00:16:50 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-11-27 00:17:00 +0100hackagephonetic-languages-common 0.1.2.0 - A generalization of the uniqueness-periods-vector-common package. https://hackage.haskell.org/package/phonetic-languages-common-0.1.2.0 (OleksandrZhabenko)
2020-11-27 00:17:38 +0100 <dminuoso> Mmm, fgl always intimidated me, but Ill give it a try
2020-11-27 00:19:01 +0100 <hekkaidekapus> You will touch its easiest parts: just building a graph, for instance going for `Data.Graph.Inductive.Graph`. Once you have the graph,
2020-11-27 00:19:17 +0100 <hekkaidekapus> all is left is letting the other library do its part.
2020-11-27 00:19:57 +0100 <hekkaidekapus> There you can also deal with just dumping a .dot, no need to draw cute diagrams at first.
2020-11-27 00:20:00 +0100 <ryantrinkle> is there a way to get a type signature like `forall (a :: (k1, k2)). a` to unify with `'(t1, t2)`?
2020-11-27 00:20:12 +0100 <ryantrinkle> i get Couldn't match type ‘a1’ with ‘'(aOut0, bOut0)’
2020-11-27 00:21:05 +0100 <shapr> dminuoso: algebraic graphs?
2020-11-27 00:21:24 +0100 <shapr> that's what weeder is using
2020-11-27 00:21:27 +0100 <shapr> well, weeder 2.0
2020-11-27 00:21:34 +0100 <hekkaidekapus> Does `alga` have a GraphViz interface?
2020-11-27 00:21:42 +0100 <shapr> oh, don't know
2020-11-27 00:21:50 +0100 <shapr> good point
2020-11-27 00:22:25 +0100 <hekkaidekapus> Yeah, were not it for .dot files, I’d have gone with alga too.
2020-11-27 00:23:57 +0100 <dminuoso> hekkaidekapus: Ah alright. I found some chunk of code I can just copy and paste from stackoverflow
2020-11-27 00:24:16 +0100 <hekkaidekapus> Cheers!
2020-11-27 00:24:25 +0100 <dminuoso> https://stackoverflow.com/questions/13355968/elegant-way-to-convert-a-tree-to-a-functional-graph-l…
2020-11-27 00:24:47 +0100jneira(02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) (Quit: Ping timeout (120 seconds))
2020-11-27 00:25:10 +0100jess(jess@freenode/staff/jess) (Quit: Leaving)
2020-11-27 00:25:58 +0100aidecoe(~aidecoe@unaffiliated/aidecoe) (Ping timeout: 256 seconds)
2020-11-27 00:26:01 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 00:26:39 +0100aidecoe(~aidecoe@unaffiliated/aidecoe)
2020-11-27 00:27:36 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
2020-11-27 00:27:53 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 00:28:06 +0100Anthaas(~Anthaas@unaffiliated/anthaas)
2020-11-27 00:28:09 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
2020-11-27 00:30:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 00:33:19 +0100hekkaidekapusnotices that I kept in mind `alga` which is the repository’s name on GitHub. On Hackage, that’s another library; there I have to remember `algebraic-graphs`. ;)
2020-11-27 00:33:21 +0100 <sm[m]> awkward
2020-11-27 00:34:23 +0100 <hekkaidekapus> heh Now, that’s a timing, sm[m] :d
2020-11-27 00:35:01 +0100dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 264 seconds)
2020-11-27 00:35:35 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-27 00:35:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-11-27 00:35:50 +0100 <sm[m]> I just got rid of fgl since sp was giving a silly result. Probably I was holding it wrong but still, I didn't find fgl too friendly
2020-11-27 00:36:21 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-11-27 00:36:37 +0100 <hekkaidekapus> What’s sp?
2020-11-27 00:36:39 +0100 <ryantrinkle> doing the same thing with closed type families Fst and Snd (defined the obvious way) works
2020-11-27 00:36:48 +0100 <sm[m]> shortest path
2020-11-27 00:37:32 +0100 <hekkaidekapus> Ah. fgl has a 2 decades old baggage.
2020-11-27 00:37:55 +0100 <sm[m]> with an edge directly from 0 to 2 it was saying the shortest path was 0,1,2
2020-11-27 00:38:43 +0100alp(~alp@2a01:e0a:58b:4920:fc4d:b6b4:4592:5e81) (Ping timeout: 272 seconds)
2020-11-27 00:38:56 +0100 <hekkaidekapus> Weird. How was the graph built?
2020-11-27 00:39:54 +0100 <sm[m]> uh, by me with mkGraph IIRC ? And I thought it was working fine for a few months. Sorry don't have code in front of me
2020-11-27 00:40:25 +0100 <hekkaidekapus> <https://github.com/haskell/fgl/issues/67>
2020-11-27 00:41:30 +0100 <sm[m]> I looked for issues and apparently more than one edge between nodes will confuse it (but it won't warn you) and maybe also it doesn't do directed edges.. not sure
2020-11-27 00:42:41 +0100 <hekkaidekapus> The internal representation assumes single edges for all nodes. The fix is to brek old code and that’s not yet done.
2020-11-27 00:43:01 +0100pavonia(~user@unaffiliated/siracusa)
2020-11-27 00:43:13 +0100 <sm[m]> yes that's the one. Let's assume that was my problem. I realized it was easier to write an sp tailored to my needs
2020-11-27 00:43:21 +0100 <sm[m]> hekkaidekapus: do you work on fgl ?
2020-11-27 00:44:02 +0100 <hekkaidekapus> Nope; had just noticed that a few months ago. Check out algebraic-graphs for the latest shiny (and sound) library for graphs.
2020-11-27 00:44:10 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-11-27 00:44:55 +0100 <sm[m]> I feel like maybe it didn't have a shortest-path when I looked, but I might be wrong
2020-11-27 00:45:11 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-11-27 00:45:18 +0100dibblego(~dibblego@122-199-1-30.ip4.superloop.com)
2020-11-27 00:45:18 +0100dibblego(~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
2020-11-27 00:45:18 +0100dibblego(~dibblego@haskell/developer/dibblego)
2020-11-27 00:45:55 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-27 00:46:06 +0100hekkaidekapus_hmm… Sound is a bit exaggerated. fgl is also sounds; the code is just too clunky; type synonyms everywhere…
2020-11-27 00:46:13 +0100 <koz_> algebraic-graphs is pretty nice.
2020-11-27 00:47:43 +0100 <shapr> I could never get into fgl, I really tried
2020-11-27 00:48:03 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-27 00:50:28 +0100mawk(mawk@serveur.io) (Quit: ZNC - https://znc.in)
2020-11-27 00:51:49 +0100 <hekkaidekapus_> sm[m]: <https://hackage.haskell.org/package/algebraic-graphs-0.5/docs/Algebra-Graph-Label.html#t:ShortestP…>
2020-11-27 00:54:00 +0100hackagephonetic-languages-properties 0.3.0.1 - A generalization of the uniqueness-periods-vector-properties package. https://hackage.haskell.org/package/phonetic-languages-properties-0.3.0.1 (OleksandrZhabenko)
2020-11-27 00:56:35 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-27 00:57:30 +0100hackagephonetic-languages-general 0.3.0.1 - A generalization of the uniqueness-periods-vector-general functionality. https://hackage.haskell.org/package/phonetic-languages-general-0.3.0.1 (OleksandrZhabenko)
2020-11-27 01:02:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 01:03:10 +0100christo(~chris@81.96.113.213)
2020-11-27 01:03:57 +0100 <hekkaidekapus_> shapr: It turns out pangraph can bridge between alga and fgl, thus there is a … path from alga to graphviz. (Not going the rabbit hole of checking with real code at the moment, but the possibility is there.)
2020-11-27 01:04:45 +0100hekkaidekapus_notes that pangraph might have been another opportunity to put backpack at work…
2020-11-27 01:05:44 +0100mawk(mawk@serveur.io)
2020-11-27 01:08:43 +0100Anthaas(~Anthaas@unaffiliated/anthaas) (Read error: Connection reset by peer)
2020-11-27 01:09:01 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-27 01:09:26 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 01:11:07 +0100Anthaas(~Anthaas@unaffiliated/anthaas)
2020-11-27 01:11:44 +0100Anthaas(~Anthaas@unaffiliated/anthaas) (Read error: Connection reset by peer)
2020-11-27 01:12:43 +0100Anthaas(~Anthaas@unaffiliated/anthaas)
2020-11-27 01:14:37 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2020-11-27 01:15:30 +0100hackagephonetic-languages-examples 0.6.2.1 - A generalization of the uniqueness-periods-vector-examples functionality. https://hackage.haskell.org/package/phonetic-languages-examples-0.6.2.1 (OleksandrZhabenko)
2020-11-27 01:16:37 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2020-11-27 01:16:40 +0100jedws(~jedws@101.184.180.34)
2020-11-27 01:17:28 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
2020-11-27 01:19:44 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 256 seconds)
2020-11-27 01:27:08 +0100klardotsh(~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net) (Quit: WeeChat 2.9)
2020-11-27 01:29:52 +0100 <monochrom> Every year at this time I share with you: pumpkin catmorphism http://www.vex.net/~trebla/photo/unorganized/pumpkin-catmorphism.jpg
2020-11-27 01:30:53 +0100 <sm[m]> hekkaidekapus_: thanks
2020-11-27 01:33:29 +0100 <hekkaidekapus_> yw
2020-11-27 01:33:31 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-11-27 01:34:26 +0100 <hekkaidekapus_> monochrom: ty :p
2020-11-27 01:35:00 +0100hackagelanguage-dickinson 1.4.1.1 - A language for generative literature https://hackage.haskell.org/package/language-dickinson-1.4.1.1 (vmchale)
2020-11-27 01:35:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2020-11-27 01:37:01 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 01:37:24 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-27 01:37:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-27 01:38:15 +0100hekkaidekapus_hekkaidekapus
2020-11-27 01:39:30 +0100christo(~chris@81.96.113.213)
2020-11-27 01:41:04 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 01:41:31 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 246 seconds)
2020-11-27 01:43:53 +0100jollygood2(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-11-27 01:44:01 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-11-27 01:44:20 +0100tswett(a2cf47fd@unaffiliated/tswett)
2020-11-27 01:44:26 +0100christo(~chris@81.96.113.213)
2020-11-27 01:46:25 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2020-11-27 01:50:17 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2020-11-27 01:51:13 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-11-27 01:53:49 +0100Lycurgus(~niemand@98.4.114.74) (Quit: Exeunt)
2020-11-27 01:56:06 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2020-11-27 02:03:08 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 246 seconds)
2020-11-27 02:05:26 +0100conal(~conal@64.71.133.70)
2020-11-27 02:07:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 02:11:37 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2020-11-27 02:11:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-27 02:12:38 +0100aidecoe(~aidecoe@unaffiliated/aidecoe) (Ping timeout: 260 seconds)
2020-11-27 02:12:53 +0100aidecoe(~aidecoe@unaffiliated/aidecoe)
2020-11-27 02:14:01 +0100zariuq(~zar@fw1.ciirc.cvut.cz) (Ping timeout: 264 seconds)
2020-11-27 02:16:15 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-27 02:20:34 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-27 02:20:55 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 02:30:55 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-27 02:30:57 +0100klardotsh(~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net)
2020-11-27 02:31:33 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 02:32:06 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-11-27 02:33:33 +0100guest1127(~user@49.5.6.87)
2020-11-27 02:36:05 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
2020-11-27 02:37:29 +0100Lord_of_Life_(~Lord@46.217.218.157)
2020-11-27 02:37:31 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds)
2020-11-27 02:38:16 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-27 02:42:22 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
2020-11-27 02:42:35 +0100jedws(~jedws@101.184.180.34) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-27 02:43:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 02:49:36 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Ping timeout: 240 seconds)
2020-11-27 02:55:50 +0100xff0x(~fox@2001:1a81:52e2:1100:6a57:53b7:993a:a9b) (Ping timeout: 264 seconds)
2020-11-27 02:56:07 +0100xff0x(~fox@2001:1a81:52e2:1100:fe89:c71d:9f43:fdfc)
2020-11-27 02:57:21 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2020-11-27 02:59:00 +0100hackagecapnp 0.8.0.0 - Cap'n Proto for Haskell https://hackage.haskell.org/package/capnp-0.8.0.0 (isd)
2020-11-27 03:00:47 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-27 03:01:07 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-27 03:03:04 +0100solonarv(~solonarv@astrasbourg-653-1-191-240.w90-13.abo.wanadoo.fr) (Ping timeout: 246 seconds)
2020-11-27 03:04:43 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net)
2020-11-27 03:07:12 +0100 <shapr> hekkaidekapus: neat, I hadn't heard about pangraph, I'm interested in graph description languages.
2020-11-27 03:11:37 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-11-27 03:12:13 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 264 seconds)
2020-11-27 03:12:54 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-27 03:15:54 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Quit: Ping timeout (120 seconds))
2020-11-27 03:17:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-27 03:19:43 +0100Rudd0(~Rudd0@185.189.115.98) (Ping timeout: 260 seconds)
2020-11-27 03:27:52 +0100kupi(uid212005@gateway/web/irccloud.com/x-tvvqptjlpgxgseek)
2020-11-27 03:28:15 +0100 <kupi> hi
2020-11-27 03:28:48 +0100 <kupi> i would like to get Maybe (Int, Int) from that regex, i can't even get the string values, i get empty string
2020-11-27 03:28:48 +0100 <kupi> https://gist.github.com/theqp/8d38a3997deb3f15f17b1b5be1e996a9
2020-11-27 03:28:53 +0100 <kupi> what do i do wrong?
2020-11-27 03:29:14 +0100toorevitimirp(~tooreviti@117.182.183.18)
2020-11-27 03:30:47 +0100xff0x(~fox@2001:1a81:52e2:1100:fe89:c71d:9f43:fdfc) (Ping timeout: 260 seconds)
2020-11-27 03:31:03 +0100jchia(~jchia@58.32.36.109) (Read error: Connection reset by peer)
2020-11-27 03:31:32 +0100jchia(~jchia@58.32.36.109)
2020-11-27 03:31:52 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-euqghorjjrswhrff) ()
2020-11-27 03:32:18 +0100xff0x(~fox@2001:1a81:531e:fa00:901e:6460:6691:753b)
2020-11-27 03:34:05 +0100 <koz_> Use regexp. This sounds like something a {mega,atto}parsec parser could do a lot more easily.
2020-11-27 03:34:16 +0100 <koz_> This in particular worries me: import qualified Data.ByteString.Lazy.Char8 as C
2020-11-27 03:35:20 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-11-27 03:35:25 +0100jonatanb(~jonatanb@83.24.220.252.ipv4.supernova.orange.pl)
2020-11-27 03:36:45 +0100ornxka(~ornxka@unaffiliated/ornx) (Quit: No Ping reply in 180 seconds.)
2020-11-27 03:38:59 +0100ornxka(~ornxka@unaffiliated/ornx)
2020-11-27 03:40:36 +0100jonatanb(~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds)
2020-11-27 03:41:57 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 03:46:02 +0100drbean(~drbean@TC210-63-209-149.static.apol.com.tw)
2020-11-27 03:46:43 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-11-27 03:47:12 +0100 <kupi> koz_: this one? https://hackage.haskell.org/package/regex-examples-1.1.0.0#readme
2020-11-27 03:47:25 +0100 <kupi> the site is down and i can't reach the toturial
2020-11-27 03:47:38 +0100 <koz_> Yeah... is your input data a C-string?
2020-11-27 03:47:44 +0100 <kupi> yes
2020-11-27 03:47:53 +0100 <koz_> Wow, in that case, my sympathies.
2020-11-27 03:48:20 +0100 <kupi> i am practicing with real world haskell
2020-11-27 03:49:08 +0100 <kupi> that used Text.Regex.Posix, but that is outdated
2020-11-27 03:49:13 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-27 03:49:42 +0100 <kupi> regex-tdfa seems to be the new equivalent
2020-11-27 03:50:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 03:55:45 +0100 <kupi> i have found this https://stackoverflow.com/a/5591628
2020-11-27 03:55:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-27 03:55:53 +0100 <kupi> and updated my code accordingly
2020-11-27 03:56:44 +0100 <kupi> and still get an empty list
2020-11-27 03:59:35 +0100reallymemorable(~quassel@ip68-9-215-56.ri.ri.cox.net)
2020-11-27 04:00:24 +0100 <koz_> Does \\D mean 'not a digit'?
2020-11-27 04:01:07 +0100 <kupi> this says yes
2020-11-27 04:01:08 +0100 <kupi> https://www.regextester.com/99203
2020-11-27 04:01:45 +0100 <kupi> what's even more weird is this: https://gist.github.com/theqp/98373e203483c65fbd93152a795a91f9
2020-11-27 04:02:25 +0100ski(~ski@nc-2504-30.studat.chalmers.se) (Ping timeout: 240 seconds)
2020-11-27 04:03:03 +0100 <kupi> nvm, the last element may be the whole match
2020-11-27 04:03:16 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-27 04:07:08 +0100ski(~ski@nc-2504-30.studat.chalmers.se)
2020-11-27 04:07:42 +0100 <kupi> i found the root of them problem: https://www.regextester.com/ lies in it's title, it does not match posix regexes
2020-11-27 04:10:29 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-11-27 04:27:46 +0100androzanimedium(~private@lfbn-idf2-1-1239-124.w90-92.abo.wanadoo.fr)
2020-11-27 04:30:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 04:30:47 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-27 04:34:41 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-27 04:35:42 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Ping timeout: 272 seconds)
2020-11-27 04:36:07 +0100jedws(~jedws@101.184.180.34)
2020-11-27 04:37:28 +0100ian-mi(~ian_milli@c-67-160-8-14.hsd1.wa.comcast.net) (Quit: WeeChat 2.5)
2020-11-27 04:38:33 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-27 04:39:06 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-27 04:39:12 +0100lagothrixGuest82818
2020-11-27 04:39:12 +0100Guest82818(~lagothrix@unaffiliated/lagothrix) (Killed (tepper.freenode.net (Nickname regained by services)))
2020-11-27 04:39:18 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-11-27 04:42:43 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
2020-11-27 04:42:45 +0100theDon(~td@muedsl-82-207-238-209.citykom.de) (Ping timeout: 240 seconds)
2020-11-27 04:43:10 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-11-27 04:44:58 +0100theDon(~td@muedsl-82-207-238-051.citykom.de)
2020-11-27 04:45:07 +0100adm_(~adm@43.229.89.234)
2020-11-27 04:49:50 +0100Tario(~Tario@201.192.165.173)
2020-11-27 04:51:13 +0100adm_(~adm@43.229.89.234) (Ping timeout: 246 seconds)
2020-11-27 04:51:56 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds)
2020-11-27 04:52:00 +0100hackagebox 0.6.2 - boxes https://hackage.haskell.org/package/box-0.6.2 (tonyday567)
2020-11-27 05:00:01 +0100haasn(~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2020-11-27 05:00:33 +0100Rudd0(~Rudd0@185.189.115.98)
2020-11-27 05:01:21 +0100haasn(~nand@mpv/developer/haasn)
2020-11-27 05:04:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-27 05:13:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-27 05:25:29 +0100tswett(a2cf47fd@unaffiliated/tswett) (Ping timeout: 245 seconds)
2020-11-27 05:25:30 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-27 05:25:42 +0100Tario(~Tario@201.192.165.173)
2020-11-27 05:26:46 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-27 05:28:03 +0100marek(~mmahut@fedora/pyxel) (Ping timeout: 260 seconds)
2020-11-27 05:28:23 +0100marek(~mmahut@209.250.249.245)
2020-11-27 05:36:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 05:36:36 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-11-27 05:41:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-27 05:42:28 +0100adm_(~adm@43.229.89.234)
2020-11-27 05:43:05 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 05:44:59 +0100vg(~vg@139.59.59.230)
2020-11-27 05:47:50 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-11-27 05:50:26 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-27 05:52:39 +0100bugg(d9a5a4dd@bba148557.alshamil.net.ae)
2020-11-27 05:55:34 +0100conal(~conal@64.71.133.70)
2020-11-27 05:56:24 +0100bugg(d9a5a4dd@bba148557.alshamil.net.ae) (Remote host closed the connection)
2020-11-27 05:56:25 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 05:58:03 +0100conal(~conal@64.71.133.70)
2020-11-27 05:58:44 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 05:58:56 +0100vg(~vg@139.59.59.230) (Quit: vg)
2020-11-27 05:59:11 +0100vg(~vg@139.59.59.230)
2020-11-27 05:59:24 +0100vg(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 05:59:40 +0100vg(~vg@139.59.59.230)
2020-11-27 06:03:06 +0100vgTooDifficult
2020-11-27 06:04:25 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds)
2020-11-27 06:04:56 +0100TooDifficult(~vg@139.59.59.230) (Quit: TooDifficult)
2020-11-27 06:05:14 +0100TooDifficult(~vg@139.59.59.230)
2020-11-27 06:05:26 +0100TooDifficult(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 06:05:41 +0100TooDifficult(~vg@139.59.59.230)
2020-11-27 06:05:50 +0100TooDifficult(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 06:06:01 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-11-27 06:06:06 +0100TooDifficult(~vg@139.59.59.230)
2020-11-27 06:06:18 +0100TooDifficult(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 06:06:57 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 265 seconds)
2020-11-27 06:07:34 +0100howdoi(uid224@gateway/web/irccloud.com/x-eqaddrksaizoivrq)
2020-11-27 06:08:36 +0100SubHodH(6705874c@103.5.135.76)
2020-11-27 06:09:32 +0100SubHodH(6705874c@103.5.135.76) (Remote host closed the connection)
2020-11-27 06:11:20 +0100conal(~conal@64.71.133.70)
2020-11-27 06:11:34 +0100caecilius(~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-27 06:12:28 +0100jneira(02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192)
2020-11-27 06:13:52 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 272 seconds)
2020-11-27 06:13:56 +0100ski(~ski@nc-2504-30.studat.chalmers.se) (Ping timeout: 240 seconds)
2020-11-27 06:14:27 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 06:15:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 06:15:58 +0100jespada(~jespada@90.254.245.49)
2020-11-27 06:16:00 +0100conal(~conal@64.71.133.70)
2020-11-27 06:16:22 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 06:17:09 +0100conal(~conal@64.71.133.70)
2020-11-27 06:17:09 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 06:17:48 +0100conal(~conal@64.71.133.70)
2020-11-27 06:17:56 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 06:18:15 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430)
2020-11-27 06:18:22 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430) (Max SendQ exceeded)
2020-11-27 06:18:36 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
2020-11-27 06:18:44 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430)
2020-11-27 06:18:45 +0100conal(~conal@64.71.133.70)
2020-11-27 06:18:45 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 06:18:48 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430) (Max SendQ exceeded)
2020-11-27 06:18:53 +0100androzanimedium(~private@lfbn-idf2-1-1239-124.w90-92.abo.wanadoo.fr) (Quit: Lost terminal)
2020-11-27 06:19:04 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430)
2020-11-27 06:19:11 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430) (Max SendQ exceeded)
2020-11-27 06:19:26 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430)
2020-11-27 06:19:36 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430) (Max SendQ exceeded)
2020-11-27 06:19:51 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430)
2020-11-27 06:20:00 +0100ricks_(~ricks_@unaffiliated/ricks-/x-3439430) (Max SendQ exceeded)
2020-11-27 06:20:33 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-27 06:22:58 +0100texasmynsted(~texasmyns@212.102.45.115) (Remote host closed the connection)
2020-11-27 06:23:26 +0100ski(~ski@nc-2504-30.studat.chalmers.se)
2020-11-27 06:23:38 +0100texasmynsted(~texasmyns@212.102.45.115)
2020-11-27 06:24:36 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds)
2020-11-27 06:24:56 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2020-11-27 06:27:56 +0100texasmynsted(~texasmyns@212.102.45.115) (Ping timeout: 240 seconds)
2020-11-27 06:32:47 +0100lpy(~nyd@unaffiliated/elysian)
2020-11-27 06:33:49 +0100adm_(~adm@43.229.89.234) (Ping timeout: 264 seconds)
2020-11-27 06:34:45 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-27 06:43:20 +0100bruce_wayne(~prateekpr@94.129.87.184)
2020-11-27 06:43:20 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:7ef3:407f:c35a:de9b:b845)
2020-11-27 06:43:38 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
2020-11-27 06:49:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-11-27 06:49:57 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-27 06:50:59 +0100ADG1089(~adg1089@223.235.74.84)
2020-11-27 06:51:37 +0100 <ADG1089> haskell web framework to take 3 file uploads and process them (like pandas in python) and return a SQL query?
2020-11-27 06:54:37 +0100ADG1089(~adg1089@223.235.74.84) (Remote host closed the connection)
2020-11-27 06:55:44 +0100jedws(~jedws@101.184.180.34) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-27 06:58:41 +0100jedws(~jedws@101.184.180.34)
2020-11-27 07:00:04 +0100SanchayanMaity(~Sanchayan@171.61.107.186)
2020-11-27 07:02:44 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-11-27 07:03:26 +0100jedws(~jedws@101.184.180.34) (Client Quit)
2020-11-27 07:04:20 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453)
2020-11-27 07:13:35 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-11-27 07:20:12 +0100gioyik(~gioyik@186.118.238.251) (Read error: Connection reset by peer)
2020-11-27 07:20:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 07:21:14 +0100gioyik(~gioyik@186.118.238.251)
2020-11-27 07:22:24 +0100ADG1089(~adg1089@223.235.74.84)
2020-11-27 07:23:48 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 265 seconds)
2020-11-27 07:25:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-27 07:26:38 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-27 07:30:29 +0100michalz(~user@185.246.204.43)
2020-11-27 07:32:30 +0100hackagecloudi 2.0.1 - Haskell CloudI API https://hackage.haskell.org/package/cloudi-2.0.1 (okeuday)
2020-11-27 07:35:04 +0100Amras(~Amras@unaffiliated/amras)
2020-11-27 07:42:14 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-27 07:44:09 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 07:47:24 +0100alp(~alp@2a01:e0a:58b:4920:45cf:c1fe:48db:d753)
2020-11-27 07:48:58 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-11-27 07:49:05 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-11-27 07:53:08 +0100esandeen(~esandeen@84.39.117.57) (Remote host closed the connection)
2020-11-27 07:59:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 07:59:26 +0100asheshambasta(~user@ptr-e1lysauiv50il654lwl.18120a2.ip6.access.telenet.be)
2020-11-27 07:59:55 +0100gioyik(~gioyik@186.118.238.251) (Quit: WeeChat 3.0)
2020-11-27 08:05:45 +0100bitmagie(~Thunderbi@200116b806d96200ec98ded03a0a7d0e.dip.versatel-1u1.de)
2020-11-27 08:06:33 +0100bitmagie(~Thunderbi@200116b806d96200ec98ded03a0a7d0e.dip.versatel-1u1.de) (Client Quit)
2020-11-27 08:12:50 +0100ashepelev(~ashepelev@84.39.116.180)
2020-11-27 08:13:23 +0100 <triteraflops> Someone here mentioned haskell can do destructive updates. I think I remember something about this now. It basically does it with a monad of some sort, right?
2020-11-27 08:13:31 +0100 <triteraflops> or in-place updates
2020-11-27 08:13:48 +0100 <triteraflops> you know you got a big honking hunk of memory and you change one byte of it
2020-11-27 08:14:11 +0100ggole(~ggole@2001:8003:8119:7200:e125:8c0:7374:b02e)
2020-11-27 08:14:14 +0100 <triteraflops> Please don't make a new copy of this 2-gigabyte data structure lol
2020-11-27 08:14:34 +0100 <opqdonut> triteraflops: ST is the monad you're thinking about
2020-11-27 08:14:49 +0100 <opqdonut> for safe invisible local mutation
2020-11-27 08:14:54 +0100 <opqdonut> if you want global mutation, it's IO
2020-11-27 08:15:04 +0100 <triteraflops> well, IO is a license to kill
2020-11-27 08:15:16 +0100 <triteraflops> I would not resort to it unless absolutely necessary
2020-11-27 08:15:47 +0100 <triteraflops> If everything happens in IO, there's no actual reason for me to use haskell at that point
2020-11-27 08:16:05 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds)
2020-11-27 08:16:26 +0100 <triteraflops> local mutation though
2020-11-27 08:16:47 +0100 <triteraflops> so you make the monad, it does things, then you evaluate the monad, and that's the end of this series of mutations
2020-11-27 08:16:58 +0100 <triteraflops> or wait
2020-11-27 08:17:11 +0100 <triteraflops> Can I use ST to do things like persistent process state?
2020-11-27 08:17:40 +0100 <triteraflops> a data structure that changes a tiny bit every 16.66666667 milliseconds?
2020-11-27 08:17:49 +0100knupfer(~Thunderbi@200116b82ce60800d01164fffe59dfd0.dip.versatel-1u1.de)
2020-11-27 08:17:50 +0100knupfer(~Thunderbi@200116b82ce60800d01164fffe59dfd0.dip.versatel-1u1.de) (Client Quit)
2020-11-27 08:17:59 +0100knupfer(~Thunderbi@200116b82ce6080049b3a5a95475d085.dip.versatel-1u1.de)
2020-11-27 08:18:16 +0100 <opqdonut> no
2020-11-27 08:18:19 +0100 <opqdonut> that's IO
2020-11-27 08:18:20 +0100 <opqdonut> that's not pure
2020-11-27 08:18:24 +0100 <triteraflops> shit.
2020-11-27 08:18:27 +0100 <triteraflops> but....
2020-11-27 08:18:34 +0100 <opqdonut> and anyway, it's fine if "everything happens in IO"
2020-11-27 08:18:39 +0100 <opqdonut> haskell is the best imperative programming language
2020-11-27 08:18:43 +0100 <triteraflops> lol
2020-11-27 08:18:50 +0100 <opqdonut> it is, try it
2020-11-27 08:19:05 +0100 <opqdonut> and anyway, you can then isolate some nice pure parts out of the IO and e.g. test them with quickcheck
2020-11-27 08:19:13 +0100 <triteraflops> but what would the advantages even be at that point?
2020-11-27 08:19:19 +0100 <opqdonut> types
2020-11-27 08:19:23 +0100 <opqdonut> performance
2020-11-27 08:19:29 +0100 <opqdonut> tooling (gotta love the profilers)
2020-11-27 08:20:11 +0100 <triteraflops> OK, so I'll give that a maybe.
2020-11-27 08:20:39 +0100 <triteraflops> I can have two persistent systems that have nothing to do with each other. And they must both be IO?
2020-11-27 08:21:07 +0100 <triteraflops> or that are weakly interacting, like audio and video
2020-11-27 08:21:17 +0100 <opqdonut> well they can both be giant ST transactions too I guess, but then you won't be really able to interact with the outside world while updating them
2020-11-27 08:21:38 +0100 <triteraflops> I'll give that a maybe too
2020-11-27 08:21:43 +0100 <opqdonut> yeah if you have audio/video it must be IO. ST is for local mutation, think in-place quicksort. The computation as a whole must be pure
2020-11-27 08:21:59 +0100 <triteraflops> That is the haskell party line
2020-11-27 08:22:12 +0100 <triteraflops> OK, so there is a reason I'm asking these questions.
2020-11-27 08:22:25 +0100 <triteraflops> Have you ever heard of a language called Clean?
2020-11-27 08:22:28 +0100 <triteraflops> It'd Dutch.
2020-11-27 08:22:33 +0100 <triteraflops> *It's
2020-11-27 08:23:13 +0100 <opqdonut> yes, clean inspired haskell a bit I think
2020-11-27 08:23:29 +0100 <opqdonut> not sure if it's still maintained/relevant tho
2020-11-27 08:23:34 +0100 <triteraflops> So, clean is a more complicated language than haskell.
2020-11-27 08:23:37 +0100 <triteraflops> It is, yeas
2020-11-27 08:23:52 +0100 <triteraflops> It adds an extra property to types, uniqueness.
2020-11-27 08:23:53 +0100 <triteraflops> brb
2020-11-27 08:24:11 +0100 <opqdonut> yeah I know of linear/uniqueness typing
2020-11-27 08:25:13 +0100 <ski> "clean inspired haskell a bit I think" -- neither
2020-11-27 08:25:16 +0100 <opqdonut> you might be interested in https://gitlab.haskell.org/ghc/ghc/-/wikis/linear-types
2020-11-27 08:25:22 +0100 <ski> and yes, it's still maintained
2020-11-27 08:25:52 +0100 <opqdonut> anyway I think you'll find it's possible to write very nice haskell programs that are "IO-heavy", and you can usually isolate quite a bit of the code into pure functions anyway
2020-11-27 08:26:04 +0100 <ski> the Clean folks was part of the same fuzzy group of people that were researching lazy pure functional programming languages as the Haskell folks
2020-11-27 08:26:18 +0100 <opqdonut> but of course if you just want to take a principled stance against the haskell IO model then yeah, it's limited :)
2020-11-27 08:26:37 +0100 <triteraflops> back
2020-11-27 08:27:03 +0100 <ski> people decided it would be better to try to compromise, cooperate, settle on some standard language, instead of everyone, or every small group having their own variant language
2020-11-27 08:27:12 +0100 <triteraflops> I am indeed very interested in linear types
2020-11-27 08:27:12 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 08:27:30 +0100 <triteraflops> It seems more granular than relegating all persistent state to IO
2020-11-27 08:27:45 +0100 <ski> and so Haskell was formed by a committee
2020-11-27 08:27:52 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-27 08:28:15 +0100 <opqdonut> one way to keep these two mutable "threads" separate in haskell would be to use something like `ReaderT AudioRef IO` for the audio actions and `ReaderT VideoRef IO` for the video actions
2020-11-27 08:28:38 +0100 <ski> however, the Clean folks were doing something sufficiently different (uniqueness), that they didn't want to part with, and which the other's couldn't agree to incorporate at the time. and so Clean became its own separate thing
2020-11-27 08:28:39 +0100 <opqdonut> with AudioRef and VideoRef being e.g. newtypes over IORef
2020-11-27 08:28:58 +0100 <opqdonut> then you could have the type system verify that these two threads of computation are separate
2020-11-27 08:29:15 +0100 <triteraflops> ski: I think the Clean folks were on to something.
2020-11-27 08:29:16 +0100 <ski> opqdonut : note that uniqueness is distinct from linearity and affinity, though
2020-11-27 08:29:30 +0100 <opqdonut> oh, I thought uniqueness was linearity
2020-11-27 08:29:39 +0100 <triteraflops> I've heard that before, but they're all solving the same problem, it seems to me
2020-11-27 08:29:50 +0100 <opqdonut> oh ok I see the difference now, reading wikipedia
2020-11-27 08:30:09 +0100 <opqdonut> > Uniqueness guarantees that a value has no other references to it, while linearity guarantees that no more references can be made to a value.
2020-11-27 08:30:11 +0100 <lambdabot> <hint>:1:65: error: <hint>:1:65: error: parse error on input ‘,’
2020-11-27 08:30:20 +0100 <opqdonut> meh, need to remember not to use > as blockquote
2020-11-27 08:31:14 +0100 <triteraflops> I don't get it. Sounds like the same thing to me.
2020-11-27 08:31:27 +0100michalz(~user@185.246.204.43) (Remote host closed the connection)
2020-11-27 08:31:29 +0100 <triteraflops> One thing, one ref
2020-11-27 08:31:36 +0100 <opqdonut> linearity means "you can't duplicate references, but your caller might've"
2020-11-27 08:31:45 +0100 <opqdonut> uniqueness means "nobody can have duplicated this reference"
2020-11-27 08:32:01 +0100 <triteraflops> so linearity is ... weaker?
2020-11-27 08:32:09 +0100howdoi(uid224@gateway/web/irccloud.com/x-eqaddrksaizoivrq) (Quit: Connection closed for inactivity)
2020-11-27 08:32:15 +0100 <opqdonut> yes
2020-11-27 08:32:19 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-27 08:32:27 +0100 <opqdonut> or more expressive, however you want to look at it
2020-11-27 08:32:40 +0100 <triteraflops> brb
2020-11-27 08:33:02 +0100 <ski> triteraflops : did you see my (late) response to you, two days ago ?
2020-11-27 08:33:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-11-27 08:34:08 +0100infinity0(~infinity0@freenet/developer/infinity0) (Ping timeout: 260 seconds)
2020-11-27 08:34:44 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-27 08:36:06 +0100 <triteraflops> back
2020-11-27 08:36:22 +0100 <triteraflops> ski: UM.
2020-11-27 08:36:26 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de)
2020-11-27 08:36:40 +0100 <ski> opqdonut : "oh, I thought uniqueness was linearity" -- with uniqueness, you know the reference to the value hasn't been duplicated in the past (but you're allowed to duplicate it in the future (unless you promise to return a unique reference back)). with affinity, you're not allowed to duplicate it in the future (but it may have been duplicated in the past). linearity is like affinity, except that affinity
2020-11-27 08:36:46 +0100 <ski> allows discarding, with linearity you must explicitly pass your garbage to some waste disposal
2020-11-27 08:36:48 +0100 <triteraflops> how do I search backwards in a channel in irssi?
2020-11-27 08:37:11 +0100 <opqdonut> triteraflops: /lastlog searchterm
2020-11-27 08:38:33 +0100 <ski> "<triteraflops> I've heard that before, but they're all solving the same problem, it seems to me" -- they're certainly related in some sense (iirc the Linear Haskell paper showed how you could, at least in some cases, encode uniquess with it, via CPS). not sure one could say they're solving the same problem, though, but they are at least in the same rough ballpark of ideas
2020-11-27 08:38:44 +0100 <ski> triteraflops : see <https://ircbrowse.tomsmeding.com/day/haskell/2020/11/25?id=153176&timestamp=1606303143#t1606303143>
2020-11-27 08:38:47 +0100xff0x(~fox@2001:1a81:531e:fa00:901e:6460:6691:753b) (Ping timeout: 272 seconds)
2020-11-27 08:39:12 +0100 <ski> (if anyone else wants to check, the start of that conversation was as <https://ircbrowse.tomsmeding.com/day/haskell/2020/11/25?id=152688&timestamp=1606279789#t1606279789>)
2020-11-27 08:39:22 +0100knupfer(~Thunderbi@200116b82ce6080049b3a5a95475d085.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-27 08:40:49 +0100 <ski> triteraflops : in Irssi, you could do something like
2020-11-27 08:41:01 +0100 <ski> /window new
2020-11-27 08:41:08 +0100 <ski> /lastlog -window #haskell triteratops
2020-11-27 08:41:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-11-27 08:41:56 +0100 <ski> to get all lines mentioning your nickname, into a separate Irssi window. can be useful to check the timestamp for when some interesting message or conversation occured
2020-11-27 08:42:08 +0100 <ski> but it won't show you adjoining lines
2020-11-27 08:42:31 +0100 <opqdonut> I just use "/lastlog -5 whatever" in the channel window to get search results with context
2020-11-27 08:42:53 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-27 08:42:56 +0100 <opqdonut> and "/lastlog -clear" to reset the window to what it was showing before
2020-11-27 08:43:39 +0100 <ski> (oh, i guess i hadn't noticed `-clear')
2020-11-27 08:44:44 +0100 <ski> /scrollback goto -2 <hours>:<minutes>
2020-11-27 08:45:05 +0100 <opqdonut> nice
2020-11-27 08:45:35 +0100 <ski> (`2' being the relevant number of days, in this case), should work to scroll you back to some particular time then, like when my response was
2020-11-27 08:45:37 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2020-11-27 08:46:24 +0100 <ski> (three hours and eighteen minutes later in the day than now, two days ago)
2020-11-27 08:46:28 +0100vilpan(~0@212.117.1.172)
2020-11-27 08:48:05 +0100 <ski> "so linearity is ... weaker?" -- no. they're sort of opposite. one is a guarantee that duplication hasn't happened in the past. the other is a guarantee that duplication won't happen in the future
2020-11-27 08:49:40 +0100 <ski> (also, it's probably better to compare uniqueness to affinity here. since linearity also adds nondiscardability. the "opposite" of that would be "the reference hasn't been discarded in the past" .. well, duh, you don't say !)
2020-11-27 08:52:05 +0100chreekat[m](chreekatma@gateway/shell/matrix.org/x-ktxyajphiegdytww) ("User left")
2020-11-27 08:52:09 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:7ef3:407f:c35a:de9b:b845) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-27 08:52:16 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-27 08:53:36 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:7ef3:407f:c35a:de9b:b845)
2020-11-27 08:56:38 +0100 <kupi> i feel dumb for declaring this function, is there an alternative? https://gist.github.com/theqp/cd8c2a33e368e1267ae4278ccb5541ff
2020-11-27 08:56:46 +0100 <kupi> hoogle did not give any results
2020-11-27 08:56:56 +0100 <kupi> would modifyT be a good name?
2020-11-27 08:57:40 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-11-27 08:58:00 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-11-27 09:00:47 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-27 09:05:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 09:08:02 +0100timCF(~i.tkachuk@m91-129-105-245.cust.tele2.ee) (Ping timeout: 272 seconds)
2020-11-27 09:09:59 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-27 09:10:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-27 09:11:07 +0100 <ski> @type \f -> put =<< f =<< get
2020-11-27 09:11:08 +0100 <lambdabot> MonadState a m => (a -> m a) -> m ()
2020-11-27 09:11:14 +0100 <ski> @type \f -> put =<< lift . f =<< get
2020-11-27 09:11:15 +0100 <lambdabot> (MonadState a (t m), Monad m, MonadTrans t) => (a -> m a) -> t m ()
2020-11-27 09:11:19 +0100 <ski> @type (\f -> put =<< lift . f =<< get) :: Monad m => (s -> m s) -> StateT s m ()
2020-11-27 09:11:20 +0100 <lambdabot> Monad m => (s -> m s) -> StateT s m ()
2020-11-27 09:12:05 +0100 <ski> kupi : my mind went to `modifyM', and indeed there's a <https://hackage.haskell.org/package/cabal-debian-5.1/docs/Debian-Debianize-Prelude.html#v:modifyM>
2020-11-27 09:12:32 +0100 <ski> (also i found <https://hackage.haskell.org/package/boots-0.2.0.1/docs/Control-Monad-Factory-Class.html#v:withEnv>)
2020-11-27 09:12:45 +0100bruce_wayne(~prateekpr@94.129.87.184) (Ping timeout: 240 seconds)
2020-11-27 09:13:44 +0100dyeplexer(~lol@unaffiliated/terpin)
2020-11-27 09:15:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 09:15:08 +0100knupfer(~Thunderbi@200116b82ce60800a0629ffffe109f31.dip.versatel-1u1.de)
2020-11-27 09:15:55 +0100knupfer(~Thunderbi@200116b82ce60800a0629ffffe109f31.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-27 09:16:09 +0100knupfer(~Thunderbi@200116b82ce6080075946adc0c26bd31.dip.versatel-1u1.de)
2020-11-27 09:22:32 +0100knupfer(~Thunderbi@200116b82ce6080075946adc0c26bd31.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-27 09:27:48 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-11-27 09:28:08 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-11-27 09:28:20 +0100coot(~coot@37.30.48.178.nat.umts.dynamic.t-mobile.pl)
2020-11-27 09:28:43 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 09:30:49 +0100drbean(~drbean@TC210-63-209-149.static.apol.com.tw) (Ping timeout: 264 seconds)
2020-11-27 09:30:54 +0100xff0x(~fox@2001:1a81:531e:fa00:901e:6460:6691:753b)
2020-11-27 09:31:30 +0100 <guest1127> I remember there's a haskell book called "xxx principle" but I forget that name
2020-11-27 09:31:59 +0100 <guest1127> there're some lambda contents in it
2020-11-27 09:32:30 +0100hackagedeferred-folds 0.9.15 - Abstractions over deferred folds https://hackage.haskell.org/package/deferred-folds-0.9.15 (NikitaVolkov)
2020-11-27 09:33:18 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-27 09:33:21 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-27 09:35:00 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 09:36:44 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-11-27 09:37:11 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-27 09:39:02 +0100lemmih_(~lemmih@2406:3003:2072:44:741a:bd6a:3c25:3ad0) (Ping timeout: 264 seconds)
2020-11-27 09:39:59 +0100adm(~adm@43.229.89.234)
2020-11-27 09:40:00 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-27 09:41:01 +0100marek(~mmahut@209.250.249.245) (Ping timeout: 264 seconds)
2020-11-27 09:41:31 +0100marek(~mmahut@209.250.249.245)
2020-11-27 09:41:36 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 240 seconds)
2020-11-27 09:42:04 +0100lemmih(~lemmih@2406:3003:2072:44:1ea:4f01:5a80:7f4e)
2020-11-27 09:42:16 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
2020-11-27 09:42:58 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net)
2020-11-27 09:44:37 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 09:48:54 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 09:49:46 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2020-11-27 09:50:39 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-27 09:51:42 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-11-27 09:52:19 +0100 <ski> opqdonut : "yes","or more expressive, however you want to look at it" -- no (see above)
2020-11-27 09:52:22 +0100bruce_wayne(~prateekpr@94.129.87.184)
2020-11-27 09:52:29 +0100 <opqdonut> I saw your explanation, thanks
2020-11-27 09:52:36 +0100 <ski> ok
2020-11-27 09:53:51 +0100gproto023gproto23
2020-11-27 09:58:59 +0100zar(~zar@fw1.ciirc.cvut.cz)
2020-11-27 10:03:07 +0100banjiewen_(sid115913@gateway/web/irccloud.com/x-ppovchejlnsiwfgl) (Ping timeout: 260 seconds)
2020-11-27 10:03:07 +0100Tritlo(sid58727@gateway/web/irccloud.com/x-qngdkegzmhgdhfhg) (Ping timeout: 260 seconds)
2020-11-27 10:03:07 +0100d0liver(sid363046@gateway/web/irccloud.com/x-lvzpszsyngerfkjs) (Ping timeout: 260 seconds)
2020-11-27 10:03:23 +0100banjiewen_(sid115913@gateway/web/irccloud.com/x-rntyoakqetturqhz)
2020-11-27 10:03:25 +0100Tritlo(sid58727@gateway/web/irccloud.com/x-nhzwxpcfcxvxiueq)
2020-11-27 10:03:57 +0100adm(~adm@43.229.89.234) (Remote host closed the connection)
2020-11-27 10:04:01 +0100recon_-(~quassel@2602:febc:0:b6::6ca2) (Remote host closed the connection)
2020-11-27 10:04:17 +0100berberman[T](berberma4@gateway/shell/matrix.org/x-bxfzueyqtnjjnhrt) (Ping timeout: 260 seconds)
2020-11-27 10:04:18 +0100metadave(sid28102@gateway/web/irccloud.com/x-bjrjtdehstdxjwgn) (Ping timeout: 260 seconds)
2020-11-27 10:04:52 +0100pepeiborra(sid443799@gateway/web/irccloud.com/x-pndolohhnspnwqav) (Ping timeout: 260 seconds)
2020-11-27 10:05:07 +0100recon_-(~quassel@2602:febc:0:b6::6ca2)
2020-11-27 10:05:15 +0100d0liver(sid363046@gateway/web/irccloud.com/x-aajmemdhisvuoilm)
2020-11-27 10:05:48 +0100adm(~adm@43.229.89.234)
2020-11-27 10:05:51 +0100berberman[T](berberma4@gateway/shell/matrix.org/x-zmodyatzyvhzifry)
2020-11-27 10:06:03 +0100bugg(~bugg@bba148557.alshamil.net.ae)
2020-11-27 10:06:18 +0100pepeiborra(sid443799@gateway/web/irccloud.com/x-lhkxheufdmeimjbj)
2020-11-27 10:06:20 +0100metadave(sid28102@gateway/web/irccloud.com/x-ifeexfgbnrtdfxvo)
2020-11-27 10:07:35 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-yhbundavwcfojtvb) (Quit: Connection closed for inactivity)
2020-11-27 10:07:36 +0100adm(~adm@43.229.89.234) (Read error: Connection reset by peer)
2020-11-27 10:08:56 +0100adm(~adm@43.229.89.234)
2020-11-27 10:09:25 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 240 seconds)
2020-11-27 10:10:53 +0100jespada(~jespada@90.254.245.49)
2020-11-27 10:10:55 +0100bugg(~bugg@bba148557.alshamil.net.ae) ("Leaving")
2020-11-27 10:13:52 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-27 10:16:03 +0100raichoo(~raichoo@213.240.178.58)
2020-11-27 10:18:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-27 10:19:00 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de)
2020-11-27 10:22:37 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:5572:c108:3697:b06d)
2020-11-27 10:26:26 +0100lemmih(~lemmih@2406:3003:2072:44:1ea:4f01:5a80:7f4e) (Ping timeout: 264 seconds)
2020-11-27 10:26:48 +0100n0042(d055ed89@208.85.237.137)
2020-11-27 10:27:16 +0100adm(~adm@43.229.89.234) (Remote host closed the connection)
2020-11-27 10:27:54 +0100lemmih(~lemmih@58.182.145.108)
2020-11-27 10:28:54 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-11-27 10:29:20 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 10:30:11 +0100bruce_wayne(~prateekpr@94.129.87.184) (Ping timeout: 256 seconds)
2020-11-27 10:30:12 +0100alp_(~alp@2a01:e0a:58b:4920:d143:2c58:c3a6:1f90)
2020-11-27 10:30:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 10:30:22 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Quit: Leaving)
2020-11-27 10:31:02 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-11-27 10:31:49 +0100michalz(~user@185.246.204.56)
2020-11-27 10:32:07 +0100TooDifficult(~vg@139.59.59.230)
2020-11-27 10:32:47 +0100alp(~alp@2a01:e0a:58b:4920:45cf:c1fe:48db:d753) (Ping timeout: 272 seconds)
2020-11-27 10:32:52 +0100lemmih(~lemmih@58.182.145.108) (Ping timeout: 256 seconds)
2020-11-27 10:33:35 +0100kish`(~oracle@unaffiliated/oracle) (Quit: Leaving)
2020-11-27 10:33:42 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-27 10:33:47 +0100lemmih(~lemmih@58.182.145.108)
2020-11-27 10:35:02 +0100kish`(~oracle@unaffiliated/oracle)
2020-11-27 10:36:10 +0100adm(~adm@43.229.89.234)
2020-11-27 10:38:53 +0100Tops2(~Tobias@dyndsl-095-033-092-087.ewe-ip-backbone.de)
2020-11-27 10:39:19 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52)
2020-11-27 10:40:07 +0100adm(~adm@43.229.89.234) (Remote host closed the connection)
2020-11-27 10:40:48 +0100adm(~adm@43.229.89.234)
2020-11-27 10:46:06 +0100ADG1089(~adg1089@223.235.74.84) (Remote host closed the connection)
2020-11-27 10:49:26 +0100vilpan(~0@212.117.1.172) ()
2020-11-27 10:49:44 +0100mounty(~mounty@210.1.196.133)
2020-11-27 10:51:45 +0100jess(jess@freenode/staff/jess)
2020-11-27 10:52:04 +0100thc202(~thc202@unaffiliated/thc202)
2020-11-27 10:54:20 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-27 10:54:42 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 260 seconds)
2020-11-27 10:54:48 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-27 10:57:01 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Client Quit)
2020-11-27 11:00:03 +0100guest1127(~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
2020-11-27 11:02:06 +0100TooDifficult(~vg@139.59.59.230) (Quit: TooDifficult)
2020-11-27 11:02:31 +0100vg(~vg@139.59.59.230)
2020-11-27 11:02:40 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-27 11:07:46 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 260 seconds)
2020-11-27 11:08:04 +0100n0042(d055ed89@208.85.237.137) (Remote host closed the connection)
2020-11-27 11:08:19 +0100inkbottle(~inkbottle@aaubervilliers-654-1-95-231.w86-212.abo.wanadoo.fr)
2020-11-27 11:08:24 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 11:09:18 +0100zebrag(~inkbottle@alagny-551-1-20-27.w83-200.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2020-11-27 11:11:27 +0100subttle(~anonymous@unaffiliated/subttle)
2020-11-27 11:11:37 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
2020-11-27 11:12:22 +0100zaquest(~notzaques@5.128.210.178) (Ping timeout: 246 seconds)
2020-11-27 11:12:50 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-27 11:13:09 +0100mounty(~mounty@210.1.196.133) (Read error: Connection reset by peer)
2020-11-27 11:13:14 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-27 11:14:07 +0100mounty(~mounty@210.1.196.133)
2020-11-27 11:14:23 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 256 seconds)
2020-11-27 11:14:47 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-27 11:15:50 +0100ubert(~Thunderbi@p200300ecdf1e53a0e6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-27 11:15:56 +0100cfricke(~cfricke@unaffiliated/cfricke) (Client Quit)
2020-11-27 11:16:16 +0100francesco_(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 11:16:25 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 240 seconds)
2020-11-27 11:21:14 +0100zaquest(~notzaques@5.128.210.178)
2020-11-27 11:21:36 +0100mounty(~mounty@210.1.196.133) (Read error: Connection reset by peer)
2020-11-27 11:22:08 +0100mounty(~mounty@210.1.196.133)
2020-11-27 11:22:38 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-27 11:25:40 +0100kuribas(~user@ptr-25vy0ia7so77gy5gmna.18120a2.ip6.access.telenet.be)
2020-11-27 11:29:21 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 11:30:17 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 11:34:58 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-27 11:36:43 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 260 seconds)
2020-11-27 11:38:21 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-27 11:41:44 +0100 <jonathanx> Anyone know how to do a custom 404 page in servant? I'm using Servant.HTML.Blaze :)
2020-11-27 11:42:11 +0100plutoniix(~q@ppp-223-24-152-92.revip6.asianet.co.th)
2020-11-27 11:42:59 +0100 <Entroacceptor> jonathanx: I've found https://geekingfrog.com/blog/post/custom-404-with-servant
2020-11-27 11:43:00 +0100bruce_wayne(~prateekpr@94.129.87.184)
2020-11-27 11:43:18 +0100coot(~coot@37.30.48.178.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-11-27 11:43:43 +0100coot(~coot@37.30.48.178.nat.umts.dynamic.t-mobile.pl)
2020-11-27 11:44:07 +0100cmurr(~calum@cpc73662-dals20-2-0-cust446.20-2.cable.virginm.net)
2020-11-27 11:44:12 +0100 <jonathanx> Entroacceptor: yeah, found it too, but I can
2020-11-27 11:44:19 +0100 <jonathanx> *'t get it to compile
2020-11-27 11:45:14 +0100 <jonathanx> The blog post doesn't seem to be the actual code, seeing as there's a type definition with lowercase name and then weird indentation in the custom404
2020-11-27 11:45:26 +0100 <jonathanx> I tried fixing it up but couldn't get it to work
2020-11-27 11:46:14 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-27 11:46:53 +0100kupi(uid212005@gateway/web/irccloud.com/x-tvvqptjlpgxgseek) (Quit: Connection closed for inactivity)
2020-11-27 11:46:55 +0100 <Entroacceptor> Geekingfrog: is that ^ your?
2020-11-27 11:47:59 +0100vg(~vg@139.59.59.230) (Quit: vg)
2020-11-27 11:48:15 +0100vg(~vg@139.59.59.230)
2020-11-27 11:48:33 +0100vg(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 11:48:46 +0100vg(~vg@139.59.59.230)
2020-11-27 11:49:16 +0100vg(~vg@139.59.59.230) (Client Quit)
2020-11-27 11:49:35 +0100vg(~vg@139.59.59.230)
2020-11-27 11:49:47 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de)
2020-11-27 11:51:16 +0100 <dminuoso> jonathanx: Mmm, that style looks very off too.
2020-11-27 11:51:26 +0100 <dminuoso> Seems wrong
2020-11-27 11:51:40 +0100 <dminuoso> jonathanx: What'd you'd do is roughly this
2020-11-27 11:51:56 +0100 <jonathanx> I solved it
2020-11-27 11:52:02 +0100 <dminuoso> throwIO (err404{ errBody = "..." })
2020-11-27 11:52:04 +0100 <jonathanx> had to return the 404 page
2020-11-27 11:52:11 +0100 <dminuoso> Where body contains the content tha tyou want
2020-11-27 11:52:31 +0100 <dminuoso> (Or maybe not throwIO, depends on how you run things - I dont use the Handler monad)
2020-11-27 11:52:55 +0100 <jonathanx> I'll write to the geekingfrog person and ask them to update the blog post
2020-11-27 11:52:57 +0100 <jonathanx> :)
2020-11-27 11:54:47 +0100vg(~vg@139.59.59.230) (Quit: vg)
2020-11-27 11:55:04 +0100vg(~vg@139.59.59.230)
2020-11-27 11:55:16 +0100vg(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 11:55:30 +0100vg(~vg@139.59.59.230)
2020-11-27 11:55:35 +0100vg(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 11:57:38 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se)
2020-11-27 11:57:51 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection)
2020-11-27 11:58:22 +0100jrqc(~rofl@96.78.87.197) (Ping timeout: 256 seconds)
2020-11-27 11:58:45 +0100Ew(5fa448e7@95.164.72.231)
2020-11-27 11:59:12 +0100jrqc(~rofl@96.78.87.197)
2020-11-27 12:00:25 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds)
2020-11-27 12:01:48 +0100Cir0X(sid221743@gateway/web/irccloud.com/x-mvlinpkrmvmsfsvf) (Quit: Connection closed for inactivity)
2020-11-27 12:02:05 +0100coot(~coot@37.30.48.178.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds)
2020-11-27 12:03:21 +0100louisac(4d64ab42@cpc82915-enfi22-2-0-cust65.20-2.cable.virginm.net)
2020-11-27 12:05:54 +0100Ew(5fa448e7@95.164.72.231) (Ping timeout: 245 seconds)
2020-11-27 12:07:11 +0100Stanley00(~stanley00@unaffiliated/stanley00) ()
2020-11-27 12:09:20 +0100greenden(uid429335@gateway/web/irccloud.com/x-xqanljjodrjdxzky)
2020-11-27 12:09:45 +0100greenden(uid429335@gateway/web/irccloud.com/x-xqanljjodrjdxzky) ()
2020-11-27 12:11:00 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net)
2020-11-27 12:12:16 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2020-11-27 12:14:18 +0100Sgeo_(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-11-27 12:19:37 +0100eyenx(~eyenxeyen@unaffiliated/eye/x-1653358) (Quit: Bridge terminating on SIGTERM)
2020-11-27 12:19:49 +0100alp_(~alp@2a01:e0a:58b:4920:d143:2c58:c3a6:1f90) (Ping timeout: 272 seconds)
2020-11-27 12:19:55 +0100eyenx(~eyenxeyen@unaffiliated/eye/x-1653358)
2020-11-27 12:20:01 +0100hackagehercules-ci-agent 0.7.5 - Runs Continuous Integration tasks on your machines https://hackage.haskell.org/package/hercules-ci-agent-0.7.5 (RobertHensing)
2020-11-27 12:23:04 +0100adm(~adm@43.229.89.234) (Ping timeout: 246 seconds)
2020-11-27 12:24:26 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 265 seconds)
2020-11-27 12:24:29 +0100cheater1(~user@unaffiliated/cheater)
2020-11-27 12:24:29 +0100cheater1cheater
2020-11-27 12:24:45 +0100adm(~adm@103.70.198.70)
2020-11-27 12:26:12 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-27 12:26:37 +0100bruce_wayne(~prateekpr@94.129.87.184) (Ping timeout: 264 seconds)
2020-11-27 12:29:01 +0100adm(~adm@103.70.198.70) (Ping timeout: 246 seconds)
2020-11-27 12:30:25 +0100kish`(~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds)
2020-11-27 12:31:13 +0100asheshambasta(~user@ptr-e1lysauiv50il654lwl.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
2020-11-27 12:31:13 +0100carlomagno(~cararell@148.87.23.11) (Remote host closed the connection)
2020-11-27 12:33:01 +0100adm(~adm@42.106.181.241)
2020-11-27 12:33:18 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-11-27 12:36:08 +0100adm(~adm@42.106.181.241) (Remote host closed the connection)
2020-11-27 12:37:02 +0100carlomagno(~cararell@148.87.23.6)
2020-11-27 12:38:03 +0100bruce_wayne(~prateekpr@94.129.87.184)
2020-11-27 12:40:38 +0100Mrkz41(c1ef2595@193-239-37-149.ksi-system.net)
2020-11-27 12:41:00 +0100adm(~adm@103.70.198.44)
2020-11-27 12:41:52 +0100carlomagno1(~cararell@148.87.23.5)
2020-11-27 12:44:43 +0100carlomagno(~cararell@148.87.23.6) (Remote host closed the connection)
2020-11-27 12:45:03 +0100solonarv(~solonarv@astrasbourg-653-1-191-240.w90-13.abo.wanadoo.fr)
2020-11-27 12:45:46 +0100adm(~adm@103.70.198.44) (Ping timeout: 260 seconds)
2020-11-27 12:46:23 +0100itai33[m](itai33matr@gateway/shell/matrix.org/x-rgomoxkojslrbjtb)
2020-11-27 12:47:45 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-27 12:48:35 +0100_Alleria(~AllahuAkb@2604:2000:1484:26:28a2:d4e:6ca5:3a53)
2020-11-27 12:49:10 +0100 <itai33[m]> say i have some complex record structure, what is the best way to ensure that when i modify some record `a`, other records `b` `c` etc that "depend" on it are rebuilt? assuming this dependence needs to interact with IO as well
2020-11-27 12:51:02 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:c82b:bd8e:1bb1:925d) (Ping timeout: 264 seconds)
2020-11-27 12:52:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-27 12:52:32 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-27 12:53:52 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 246 seconds)
2020-11-27 12:54:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 12:58:26 +0100alp_(~alp@2a01:e0a:58b:4920:d450:31dc:681:6a0f)
2020-11-27 13:04:32 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-27 13:04:50 +0100 <tomsmeding> itai33[m]: what do you mean with "are rebuilt"? Values are immutable; do you mean that those things live in an IORef or something?
2020-11-27 13:09:17 +0100plutoniix(~q@ppp-223-24-152-92.revip6.asianet.co.th) (Quit: Leaving)
2020-11-27 13:12:29 +0100 <tomsmeding> unrelated question to this channel: if I have a data type with an existential type variable, or a (kind of equivalently) a GADT, that I want to unwrap in a monadic computation, I can choose between a case statement or a monadic bind with return: https://paste.tomsmeding.com/CqAEGdEx
2020-11-27 13:12:35 +0100 <tomsmeding> is there a nicer way than this?
2020-11-27 13:12:59 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-27 13:13:11 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-27 13:14:05 +0100 <tomsmeding> if one is still at the start of the function, a pattern guard also works, but sometimes you're halfway a do-block :p
2020-11-27 13:14:11 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 13:15:01 +0100 <merijn> RankN eliminator?
2020-11-27 13:16:41 +0100 <tomsmeding> what's that?
2020-11-27 13:17:04 +0100 <merijn> tomsmeding: Like...a function? :p
2020-11-27 13:17:16 +0100 <tomsmeding> so, switch to CPS form?
2020-11-27 13:17:20 +0100 <merijn> Yeah
2020-11-27 13:17:50 +0100 <tomsmeding> that introduces a new indent level, doesn't it?
2020-11-27 13:17:53 +0100asheshambasta(~user@ptr-e1lysauiv50il654lwl.18120a2.ip6.access.telenet.be)
2020-11-27 13:17:59 +0100 <tomsmeding> in which case a simple 'case' also works :p
2020-11-27 13:18:16 +0100 <merijn> Well, don't use existentials directly, then ;)
2020-11-27 13:18:28 +0100 <tomsmeding> hah
2020-11-27 13:18:51 +0100 <tomsmeding> "doctor, it hurts if I do this"
2020-11-27 13:19:04 +0100 <tomsmeding> I'll just do the return trick :p
2020-11-27 13:21:37 +0100Entertainment(~entertain@104.246.132.210)
2020-11-27 13:22:10 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 13:22:16 +0100louisac(4d64ab42@cpc82915-enfi22-2-0-cust65.20-2.cable.virginm.net) (Remote host closed the connection)
2020-11-27 13:23:22 +0100raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-11-27 13:23:52 +0100wei2912(~wei2912@unaffiliated/wei2912)
2020-11-27 13:24:42 +0100Entertainment(~entertain@104.246.132.210) (Client Quit)
2020-11-27 13:25:46 +0100drbean(~drbean@TC210-63-209-158.static.apol.com.tw)
2020-11-27 13:26:36 +0100androzanimedium(~private@lfbn-idf2-1-1239-124.w90-92.abo.wanadoo.fr)
2020-11-27 13:26:59 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 13:27:20 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 13:28:58 +0100Entertainment(~entertain@104.246.132.210)
2020-11-27 13:29:24 +0100knupfer(~Thunderbi@200116b82ce60800c8bd3cfffe7b0371.dip.versatel-1u1.de)
2020-11-27 13:29:25 +0100knupfer(~Thunderbi@200116b82ce60800c8bd3cfffe7b0371.dip.versatel-1u1.de) (Client Quit)
2020-11-27 13:29:25 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-27 13:29:56 +0100knupfer(~Thunderbi@200116b82ce608004d88d70b7b3dd642.dip.versatel-1u1.de)
2020-11-27 13:31:35 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 13:33:35 +0100androzanimedium(~private@lfbn-idf2-1-1239-124.w90-92.abo.wanadoo.fr) (Quit: Lost terminal)
2020-11-27 13:35:00 +0100jonatanb(~jonatanb@user-5-173-65-4.play-internet.pl)
2020-11-27 13:35:37 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:41c8:cb6f:ef17:6c36)
2020-11-27 13:35:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-27 13:39:42 +0100bruce_wayne(~prateekpr@94.129.87.184) (Quit: leaving)
2020-11-27 13:40:38 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 13:40:46 +0100androzanimedium(~private@lfbn-idf2-1-1239-124.w90-92.abo.wanadoo.fr)
2020-11-27 13:41:01 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 13:42:29 +0100dcoutts_(~duncan@33.14.75.194.dyn.plus.net) (Remote host closed the connection)
2020-11-27 13:45:20 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-11-27 13:45:47 +0100kuribas(~user@ptr-25vy0ia7so77gy5gmna.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2020-11-27 13:47:09 +0100 <royal_screwup21> how do I compile a function on here to check for errors?
2020-11-27 13:47:33 +0100 <tomsmeding> what do you mean with "on here"?
2020-11-27 13:47:53 +0100 <royal_screwup21> on this channel, I believe you can eval code
2020-11-27 13:48:18 +0100 <tomsmeding> you can, using lambdabot, but all the ~1000 other participants also see that ;)
2020-11-27 13:48:30 +0100 <tomsmeding> I recommend installing GHC locally on your computer
2020-11-27 13:49:18 +0100 <tomsmeding> or use something like https://repl.it/ if you don't want to / aren't able to do that for whatever reason
2020-11-27 13:49:30 +0100 <royal_screwup21> hmm I'm trying to reproduce an error
2020-11-27 13:49:35 +0100 <royal_screwup21> https://ideone.com/xvAVO5
2020-11-27 13:49:40 +0100geekosaur(ac3a8b57@172.58.139.87)
2020-11-27 13:50:03 +0100 <tomsmeding> import Data.List
2020-11-27 13:50:03 +0100 <royal_screwup21> I don't quite get why the above isn't compiling
2020-11-27 13:50:07 +0100 <tomsmeding> ;)
2020-11-27 13:50:22 +0100 <tomsmeding> 'sort' and 'groupBy' are both in Data.List, not in the Prelude
2020-11-27 13:50:24 +0100 <royal_screwup21> why do I need that? does it contain the sort function?
2020-11-27 13:50:28 +0100 <royal_screwup21> ah
2020-11-27 13:50:32 +0100 <royal_screwup21> ty
2020-11-27 13:51:00 +0100 <tomsmeding> see also the documentation of the Prelude (https://hackage.haskell.org/package/base-4.14.0.0/docs/Prelude.html) and of e.g. data.List (https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-List.html)
2020-11-27 13:51:38 +0100 <tomsmeding> (you can use the 's' key on that page to open a search box in the base library, which includes these modules and more)
2020-11-27 13:52:43 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de)
2020-11-27 13:54:21 +0100Tario(~Tario@201.192.165.173)
2020-11-27 13:54:21 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 13:54:30 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-27 13:55:28 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-27 13:56:19 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke)
2020-11-27 13:56:41 +0100 <royal_screwup21> hmm it still isn't compiling :( https://ideone.com/DWO72R
2020-11-27 13:57:04 +0100n0042(d055ed89@208.85.237.137)
2020-11-27 13:57:54 +0100 <merijn> Because map returns a list...
2020-11-27 13:58:05 +0100 <royal_screwup21> ahh gotcha, thanks
2020-11-27 13:58:11 +0100 <tomsmeding> :t map length . groupBy (==) . sort @String
2020-11-27 13:58:12 +0100 <lambdabot> error:
2020-11-27 13:58:12 +0100 <lambdabot> Pattern syntax in expression context: sort@String
2020-11-27 13:58:12 +0100 <lambdabot> Did you mean to enable TypeApplications?
2020-11-27 13:58:17 +0100 <tomsmeding> :t map length . groupBy (==) . sort
2020-11-27 13:58:19 +0100 <lambdabot> Ord a => [a] -> [Int]
2020-11-27 13:58:28 +0100 <tomsmeding> which in your case is [String] -> [Int]
2020-11-27 13:58:42 +0100 <tomsmeding> (ignore the @ stuff)
2020-11-27 13:58:48 +0100 <geekosaur> use yahb for TypeApplications
2020-11-27 13:59:15 +0100tomsmedingnotes that down
2020-11-27 14:00:26 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-27 14:01:07 +0100ubert(~Thunderbi@p200300ecdf1e53a0e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-27 14:01:52 +0100urodna(~urodna@unaffiliated/urodna)
2020-11-27 14:02:32 +0100 <royal_screwup21> I have [[int]] and I want to map it to [Int]. For each sublist, I want to convert it to 1 if that sublist contains a "2". If it doesn't, convert to 0
2020-11-27 14:02:39 +0100 <royal_screwup21> what's the easiest way to do this in haskell?
2020-11-27 14:03:12 +0100 <royal_screwup21> 2* (i mean the integer 2 ofc, not the string "2")
2020-11-27 14:04:18 +0100 <opqdonut> :t elem
2020-11-27 14:04:20 +0100 <lambdabot> (Foldable t, Eq a) => a -> t a -> Bool
2020-11-27 14:04:44 +0100 <opqdonut> > map (elem 2) [[1,3],[2],[1,2,3],[]]
2020-11-27 14:04:46 +0100 <lambdabot> [False,True,True,False]
2020-11-27 14:07:50 +0100 <royal_screwup21> I've tried something like this: `sum . map (\x -> bool_to_int (elem 2 x)) . map charFreqs' strings`
2020-11-27 14:07:58 +0100 <hc> > map (fromEnum . elem 2) [[1,3],[2],[1,2,3],[]]
2020-11-27 14:08:00 +0100 <lambdabot> [0,1,1,0]
2020-11-27 14:08:03 +0100 <royal_screwup21> (I also want to sum up all the ints at the end)
2020-11-27 14:08:13 +0100 <hc> > sum $ map (fromEnum . elem 2) [[1,3],[2],[1,2,3],[]]
2020-11-27 14:08:15 +0100 <lambdabot> 2
2020-11-27 14:08:59 +0100 <hc> > sum $ concat [[1,3],[2],[1,2,3],[]]
2020-11-27 14:09:02 +0100 <lambdabot> 12
2020-11-27 14:09:37 +0100Tops21(~Tobias@dyndsl-095-033-092-087.ewe-ip-backbone.de)
2020-11-27 14:09:41 +0100 <geekosaur> hm. what do you want to have happen if the sublist contains multiple 2s?
2020-11-27 14:10:14 +0100 <royal_screwup21> that's ok, it just needs to contain 1 two. If it has mutliple 2s, it's still counted once
2020-11-27 14:11:14 +0100 <n0042> That is a really cool way to use fromEnum.
2020-11-27 14:11:42 +0100 <n0042> I would have used recursion to build a new list. Always cool to see these one-liners and learn a new trick
2020-11-27 14:12:56 +0100Tops2(~Tobias@dyndsl-095-033-092-087.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2020-11-27 14:13:04 +0100 <royal_screwup21> is there a built in way to get the char freq from a string?
2020-11-27 14:13:26 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke) (Quit: WeeChat 2.9)
2020-11-27 14:13:30 +0100 <royal_screwup21> a char counter basically, for strings
2020-11-27 14:13:36 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-27 14:13:47 +0100 <tomsmeding> > length (filter (== 'a') "abcabcaabc")
2020-11-27 14:13:50 +0100 <lambdabot> 4
2020-11-27 14:14:10 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-27 14:14:26 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net) ()
2020-11-27 14:14:26 +0100 <tomsmeding> not built in, but the basic elements are powerful enough :)
2020-11-27 14:14:36 +0100revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 240 seconds)
2020-11-27 14:14:52 +0100 <sshine> > Data.Map.fromListWith (+) (zip "hello world" [1,1..])
2020-11-27 14:14:55 +0100 <lambdabot> fromList [(' ',1),('d',1),('e',1),('h',1),('l',3),('o',2),('r',1),('w',1)]
2020-11-27 14:15:00 +0100 <royal_screwup21> ok cool ty :)
2020-11-27 14:15:13 +0100 <royal_screwup21> what's the difference between . and $, in simple terms?
2020-11-27 14:15:27 +0100 <sshine> f . g = \x -> f (g x)
2020-11-27 14:15:35 +0100revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-11-27 14:15:49 +0100 <tomsmeding> f $ x = f x
2020-11-27 14:15:52 +0100 <sshine> f $ x = f x
2020-11-27 14:15:52 +0100 <sshine> hehe
2020-11-27 14:15:58 +0100kuribas(~user@ptr-25vy0i7f13lrn3nx9jz.18120a2.ip6.access.telenet.be)
2020-11-27 14:16:03 +0100phaul(~phaul@ruby/staff/phaul)
2020-11-27 14:16:11 +0100 <itai33[m]> tomsmeding:
2020-11-27 14:16:15 +0100 <royal_screwup21> so x is a concrete value?
2020-11-27 14:16:21 +0100 <itai33[m]> shit sorry
2020-11-27 14:16:27 +0100 <tomsmeding> can be whatever f wants as an argument
2020-11-27 14:16:37 +0100 <sshine> . composes two functions, $ applies a function to an input
2020-11-27 14:16:42 +0100 <tomsmeding> which may be a concrete value like an Int, or maybe f takes a function as argument, who knows
2020-11-27 14:16:45 +0100 <sshine> royal_screwup21, functions are concrete values, too :)
2020-11-27 14:16:53 +0100 <royal_screwup21> so basically, I'm trying this: `map(\x -> elem 2 x) $ map charFreqs' ["hello", "world"]` -- it works
2020-11-27 14:17:09 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-27 14:17:09 +0100 <royal_screwup21> but when i replace $ with . I get a full blown traceback
2020-11-27 14:17:35 +0100 <tomsmeding> :t ($)
2020-11-27 14:17:37 +0100 <lambdabot> (a -> b) -> a -> b
2020-11-27 14:17:38 +0100 <tomsmeding> :t (.)
2020-11-27 14:17:39 +0100 <lambdabot> (b -> c) -> (a -> b) -> a -> c
2020-11-27 14:17:55 +0100 <sshine> map (\xs -> elem 2 xs) . map charFreqs' $ ["hello", "world"]
2020-11-27 14:17:57 +0100 <tomsmeding> read those 4 times and try to understand them :p
2020-11-27 14:17:59 +0100 <itai33[m]> tomsmeding: with regards to my previous question, i want both to use this to cache potentially hard calculations and calculations of `b` and `c` that involve IO. the record is immutable, but it describes the state of a brick application so it is updated using an event monad whenever a "thing" happnes
2020-11-27 14:18:17 +0100 <itai33[m]> I don't know what IORef is i'm looking into it now
2020-11-27 14:18:34 +0100 <sshine> 'map f . map g $ xs' is what you're trying to do, royal_screwup21?
2020-11-27 14:18:35 +0100 <tomsmeding> itai33[m]: if you're not using an IORef, you probably don't want to
2020-11-27 14:18:56 +0100 <itai33[m]> what is it?
2020-11-27 14:19:07 +0100 <tomsmeding> a mutable reference to a value :p
2020-11-27 14:19:11 +0100 <tomsmeding> well, mutable in IO
2020-11-27 14:19:16 +0100 <royal_screwup21> sshine yup, the `f` there maps a sublist to to True/False if it contains a 2
2020-11-27 14:19:28 +0100 <itai33[m]> yeah I don't really think i need that
2020-11-27 14:19:36 +0100 <itai33[m]> is my question clear at least?
2020-11-27 14:19:50 +0100 <royal_screwup21> I don't really get why it doesn't work when I compose with .
2020-11-27 14:19:53 +0100 <tomsmeding> itai33[m]: I think it can be even clearer if you can give a piece of code that illustrates the problem
2020-11-27 14:20:03 +0100 <geekosaur> you're not composing
2020-11-27 14:20:04 +0100adm(~adm@103.70.198.44)
2020-11-27 14:20:05 +0100 <sshine> royal_screwup21, it is because of operator precedence rules.
2020-11-27 14:20:20 +0100 <sshine> royal_screwup21, don't complicate your life :) use parentheses.
2020-11-27 14:20:40 +0100 <itai33[m]> tomsmeding: i have been called for things irl i'll work up a minimal working example and tag you, thanks!
2020-11-27 14:20:45 +0100 <sshine> royal_screwup21, map (\xs -> elem 2 xs) (map charFreqs' ["hello", "world"])
2020-11-27 14:21:04 +0100 <tomsmeding> itai33[m]: 👍
2020-11-27 14:21:20 +0100 <sshine> royal_screwup21, but since you're mapping twice in a row, why not: map (\xs -> elem 2 (charFreqs' xs)) ["hello", "world"]?
2020-11-27 14:21:27 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-27 14:22:07 +0100 <n0042> I have been able to get some pretty whacky functions to map like that. It's surprising how flexible the language can be
2020-11-27 14:22:32 +0100 <sshine> royal_screwup21, but if you're only interested in knowing if there is at least one of those strings for which 'elem 2 . charFreqs'' is true, why not: any (\xs -> elem 2 (charFreqs' xs)) ["hello", "world"]?
2020-11-27 14:23:32 +0100 <royal_screwup21> ty :0
2020-11-27 14:23:35 +0100 <royal_screwup21> :)*
2020-11-27 14:24:13 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-11-27 14:24:28 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:7ef3:407f:c35a:de9b:b845) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-27 14:24:34 +0100 <royal_screwup21> is there any easy to convert bool to int?
2020-11-27 14:24:37 +0100 <royal_screwup21> I tried this: *Main> bool_to_int True = 0
2020-11-27 14:24:38 +0100 <royal_screwup21> *Main> bool_to_int False = 1
2020-11-27 14:24:42 +0100adm(~adm@103.70.198.44) (Ping timeout: 272 seconds)
2020-11-27 14:24:52 +0100 <royal_screwup21> bool_to_int (elem 2 [1,2])
2020-11-27 14:24:53 +0100 <royal_screwup21> *** Exception: <interactive>:39:1-21: Non-exhaustive patterns in function bool_to_int
2020-11-27 14:25:00 +0100 <royal_screwup21> I don't get it
2020-11-27 14:25:13 +0100 <n0042> > fromEnum True
2020-11-27 14:25:14 +0100 <sshine> > (fromEnum False, fromEnum True)
2020-11-27 14:25:15 +0100 <lambdabot> 1
2020-11-27 14:25:16 +0100 <lambdabot> (0,1)
2020-11-27 14:25:36 +0100 <royal_screwup21> hmm ok ty
2020-11-27 14:25:42 +0100 <royal_screwup21> what's wrong with my way though
2020-11-27 14:25:51 +0100 <geekosaur> your function would have workedin ghc
2020-11-27 14:26:03 +0100 <geekosaur> but ghci needs it to all be in the same line
2020-11-27 14:26:17 +0100 <tomsmeding> (or use the :{ and :} ghci commands)
2020-11-27 14:26:21 +0100 <sshine> in GHCi you don't have the same freedom to write multi-line definitions by default.
2020-11-27 14:26:22 +0100 <royal_screwup21> ah
2020-11-27 14:27:02 +0100 <sshine> > let boolToInt b = if b then 1 else 0 in boolToInt False
2020-11-27 14:27:04 +0100 <lambdabot> 0
2020-11-27 14:27:38 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-27 14:28:06 +0100raichoo(~raichoo@213.240.178.58)
2020-11-27 14:28:14 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
2020-11-27 14:29:43 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-11-27 14:29:49 +0100 <royal_screwup21> could someone explain to me why this doesn't work? groupBy (==) . sort "hello"
2020-11-27 14:29:54 +0100 <royal_screwup21> • Couldn't match expected type ‘a -> [a1]’
2020-11-27 14:29:54 +0100 <royal_screwup21> with actual type ‘[Char]’
2020-11-27 14:29:55 +0100 <royal_screwup21> • Possible cause: ‘sort’ is applied to too many arguments
2020-11-27 14:29:55 +0100 <royal_screwup21> In the second argument of ‘(.)’, namely ‘sort "hello"’
2020-11-27 14:29:56 +0100 <royal_screwup21> In the expression: groupBy (==) . sort "hello"
2020-11-27 14:29:56 +0100 <royal_screwup21> In an equation for ‘it’: it = groupBy (==) . sort "hello"
2020-11-27 14:29:57 +0100 <royal_screwup21> • Relevant bindings include
2020-11-27 14:29:57 +0100 <royal_screwup21> it :: a -> [[a1]] (bound at <interactive>:50:1)
2020-11-27 14:30:11 +0100 <geekosaur> ugh, lease don't paste into the channel
2020-11-27 14:30:17 +0100 <royal_screwup21> ok sorry
2020-11-27 14:30:22 +0100 <geekosaur> and you are missing parentheses
2020-11-27 14:30:49 +0100 <geekosaur> or a $, which you apparently still don't understand (so use parentheses instead)
2020-11-27 14:31:02 +0100 <tomsmeding> > (groupBy (==) . sort) "hello"
2020-11-27 14:31:07 +0100 <lambdabot> ["e","h","ll","o"]
2020-11-27 14:32:01 +0100rdivyanshu(sid322626@gateway/web/irccloud.com/x-yyvemamxcxrcinrm) (Quit: Connection closed for inactivity)
2020-11-27 14:32:07 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-11-27 14:32:22 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 14:32:36 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 14:33:09 +0100SanchayanM(~Sanchayan@171.61.107.186)
2020-11-27 14:33:13 +0100SanchayanM(~Sanchayan@171.61.107.186) (Client Quit)
2020-11-27 14:34:03 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-11-27 14:35:27 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-27 14:35:34 +0100christo(~chris@81.96.113.213)
2020-11-27 14:36:45 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-27 14:44:07 +0100 <asheshambasta> Is there a way to somehow tell where cabal is looking for packages inside a nix-shell? It seems like cabal reports that it cannot find obvious packages like xmonad-contrib etc from within a nix-shell on my system
2020-11-27 14:44:13 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-11-27 14:46:02 +0100arifordsham(5af9a467@90.249.164.103)
2020-11-27 14:46:44 +0100drbean(~drbean@TC210-63-209-158.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-11-27 14:47:00 +0100 <arifordsham> H! I would love some opinions on this blog post I wrote: https://arifordsham.com/is-haskell-fast/
2020-11-27 14:47:34 +0100arifordsham(5af9a467@90.249.164.103) (Remote host closed the connection)
2020-11-27 14:52:35 +0100fendor_(~fendor@178.115.131.213.wireless.dyn.drei.com)
2020-11-27 14:53:42 +0100ashepelev(~ashepelev@84.39.116.180) (Remote host closed the connection)
2020-11-27 14:54:25 +0100fendor(~fendor@77.119.130.234.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2020-11-27 14:56:15 +0100 <dminuoso> What's the right protocol to write a FromJSON instance in aeson, such that unknown/unparsed fields lead to a parse error?
2020-11-27 14:56:35 +0100 <dminuoso> I want to reduce the amount of brittleness by forbidden people give me keys in objects I dont understand.
2020-11-27 14:57:10 +0100 <dminuoso> (Aside from roundtripping the parsed object back to Value and comparing for equality)
2020-11-27 14:57:50 +0100arifordsham(5af9a467@90.249.164.103)
2020-11-27 14:58:24 +0100 <dminuoso> Gah, I guess aeson really wants me to use Generics/TH. :(
2020-11-27 15:00:12 +0100arifordsham(5af9a467@90.249.164.103) (Remote host closed the connection)
2020-11-27 15:00:25 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:7ef3:407f:c35a:de9b:b845)
2020-11-27 15:01:12 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-rksoybtisgqazjbk)
2020-11-27 15:03:46 +0100 <itai33[m]> tomsmeding: this is a minimal working example:
2020-11-27 15:03:46 +0100 <itai33[m]> https://gist.github.com/iyefrat/dd1d6f124f298a053dad6824681a7795
2020-11-27 15:04:47 +0100 <itai33[m]> the idea is that i want that whenever i modify words for any reason, it automatically triggers everything else that needs to change as well, so i don't have to remember to change it
2020-11-27 15:05:10 +0100 <itai33[m]> also the records are nested if that matters
2020-11-27 15:07:02 +0100 <itai33[m]> now that i have written out this minimal example, i feel like the most straightforward way is to just create a collection of "rebuild" functions for each record field, but I wonder if there is a better way
2020-11-27 15:09:07 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-11-27 15:09:49 +0100 <itai33[m]> because for example, if i have some rebuild chain a -> b -> c, what i need to do when b changes is the same whether or not i change b or a, and it feels pointless to write the same code for that twice which is what i'm trying to avoid
2020-11-27 15:11:19 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-27 15:11:38 +0100infinity0(~infinity0@freenet/developer/infinity0)
2020-11-27 15:12:05 +0100wwwww(~wwwww@unaffiliated/wwwww) (Ping timeout: 240 seconds)
2020-11-27 15:12:05 +0100caecilius(~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net)
2020-11-27 15:12:48 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds)
2020-11-27 15:14:08 +0100Matt_P(~Matt_P@178.162.212.214)
2020-11-27 15:14:17 +0100knupfer(~Thunderbi@200116b82ce608004d88d70b7b3dd642.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-27 15:14:32 +0100wwwww(~wwwww@unaffiliated/wwwww)
2020-11-27 15:15:19 +0100alp_(~alp@2a01:e0a:58b:4920:d450:31dc:681:6a0f) (Remote host closed the connection)
2020-11-27 15:15:20 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-27 15:15:41 +0100alp_(~alp@2a01:e0a:58b:4920:54f0:a17c:6064:5767)
2020-11-27 15:17:43 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-27 15:17:58 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:41c8:cb6f:ef17:6c36) (Read error: Connection reset by peer)
2020-11-27 15:19:32 +0100f-a(~f-a@151.68.174.254)
2020-11-27 15:19:45 +0100adm(~adm@103.70.198.44)
2020-11-27 15:21:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2020-11-27 15:23:29 +0100kuribas(~user@ptr-25vy0i7f13lrn3nx9jz.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
2020-11-27 15:25:01 +0100texasmynsted(~texasmyns@212.102.45.121)
2020-11-27 15:28:12 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 15:28:34 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 15:28:41 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-ntgjmwmudxzzxssg) (Quit: Connection closed for inactivity)
2020-11-27 15:28:41 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-27 15:28:53 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds)
2020-11-27 15:29:34 +0100ubert(~Thunderbi@p200300ecdf1e53a0e6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-27 15:30:29 +0100jonatanb(~jonatanb@user-5-173-65-4.play-internet.pl) (Remote host closed the connection)
2020-11-27 15:31:54 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 15:32:16 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 15:33:04 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 15:33:28 +0100adm(~adm@103.70.198.44) (Ping timeout: 246 seconds)
2020-11-27 15:34:18 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-lovaggfdmdpppkhm)
2020-11-27 15:36:06 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 15:36:26 +0100adm(~adm@103.70.198.44)
2020-11-27 15:37:26 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Quit: Leaving)
2020-11-27 15:38:14 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-27 15:45:09 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-27 15:45:57 +0100 <lyxia> dminuoso: have you seen "rejectUnknownFields"
2020-11-27 15:48:23 +0100 <merijn> dminuoso: Clearly the solution is not to use JSON ;)
2020-11-27 15:49:02 +0100 <merijn> itai33[m]: Sounds like you want FRP :)
2020-11-27 15:49:12 +0100 <geekosaur> yaml? }:>
2020-11-27 15:49:25 +0100 <merijn> geekosaur: I will send assassins after you >.>
2020-11-27 15:49:35 +0100 <merijn> Dhall or bust!
2020-11-27 15:49:52 +0100jonatanb(~jonatanb@user-5-173-65-4.play-internet.pl)
2020-11-27 15:49:55 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-27 15:50:12 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-11-27 15:51:03 +0100 <maerwald> yes, yaml is great
2020-11-27 15:52:14 +0100 <maerwald> or sqlite
2020-11-27 15:52:36 +0100 <itai33[m]> merjin: my searches have lead me to reading this paper, is it related?
2020-11-27 15:52:36 +0100 <itai33[m]> https://dl.acm.org/doi/pdf/10.1145/503272.503296
2020-11-27 15:53:43 +0100 <merijn> itai33[m]: I was thinking of: http://conal.net/papers/push-pull-frp/
2020-11-27 15:54:29 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:7ef3:407f:c35a:de9b:b845) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-27 15:54:46 +0100 <itai33[m]> do you know what the difference between the two approaches are?
2020-11-27 15:54:47 +0100christo(~chris@81.96.113.213)
2020-11-27 15:55:09 +0100 <itai33[m]> also what is a good FRP library
2020-11-27 15:55:12 +0100jonatanb(~jonatanb@user-5-173-65-4.play-internet.pl) (Remote host closed the connection)
2020-11-27 15:55:42 +0100 <itai33[m]> cause for AFP it seems i will have to write it myself almost as adaptive is undocumented and out of date
2020-11-27 15:55:49 +0100 <itai33[m]> merijn:
2020-11-27 15:56:50 +0100 <merijn> I have no clue what adaptive functional programming is supposed to be, tbh
2020-11-27 15:58:00 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 15:58:28 +0100 <Squarism> Im trying to familiarize myself with Lens package (https://hackage.haskell.org/package/lens). There is a nice diagram on provided hackage page "the core of the hierarchy of lens-like constructions". Im cannot see how these "relations" are reflected in the code definitions of the named types. Other than being "functionally/structurally similar". Bare in mind, I still consider myself a learning haskeller so assume I might be missing something.
2020-11-27 15:58:56 +0100christo(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2020-11-27 15:59:12 +0100geekosaur(ac3a8b57@172.58.139.87) (Remote host closed the connection)
2020-11-27 16:01:50 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 16:02:10 +0100androzanimedium(~private@lfbn-idf2-1-1239-124.w90-92.abo.wanadoo.fr) (Quit: Lost terminal)
2020-11-27 16:02:12 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 16:03:55 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds)
2020-11-27 16:04:09 +0100 <itai33[m]> merijn: well at any rate thanks for the paper i'll look into it
2020-11-27 16:04:48 +0100 <merijn> Squarism: It's captured by things like "this optic require Applicative", "this one requires Functor", since all Applicatives are also Functors, this kinda "subtyping" follows from that
2020-11-27 16:05:03 +0100adm(~adm@103.70.198.44) (Remote host closed the connection)
2020-11-27 16:05:25 +0100 <merijn> Squarism: That said, lens isn't the most accessible code to understand even for non-beginners :p
2020-11-27 16:05:32 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 16:05:52 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 16:09:16 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-27 16:09:33 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-27 16:09:46 +0100tlaxkit(~kvirc@185.228.155.198)
2020-11-27 16:10:12 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 16:10:41 +0100 <Squarism> merijn, ah ok. How do you define "optic" ?
2020-11-27 16:10:53 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2020-11-27 16:11:12 +0100 <merijn> Squarism: "optic" is just a generalisation of lenses
2020-11-27 16:14:40 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-27 16:15:33 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-27 16:15:35 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2020-11-27 16:15:43 +0100sdrodge(~sdrodge@unaffiliated/sdrodge) (Quit: WeeChat 2.9)
2020-11-27 16:15:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 16:17:18 +0100sdrodge(~sdrodge@unaffiliated/sdrodge)
2020-11-27 16:18:59 +0100zebrag(~inkbottle@aaubervilliers-654-1-77-32.w86-212.abo.wanadoo.fr)
2020-11-27 16:19:20 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-11-27 16:19:36 +0100gproto023gproto23
2020-11-27 16:19:38 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2020-11-27 16:20:05 +0100inkbottle(~inkbottle@aaubervilliers-654-1-95-231.w86-212.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-11-27 16:20:34 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-27 16:23:34 +0100 <monochrom> Lenses make sense for product types but not sum types. Prisms were invented for sum types. So people needed a word that covers both. But sometimes people also use "lens" to cover both because the library package is already called "lens", too late to change.
2020-11-27 16:23:34 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-pogynndgtiiaiwaa)
2020-11-27 16:25:22 +0100vg(~vg@139.59.59.230)
2020-11-27 16:26:08 +0100Sonolin(~Sonolin@184.103.179.49)
2020-11-27 16:27:23 +0100 <Sonolin> is there an easy way (with stack) to create a static exe for windows?
2020-11-27 16:29:16 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-27 16:29:40 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 16:29:42 +0100 <Squarism> monochrom, thanks
2020-11-27 16:30:42 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection)
2020-11-27 16:31:09 +0100 <maerwald> static exe on windows? is that even a thing?
2020-11-27 16:31:18 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds)
2020-11-27 16:33:42 +0100 <Sonolin> hmm idk honestly haha I'm just trying to get my app building for windows properly without having to bundle sdl and all that
2020-11-27 16:34:19 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-11-27 16:34:20 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-11-27 16:38:33 +0100toorevitimirp(~tooreviti@117.182.183.18) (Remote host closed the connection)
2020-11-27 16:38:52 +0100 <hpc> maybe if sdl was packaged as an msi
2020-11-27 16:38:56 +0100 <hpc> and you packaged your thing as an msi
2020-11-27 16:39:25 +0100 <hpc> just knowing how every other piece of windows software is packaged though, i don't think you have much of a choice
2020-11-27 16:42:50 +0100adm(~adm@103.70.198.44)
2020-11-27 16:43:23 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-27 16:44:31 +0100hackagehocon 0.1.0.0 - https://hackage.haskell.org/package/hocon-0.1.0.0 (aleperaltabazas)
2020-11-27 16:45:31 +0100vg(~vg@139.59.59.230) (Quit: vg)
2020-11-27 16:46:00 +0100vg(~vg@139.59.59.230)
2020-11-27 16:46:03 +0100vg(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 16:46:30 +0100vg(~vg@139.59.59.230)
2020-11-27 16:47:50 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-27 16:49:19 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-27 16:49:29 +0100conal(~conal@64.71.133.70)
2020-11-27 16:49:37 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 16:50:58 +0100conal(~conal@64.71.133.70)
2020-11-27 16:51:25 +0100kuribas(~user@ptr-25vy0i7f13lrn3nx9jz.18120a2.ip6.access.telenet.be)
2020-11-27 16:53:38 +0100 <sm[m]> g'day all
2020-11-27 16:54:00 +0100hackagehocon 0.1.0.1 - Small library for typesafe's configuration specification https://hackage.haskell.org/package/hocon-0.1.0.1 (aleperaltabazas)
2020-11-27 16:54:17 +0100 <f-a> hello sm[m]
2020-11-27 16:54:24 +0100gproto23(~gproto23@unaffiliated/gproto23) (Read error: Connection reset by peer)
2020-11-27 16:54:33 +0100 <sm[m]> Sonolin: for non-SDL apps I do an ordinary stack build, and the exe works on other windows machines. For an SDL app, perhaps including SDL DLLs in the same directory is enough ?
2020-11-27 16:55:07 +0100 <Sonolin> good to know thanks sm[m]
2020-11-27 16:55:36 +0100 <sm[m]> you could also ask #haskell-game, the sdl2 issue tracker, or look at haskell SDL games like dino-rush
2020-11-27 16:55:43 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 16:58:47 +0100 <sm[m]> see interesting windows build command at https://github.com/jxv/dino-rush#readme
2020-11-27 16:59:57 +0100 <f-a> mhhh does it bundle libraries?
2020-11-27 17:01:02 +0100 <sm[m]> I suspect that pacman -S means "static" and yes.. not sure
2020-11-27 17:01:38 +0100vg(~vg@139.59.59.230) (Quit: vg)
2020-11-27 17:01:42 +0100 <hpc> -S is synchronize
2020-11-27 17:01:47 +0100 <sm[m]> ack
2020-11-27 17:01:53 +0100vg(~vg@139.59.59.230)
2020-11-27 17:01:54 +0100vg(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 17:02:01 +0100 <hpc> which apparently means pull from remote repositories?
2020-11-27 17:02:07 +0100vg(~vg@139.59.59.230)
2020-11-27 17:02:10 +0100vg(~vg@139.59.59.230) (Remote host closed the connection)
2020-11-27 17:02:37 +0100vg(~vg@139.59.59.230)
2020-11-27 17:02:56 +0100 <f-a> embitters me that — in general, for every language — deploying for multiple platforms still seems a Sisyphus’ task
2020-11-27 17:03:56 +0100 <hpc> the good news is that means it's a language-independent problem
2020-11-27 17:04:36 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-11-27 17:05:28 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-11-27 17:06:13 +0100francesco_(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 264 seconds)
2020-11-27 17:07:07 +0100 <sm[m]> I still think Sonolin should test that build command, since it mentions the SDL libs and might be doing something useful with them
2020-11-27 17:08:04 +0100 <sm[m]> ohh.. it's just installing them so stack build can see them
2020-11-27 17:08:16 +0100 <sm[m]> but who knows what can work on windows
2020-11-27 17:08:30 +0100SanchayanMaity(~Sanchayan@171.61.107.186) (Quit: SanchayanMaity)
2020-11-27 17:08:53 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 17:09:08 +0100 <f-a> oh.
2020-11-27 17:10:33 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-rksoybtisgqazjbk) (Quit: Connection closed for inactivity)
2020-11-27 17:11:06 +0100adm(~adm@103.70.198.44) (Remote host closed the connection)
2020-11-27 17:11:42 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-11-27 17:11:44 +0100Mrkz41(c1ef2595@193-239-37-149.ksi-system.net) (Remote host closed the connection)
2020-11-27 17:11:56 +0100nango(~user@2001:4bb8:2c0:f87:25fc:7ed4:4767:b1a9)
2020-11-27 17:12:03 +0100knupfer(~Thunderbi@200116b82ce60800e0ac76fffec36194.dip.versatel-1u1.de)
2020-11-27 17:12:37 +0100knupfer(~Thunderbi@200116b82ce60800e0ac76fffec36194.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-27 17:12:49 +0100knupfer(~Thunderbi@200116b82ce60800f825e99b55da9717.dip.versatel-1u1.de)
2020-11-27 17:13:05 +01007JTABO2R0(~adm@103.70.198.44)
2020-11-27 17:13:35 +0100 <nango> haskell newbie here: Is there any haskell extension that would allow me to
2020-11-27 17:14:51 +0100gallo`(~user@2001:4bb8:2c0:f87:25fc:7ed4:4767:b1a9)
2020-11-27 17:15:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2020-11-27 17:15:33 +0100 <gallo`> adsf
2020-11-27 17:15:54 +0100gallo`(~user@2001:4bb8:2c0:f87:25fc:7ed4:4767:b1a9) ()
2020-11-27 17:16:47 +0100 <Sonolin> so I got it building in appveyor this morning (I used that pacman command mentioned above and it worked)... I'm trying to dl wine since I don't have a windows pc
2020-11-27 17:17:16 +0100nango(~user@2001:4bb8:2c0:f87:25fc:7ed4:4767:b1a9) ("ERC (IRC client for Emacs 26.3)")
2020-11-27 17:17:19 +0100 <Sonolin> but where does stack exec -- pacman put the dlls? I don't see them in .stack-work... I'm guessing they are installed somewhere on the C drive?
2020-11-27 17:17:53 +0100 <sm[m]> Sonolin: yes, check pacman docs I guess. Maybe it has a verbose flag
2020-11-27 17:18:16 +0100ski(~ski@nc-2504-30.studat.chalmers.se) (Ping timeout: 240 seconds)
2020-11-27 17:18:55 +01007JTABO2R0(~adm@103.70.198.44) (Remote host closed the connection)
2020-11-27 17:19:57 +0100ski(~ski@nc-2504-30.studat.chalmers.se)
2020-11-27 17:21:05 +0100 <Sonolin> oh I see it just uses the pacman from mingw its probably in wherever mingw is installed
2020-11-27 17:21:42 +0100adm(~adm@103.70.198.44)
2020-11-27 17:21:54 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-11-27 17:24:28 +0100urek(~urek@2804:7f1:e10a:5ac1:ed1e:6611:ce38:c0f7)
2020-11-27 17:25:23 +0100Ariakenom_(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se)
2020-11-27 17:26:39 +0100nango(~user@2001:4bb8:2c0:f87:25fc:7ed4:4767:b1a9)
2020-11-27 17:29:21 +0100 <nango> How could I write the following in GADTs? `data Show a ⇒ MyCoolType` I.e., a datatype without any constructor, but still I'd like a constraint. In my particular case it is useful to use datatypes as tags. In GADTs I only know how to do it using constraints in the constructors, but not otherwise. Thx!
2020-11-27 17:30:59 +0100 <merijn> nango: You don't, because that's 99% certainly not what you want
2020-11-27 17:31:43 +0100 <merijn> Usually when people *say* "I want to put a datatype on my context" what they *mean* is "I want a way to avoid writing the constraint on all functions on my datatype"
2020-11-27 17:32:01 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds)
2020-11-27 17:32:04 +0100 <merijn> However, that's not what the context there lets you do
2020-11-27 17:32:31 +0100adm(~adm@103.70.198.44) (Remote host closed the connection)
2020-11-27 17:32:57 +0100 <nango> Ok, I guess it's a missconception on my side. You mean that I should make sure that this kind of information gets propagated everywhere in the pertinent functions
2020-11-27 17:33:02 +0100adm(~adm@103.70.198.44)
2020-11-27 17:33:30 +0100jonatanb(~jonatanb@user-5-173-153-95.play-internet.pl)
2020-11-27 17:33:44 +0100 <merijn> nango: You will have to do that anyway, yes
2020-11-27 17:34:02 +0100jonatanb(~jonatanb@user-5-173-153-95.play-internet.pl) (Remote host closed the connection)
2020-11-27 17:34:14 +0100 <merijn> If you write "data Show a => MyCoolType = ..." you *still* need to add "Show a =>" to each function that uses show
2020-11-27 17:34:34 +0100 <merijn> So the only thing you've accomplished is stopped some uses of your datatype, without getting any benefit
2020-11-27 17:34:45 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 17:35:26 +0100 <nango> ok, I did not know that, I guess this is related to why `DatatypeContexts` is a misfeature, silly me
2020-11-27 17:35:58 +0100 <merijn> That's pretty much why it was removed from the 2010 Report, yeah
2020-11-27 17:36:43 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 17:37:03 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 17:37:12 +0100 <nango> thank you! ;)
2020-11-27 17:38:22 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 256 seconds)
2020-11-27 17:38:59 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-11-27 17:39:18 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-27 17:40:50 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
2020-11-27 17:43:16 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Quit: leaving)
2020-11-27 17:43:27 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-27 17:45:06 +0100adm(~adm@103.70.198.44) (Remote host closed the connection)
2020-11-27 17:45:23 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 17:45:42 +0100adm(~adm@103.70.198.44)
2020-11-27 17:45:45 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 17:45:55 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-11-27 17:47:39 +0100 <tomsmeding> itai33[m]: it seems merijn got to you first :)
2020-11-27 17:48:42 +0100 <tomsmeding> FRP indeed came to my mind too when you initially described what you wanted, but I'm completely unfamiliar with it so I felt uncomfortable suggesting it
2020-11-27 17:49:13 +0100 <tomsmeding> also it sounds that maybe, depending on how complicated your system is, there may be a simpler/different way to program it that doesn't require this "automatic updating"?
2020-11-27 17:50:06 +0100fendor__(~fendor@77.119.131.179.wireless.dyn.drei.com)
2020-11-27 17:50:37 +0100adm(~adm@103.70.198.44) (Ping timeout: 264 seconds)
2020-11-27 17:50:42 +0100Lord_of_Life_Lord_of_Life
2020-11-27 17:51:05 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 17:52:15 +0100oxfn(~oxfn@188.170.200.10)
2020-11-27 17:52:16 +0100fendor_(~fendor@178.115.131.213.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2020-11-27 17:52:40 +0100oxfn(~oxfn@188.170.200.10) (Client Quit)
2020-11-27 17:52:56 +0100oxfn(~oxfn@188.170.200.10)
2020-11-27 17:52:57 +0100urek(~urek@2804:7f1:e10a:5ac1:ed1e:6611:ce38:c0f7) (Ping timeout: 272 seconds)
2020-11-27 17:53:03 +0100urek__(~urek@2804:7f1:e10a:5ac1:ade3:38a4:6528:5936)
2020-11-27 17:55:29 +0100alp_(~alp@2a01:e0a:58b:4920:54f0:a17c:6064:5767) (Ping timeout: 272 seconds)
2020-11-27 17:55:58 +0100__monty__(~toonn@unaffiliated/toonn)
2020-11-27 17:57:33 +0100geekosaur(ac3a56a6@172.58.86.166)
2020-11-27 17:58:01 +0100kelsey(~keteskyl@2600:6c64:7b7f:fa42:880b:e2d1:945a:df75) (Ping timeout: 272 seconds)
2020-11-27 17:58:22 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 17:58:30 +0100kelsey(~keteskyl@2600:6c64:7b7f:fa42:f5fe:4219:cdb7:f326)
2020-11-27 17:59:01 +0100hackagegit-annex 8.20201127 - manage files with git, without checking their contents into git https://hackage.haskell.org/package/git-annex-8.20201127 (JoeyHess)
2020-11-27 17:59:11 +0100 <nango> merijn: sorry to bother, however this works:
2020-11-27 17:59:32 +0100 <nango> data Whatever a where
2020-11-27 17:59:32 +0100 <nango> Whatever ∷ Show a ⇒ a → Whatever a
2020-11-27 17:59:35 +0100 <nango> lala ∷ Whatever a → String
2020-11-27 17:59:38 +0100 <nango> lala (Whatever b) = show b
2020-11-27 17:59:42 +0100 <merijn> Right, but that's something else entirely :)
2020-11-27 18:00:01 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 18:00:02 +0100 <merijn> GADTs enable existential quantification which lets you do some things like that
2020-11-27 18:00:22 +0100 <nango> ok, however is this bad practice, or is it completely fine ?
2020-11-27 18:00:22 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-27 18:00:33 +0100 <merijn> Although existential quantification also can get you into a bunch of trouble :p
2020-11-27 18:00:41 +0100 <merijn> @where existential-antipattern
2020-11-27 18:00:41 +0100 <lambdabot> "Haskell Antipattern: Existential Typeclass" by Luke Palmer at <http://lukepalmer.wordpress.com/2010/01/24/haskell-antipattern-existential-typeclass/>
2020-11-27 18:00:46 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-27 18:01:31 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-27 18:02:27 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-11-27 18:02:29 +0100 <nango> ok, I'll take a look thx again !
2020-11-27 18:02:53 +0100ubert1(~Thunderbi@p200300ecdf1e53eee6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-27 18:03:27 +0100ubert(~Thunderbi@p200300ecdf1e53a0e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-27 18:03:28 +0100ubert1ubert
2020-11-27 18:04:57 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:5572:c108:3697:b06d) (Ping timeout: 260 seconds)
2020-11-27 18:05:17 +0100 <dolio> I think the majority of the trouble you'll run into is people quoting that blog at you here.
2020-11-27 18:05:32 +0100 <dolio> Which doesn't itself describe much trouble you'll have.
2020-11-27 18:05:37 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-27 18:06:05 +0100 <merijn> It depends
2020-11-27 18:06:09 +0100 <tomsmeding> "Of course, the expansion is smaller than the original."
2020-11-27 18:06:18 +0100 <tomsmeding> that's clickbait
2020-11-27 18:06:23 +0100 <tomsmeding> for lack of a better word
2020-11-27 18:06:24 +0100conal(~conal@64.71.133.70)
2020-11-27 18:06:36 +0100 <merijn> Not all uses of existential quantification match the antipattern
2020-11-27 18:07:12 +0100 <dolio> People will cite that article even when it doesn't match.
2020-11-27 18:07:52 +0100 <dolio> Also the article barely even says why to not use the 'anti-pattern'. It just says not to.
2020-11-27 18:07:58 +0100 <merijn> dolio: Sure, but in this case it was more of a "be aware of pitfalls before throwing existentials all over"
2020-11-27 18:09:23 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-11-27 18:10:28 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 260 seconds)
2020-11-27 18:10:30 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
2020-11-27 18:10:37 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 18:10:57 +0100Jeanne-Kamikaze(~Jeanne-Ka@iakosalt-94.nationalnet.com)
2020-11-27 18:12:10 +0100fendor__fendor
2020-11-27 18:13:43 +0100timCF(~i.tkachuk@m91-129-105-245.cust.tele2.ee)
2020-11-27 18:15:07 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 18:15:09 +0100raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-11-27 18:16:03 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-27 18:16:12 +0100 <tdammers> IIRC that article describes a fairly specific use case of existentials, namely, heterogenous lists
2020-11-27 18:20:38 +0100alp_(~alp@2a01:e0a:58b:4920:954f:f506:d9f5:ca89)
2020-11-27 18:22:34 +0100christo(~chris@81.96.113.213)
2020-11-27 18:24:06 +0100timCF(~i.tkachuk@m91-129-105-245.cust.tele2.ee) (Quit: Lost terminal)
2020-11-27 18:27:13 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 18:29:31 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 246 seconds)
2020-11-27 18:30:08 +0100 <f-a> http://www.ariis.it/static/articles/2020-haskell-survey-analysis/costruzione/grafici/php/answerOve… Philoupap made some visualisation for the Haskell survey
2020-11-27 18:31:22 +0100 <f-a> (all the graphs http://www.ariis.it/static/articles/2020-haskell-survey-analysis/page.html#bonus )
2020-11-27 18:32:28 +0100kuribas(~user@ptr-25vy0i7f13lrn3nx9jz.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-11-27 18:33:11 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-27 18:33:33 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60)
2020-11-27 18:33:54 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-27 18:33:56 +0100 <benjamin-l> why is it that '<$>' binds differently from '$', so that things like 'f <$> g $ x' don't work?
2020-11-27 18:37:36 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 18:38:18 +0100urek(~urek@2804:7f1:e10a:5ac1:887:f10a:75b5:3ddb)
2020-11-27 18:38:33 +0100urek__(~urek@2804:7f1:e10a:5ac1:ade3:38a4:6528:5936) (Ping timeout: 272 seconds)
2020-11-27 18:42:59 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-27 18:43:24 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 18:43:28 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-27 18:44:47 +0100 <ski> tdammers : fwiw (sortof re the existential question), Idris' pattern-matching binds with alternative branches is interesting, <http://docs.idris-lang.org/en/latest/tutorial/interfaces.html#pattern-matching-bind>
2020-11-27 18:45:39 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-yyzdvrqskfbunymz)
2020-11-27 18:47:09 +0100 <ski> (also i'm reminded of the `let'-`try' / exception pattern-matching in O'Caml, <https://caml.inria.fr/pub/docs/manual-ocaml/patterns.html#sss:exception-match>,<https://web.archive.org/web/20161027043544/http://mjambon.com/extend-ocaml-syntax.html#lettry>, idea from "Exceptional Syntax" by Nick Benton,Andrew Kennedy in 2001-07 at <https://www.cs.tufts.edu/~nr/cs257/archive/nick-benton/exceptional-syntax.pdf>)
2020-11-27 18:47:20 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-27 18:47:38 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-27 18:47:52 +0100 <Orbstheorem> Hi o/ How can I expand a shell path in haskell? (e.g. "$XDG_CONFIG_HOME/foo" or "~someuser/somefile")?
2020-11-27 18:48:22 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-11-27 18:48:38 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov)
2020-11-27 18:48:55 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-27 18:50:43 +0100 <ski> benjamin-l : `$' has lower precedence than `<$>'. (and even if that wasn't the case, in case they had the same precedence (rather than the ordering being reversed), the right-associativity of the former wouldn't square with the left-associativity of the latter)
2020-11-27 18:51:22 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-lkmltywelefyyiow)
2020-11-27 18:51:40 +0100 <ski> benjamin-l : in any case, why not just write `f <$> g x' ?
2020-11-27 18:52:16 +0100f-a(~f-a@151.68.174.254) (Ping timeout: 246 seconds)
2020-11-27 18:52:31 +0100 <ski> (or, in case your `x' is actually a non-atomic expression, why not `f <$> (g x)' ? hm, there's also `(fmap f . g) x', i suppose)
2020-11-27 18:52:37 +0100 <vfaronov> Hi all! I've compiled a program, and it errors with:
2020-11-27 18:52:41 +0100 <vfaronov> > Weighted.hs:89:21-57: Non-exhaustive patterns in Just ((k, b), c)
2020-11-27 18:52:43 +0100 <lambdabot> <hint>:1:47: error: <hint>:1:47: error: parse error on input ‘in’
2020-11-27 18:52:44 +0100 <vfaronov> Problem is, there are only 43 lines in Weighted.hs, and I don't see a pattern like that in my code. Any ideas on how to debug this? -O0 instead of -O2 doesn't help
2020-11-27 18:52:55 +0100 <ski> (er .. sorry, i meant of course `f <$> g (x)')
2020-11-27 18:53:11 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit)
2020-11-27 18:53:29 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-27 18:53:48 +0100 <Orbstheorem> vfaronov: That error is precisely because such pattern is missing.
2020-11-27 18:54:17 +0100f-a(~f-a@151.68.37.55)
2020-11-27 18:54:22 +0100 <Orbstheorem> vfaronov: Share the code maybe?
2020-11-27 18:55:04 +0100 <Orbstheorem> Above line `47`, there should be a function that is missing the pattern.
2020-11-27 18:55:06 +0100 <geekosaur> we'd have to see the code, yeh. I'd suspect CPP without any other evidence, since it can throw line numbering off
2020-11-27 18:55:20 +0100 <benjamin-l> ski: mainly it's just for convenience if there's a long chain of nested functions
2020-11-27 18:55:25 +0100 <benjamin-l> is using ($) a lot bad style?
2020-11-27 18:55:37 +0100 <Orbstheorem> benjamin-l: IMHO yes, it makes your code unreadable :(
2020-11-27 18:56:16 +0100 <geekosaur> Orbstheorem, the point is the error is reported on line 89 of a 43-line file
2020-11-27 18:56:27 +0100Deide(~Deide@217.155.19.23)
2020-11-27 18:56:42 +0100 <geekosaur> something is expanding (buggy) code into their file
2020-11-27 18:56:52 +0100 <Orbstheorem> geekosaur: Oh sorry, I misread lambdabot's message as part of the OP.
2020-11-27 18:56:54 +0100 <Orbstheorem> x)
2020-11-27 18:57:14 +0100 <ski> benjamin-l : "is using ($) a lot bad style?" -- imho, yes. i very rarely use `$' at all (`BlockArguments' has gotten rid of most of my remaining uses of it)
2020-11-27 18:57:21 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 256 seconds)
2020-11-27 18:57:24 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-11-27 18:58:08 +0100 <ski> benjamin-l : i often see newbies write `foo (bar x $ baz y z)' for no good reason at all, when `foo (bar x (baz y z))' or `(foo . bar x) (baz y z)' would have been clearer/better, imho
2020-11-27 18:58:23 +0100 <Orbstheorem> benjamin-l: Personally I like explicit parenthesis or something like `let foo = a . b . c . d in foo bar`.
2020-11-27 18:58:34 +0100 <Orbstheorem> s/like/prefer/
2020-11-27 18:58:39 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 18:58:40 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-27 18:58:49 +0100alp_(~alp@2a01:e0a:58b:4920:954f:f506:d9f5:ca89) (Ping timeout: 272 seconds)
2020-11-27 18:58:54 +0100matta(~user@24-113-169-116.wavecable.com) (Remote host closed the connection)
2020-11-27 18:58:58 +0100 <benjamin-l> ooh, I didn't know about BlockArguments
2020-11-27 19:00:05 +0100justsomeguy(~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b)
2020-11-27 19:00:05 +0100justsomeguy(~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) (Changing host)
2020-11-27 19:00:05 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-11-27 19:00:10 +0100 <geekosaur> it's newish
2020-11-27 19:01:10 +0100 <benjamin-l> this wouldn't get rid of most of my ($) uses, so I think I'm doing something else wrong
2020-11-27 19:01:24 +0100ubert(~Thunderbi@p200300ecdf1e53eee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-11-27 19:02:22 +0100 <benjamin-l> I end up using ($) pretty frequently to, for example, chain different transformations together. An example from the thing I'm currently working on: `ExceptT $ fmap (first MyError) $ try $ ...'
2020-11-27 19:02:37 +0100 <benjamin-l> in order to lift an IO exception into a custom error in ExceptT
2020-11-27 19:02:56 +0100 <benjamin-l> is there a better way to do this type of thing?
2020-11-27 19:03:26 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 256 seconds)
2020-11-27 19:04:01 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-27 19:04:12 +0100 <geekosaur> xmonad layoutHooks use that pattern a lot
2020-11-27 19:04:23 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-27 19:04:27 +0100 <vfaronov> ah... mystery solved: it refers to another, similarly-named Weighted.hs in third-party code, got me confused
2020-11-27 19:05:00 +0100 <benjamin-l> the IO exceptions scare me because they're not expressed in the type system
2020-11-27 19:05:05 +0100 <monochrom> BlockArguments is for "f (\x -> g x)" -> "f \x -> g x" and "f (do ...)" -> "f do ..."
2020-11-27 19:05:30 +0100 <benjamin-l> I'm used to rust, where pretty much anything that can fail will return `Result<T, E>', and I'm trying to mimic that kind of pattern in haskell
2020-11-27 19:05:30 +0100 <monochrom> But "f (g x)" has to stay "f (g x)", "f g x" has always meant something else.
2020-11-27 19:05:45 +0100 <benjamin-l> but maybe I'm looking at this the wrong way and the IO exceptions aren't that bad
2020-11-27 19:06:26 +0100 <monochrom> IO exceptions are good when it's from opening a file for example.
2020-11-27 19:06:55 +0100 <monochrom> From "2nd item of a list but the list is empty" of course no one likes IO exceptions.
2020-11-27 19:07:06 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2020-11-27 19:08:00 +0100mastarija(~mastarija@93-136-22-83.adsl.net.t-com.hr)
2020-11-27 19:09:00 +0100 <ski> benjamin-l : `foo x $ bar y z w $ bleh t $ barf' should most probably be `(foo x . bar y z w . bleh t) barf',`(foo x . bar y z w) (bleh t barf)', or, if you insist, `foo x . bar y z w . bleh t $ barf' or `foo x . bar y z w $ bleh t barf'
2020-11-27 19:09:25 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds)
2020-11-27 19:11:16 +0100 <ski> (or just simply a plain honest `foo x (bar y z w (bleh t barf))', of course. brackets are nothing to be afraid of. it's when you get bracketted expressions that span multiple (many ?) lines, possibly ending with many closing brackets next to each other, that you might want to look for a nicer reformulation)
2020-11-27 19:11:46 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-27 19:12:30 +0100 <mastarija> Can anyone explain a bit how aeson parses Value type into some generic value a? I've been playing with generics creating a simple "Opaque" type, and encoding some generic value to Opaque was easy, however my brain is stuck on the reverse process.
2020-11-27 19:12:35 +0100 <mastarija> https://github.com/mastarija/opaque/blob/dev/lib/Data/Opaque.hs
2020-11-27 19:12:50 +0100 <mastarija> I can't even begin thinking about how to do it.
2020-11-27 19:13:15 +0100 <mastarija> I tried looking at aeson, but it's a bit too complex for me to grasp :/
2020-11-27 19:13:30 +0100 <monochrom> For best mental model, do not think in terms of $, even if you read it and write it all the time. Think in terms of "f (g x)", then consider "f $ g x" syntax sugar.
2020-11-27 19:13:57 +0100 <koz_> mastarija: Do you want an intro to how Generic works in general?
2020-11-27 19:14:01 +0100 <koz_> Or specifically how Aeson uses it?
2020-11-27 19:14:15 +0100 <mastarija> I understand generics, in general
2020-11-27 19:14:18 +0100 <monochrom> Always have an abstract syntax tree deep down in your heart. Then you won't be confused by quirky character-based syntax.
2020-11-27 19:14:25 +0100 <benjamin-l> monochrom: yeah, that's pretty much what my mental model is. the $ is just something that lets me write less parens
2020-11-27 19:14:34 +0100knupfer(~Thunderbi@200116b82ce60800f825e99b55da9717.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-27 19:14:43 +0100 <mastarija> koz_, but what I don't get is how aeson constructs a parser for a generic value
2020-11-27 19:14:43 +0100knupfer(~Thunderbi@200116b82ce60800740930dfd292ec1d.dip.versatel-1u1.de)
2020-11-27 19:14:53 +0100 <monochrom> Ah OK, cool, you already know.
2020-11-27 19:15:39 +0100 <koz_> mastarija: A Rep can be thought of as a 'skeleton', expressed as sums, products, and 'leaves'.
2020-11-27 19:15:54 +0100 <koz_> Aeson has instances for each 'leaf', because they're simple (relatively) to parse.
2020-11-27 19:15:54 +0100 <monochrom> But perhaps we can call $ syntax dollar, syntax money, monopoly money.
2020-11-27 19:15:55 +0100asheshambasta(~user@ptr-e1lysauiv50il654lwl.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
2020-11-27 19:16:01 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net)
2020-11-27 19:16:09 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net) ()
2020-11-27 19:16:21 +0100 <koz_> Then, if you can parse a and b, you can parse their sum (try one, then the other), and their product (do one, if it works, do the other, glue em together).
2020-11-27 19:16:25 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net)
2020-11-27 19:16:25 +0100 <koz_> That's more-or-less it.
2020-11-27 19:16:49 +0100 <ski> benjamin-l : anyway, the point in favor of `(f . g . h . i) x' (or `f . g . h . i $ x') over `f $ g $ h $ i $ x' is that in the former, `.' is associative, which means that you can factor out, "fold", any subsequence of the composition chain / "pipe" into its own (named) function. (and obviously the reverse as well, "unfolding" a definition that is a composition back into the chain it's used in)
2020-11-27 19:18:39 +0100skiguesses it's too much to hope for, for `$' to be changed to left-associative ..
2020-11-27 19:18:49 +0100 <mastarija> koz_, I mean, I don't know where to begin if I want to generate Rep from my Opaque data structure. My idea was to do something like Opaque -> Maybe Rep a, but I don't know how to construct rep.
2020-11-27 19:19:01 +0100 <koz_> You don't. You derive Generic and it happens for you.
2020-11-27 19:19:11 +0100 <ski> (point being to discourage / prevent people from writing `f $ g $ h $ i $ x' in the first place)
2020-11-27 19:19:15 +0100 <koz_> Hand-building Reps isn't something you should be doing unless you know _exactly_ what you're doing.
2020-11-27 19:19:28 +0100 <koz_> The fact you're asking these kinds of questions suggests that you don't, and that's OK.
2020-11-27 19:20:03 +0100belphegor666(~satan@HSI-KBW-046-005-253-003.hsi8.kabel-badenwuerttemberg.de)
2020-11-27 19:20:09 +0100 <mastarija> koz_, I think there's a misunderstanding
2020-11-27 19:20:47 +0100 <mastarija> With a concrete value Generic a => a I can get Rep and construct Opaque / Val from it
2020-11-27 19:21:05 +0100 <mastarija> But if I only have a type of a, how do I construct Rep a from Opaque?
2020-11-27 19:21:21 +0100 <mastarija> So I can convert it to actual "a"
2020-11-27 19:21:51 +0100 <koz_> That depends on what Opaque looks like. If you can go from a -> Rep a -> Opaque, surely you can go the other way by just... doing the same thing in reverse?
2020-11-27 19:21:53 +0100 <geekosaur> koaz_, if I understood their original question properly, they're trying to learn exactly how to hand-build it
2020-11-27 19:22:35 +0100 <geekosaur> trying to understand how aeson does it
2020-11-27 19:22:38 +0100 <koz_> I guess I don't understand the ultimate goal here.
2020-11-27 19:22:51 +0100 <geekosaur> understand how aeson works?
2020-11-27 19:22:53 +0100 <koz_> Oh well, someone who knows Generics better than me can probably field this one then.
2020-11-27 19:22:54 +0100nango`(~user@2001:4bb8:2c0:f87:dd82:f14:e18e:20f8)
2020-11-27 19:23:03 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-27 19:23:22 +0100 <mastarija> Goal is to implement Generics a => a -> Opaque and Generics a => Opaque -> a
2020-11-27 19:23:26 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-27 19:23:35 +0100 <mastarija> I implemented first one, but second one is giving me trouble
2020-11-27 19:23:40 +0100 <geekosaur> anyway, mastarija, this is deepish wizardry
2020-11-27 19:24:00 +0100 <monochrom> Sorry, what is the definition of Opague again?
2020-11-27 19:24:15 +0100 <mastarija> Because I don't have actual Rep a tree to work on, I only have a type of a, so I don't know how to map Opaque to A
2020-11-27 19:24:20 +0100 <mastarija> Just a sec
2020-11-27 19:24:23 +0100 <mastarija> https://github.com/mastarija/opaque/blob/dev/lib/Data/Opaque.hs
2020-11-27 19:24:27 +0100 <geekosaur> so it's not surprising it's giving you trouble. I have some idea of how I'd do it but would be hesitant to do so when I know aeson can work with a derived Generic instance and do it for me :)
2020-11-27 19:24:43 +0100f-a(~f-a@151.68.37.55) (Quit: bb)
2020-11-27 19:25:11 +0100 <mastarija> But I mean, I see aeson instances for building parser, but I understand nothing there :D
2020-11-27 19:25:17 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-27 19:25:48 +0100 <geekosaur> generics in haskell are a fairly advanced technique, yes
2020-11-27 19:25:56 +0100solonarv(~solonarv@astrasbourg-653-1-191-240.w90-13.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-11-27 19:25:57 +0100 <mastarija> geekosaur, basically I'm trying to implement mini aeson
2020-11-27 19:26:23 +0100 <geekosaur> yes,, that was what I told koz_ more or less
2020-11-27 19:26:28 +0100 <mastarija> and am wondering how to construct machinery to do Generics a -> Value -> Maybe a
2020-11-27 19:26:42 +0100 <monochrom> Ah, you are learning how Aeson does "instance Generic t => From/ToJSON t" because you're coding up the same thing.
2020-11-27 19:26:44 +0100nango(~user@2001:4bb8:2c0:f87:25fc:7ed4:4767:b1a9) (Ping timeout: 240 seconds)
2020-11-27 19:26:50 +0100 <mastarija> Yes
2020-11-27 19:27:40 +0100 <mastarija> monochrom, I figured out ToJSON, but FromJSON is giving me trouble
2020-11-27 19:27:56 +0100solonarv(~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr)
2020-11-27 19:28:03 +0100 <geekosaur> basically, Generics gives you a data structure representing the structure of a type. you enumerate that to find out what fields to look for and how to combine them
2020-11-27 19:28:56 +0100 <monochrom> Aeson decides to use a record with an extra tag field for sum types. If you have "data X = C1 Int | C2 String deriving Generic", Aeson will convert C1 10 to {tag="C1", field=10}, C2 "hello" to {tag="C2", field="hello"}, or a variation of that, I forgot the details.
2020-11-27 19:30:02 +0100 <monochrom> For FromJSON, or generally writing your own "instance Generic t => Read t", what I did is add a Proxy type.
2020-11-27 19:30:13 +0100christo(~chris@81.96.113.213)
2020-11-27 19:31:33 +0100 <mastarija> geekosaur, I did similar thing with tags and fields for sums
2020-11-27 19:32:35 +0100 <mastarija> geekosaur, so what's this Proxy type for?
2020-11-27 19:32:45 +0100 <geekosaur> that was monochrom
2020-11-27 19:33:26 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-27 19:33:39 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2020-11-27 19:34:05 +0100 <mastarija> sorry :D
2020-11-27 19:34:25 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 264 seconds)
2020-11-27 19:34:37 +0100christo(~chris@81.96.113.213) (Ping timeout: 246 seconds)
2020-11-27 19:34:55 +0100mastarija(~mastarija@93-136-22-83.adsl.net.t-com.hr) (Quit: Leaving)
2020-11-27 19:35:28 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-27 19:36:16 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2020-11-27 19:36:44 +0100mastarija(~mastarija@93-136-22-83.adsl.net.t-com.hr)
2020-11-27 19:36:50 +0100 <monochrom> mastarija: https://paste.tomsmeding.com/o66Pqbiu
2020-11-27 19:36:56 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
2020-11-27 19:37:37 +0100 <monochrom> Basically I pulled it off with the line "conName (M1 Proxy :: C1 c Proxy ())" when I need to know which constructor name string to expect
2020-11-27 19:37:39 +0100 <mastarija> monochrom, thanks! I'll study that
2020-11-27 19:38:01 +0100 <monochrom> where the type variable "c" is obtained from the context and ScopedTypeVariables
2020-11-27 19:38:21 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-27 19:38:28 +0100 <mastarija> monochrom, that was actually my main concern, I couldn't figure out how to get stuff form just the type
2020-11-27 19:38:29 +0100cmurr(~calum@cpc73662-dals20-2-0-cust446.20-2.cable.virginm.net) (Quit: cmurr)
2020-11-27 19:38:38 +0100 <monochrom> :)
2020-11-27 19:38:54 +0100 <mastarija> many thanks :D
2020-11-27 19:40:03 +0100shf(~sheaf@2a01:cb19:80cc:7e00:8861:b8e2:442:3aec) (Read error: Connection reset by peer)
2020-11-27 19:44:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-27 19:44:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 19:45:19 +0100alp(~alp@2a01:e0a:58b:4920:2168:29c2:e64d:be99)
2020-11-27 19:46:08 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-11-27 19:47:59 +0100geekosaur(ac3a56a6@172.58.86.166) (Ping timeout: 245 seconds)
2020-11-27 19:48:40 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-11-27 19:49:02 +0100knupfer(~Thunderbi@200116b82ce60800740930dfd292ec1d.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-27 19:49:08 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-11-27 19:50:25 +0100carlomagno1(~cararell@148.87.23.5) (Quit: Leaving.)
2020-11-27 19:53:16 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 240 seconds)
2020-11-27 19:55:08 +0100ubert(~Thunderbi@p200300ecdf1e53eee6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-27 19:56:05 +0100oxfn(~oxfn@188.170.200.10) (Ping timeout: 240 seconds)
2020-11-27 19:56:38 +0100ski(~ski@nc-2504-30.studat.chalmers.se) (Ping timeout: 256 seconds)
2020-11-27 19:59:44 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-11-27 20:01:02 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 20:03:33 +0100berberman_(~berberman@unaffiliated/berberman)
2020-11-27 20:04:50 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2020-11-27 20:05:28 +0100oxfn(~oxfn@188.162.176.57)
2020-11-27 20:06:19 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-11-27 20:06:54 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de)
2020-11-27 20:07:01 +0100Rudd0(~Rudd0@185.189.115.98) (Remote host closed the connection)
2020-11-27 20:07:02 +0100geekosaur(ac3a56a6@172.58.86.166)
2020-11-27 20:07:18 +0100ski_(~ski@ed-3358-10.studat.chalmers.se)
2020-11-27 20:07:21 +0100belphegor666(~satan@HSI-KBW-046-005-253-003.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9)
2020-11-27 20:08:29 +0100 <Sonolin> oh I found out you can grep for '.dll' in exe to find needed dlls... for my sdl2 haskell app it just needed the relevant SDL2 dll files... nice!
2020-11-27 20:08:57 +0100 <Sonolin> I wish I could statically link SDL2 into the app (I know this is possible since there is a libSDL.a file from mingw) but that should suffice
2020-11-27 20:10:29 +0100 <hpc> apparently there's a dumpbin command that can give you that info as well
2020-11-27 20:10:30 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
2020-11-27 20:10:32 +0100 <hpc> it's basically windows ldd
2020-11-27 20:13:13 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-pogynndgtiiaiwaa) (Quit: Connection closed for inactivity)
2020-11-27 20:15:26 +0100 <itai33[m]> tomsmeding: for my perpouses i can invoke all of the "automatic" stuff by hand with explicit update functions rather than say, lens setters or something (after that point the effort saved is rather small). I'm mainly interested at this point in the theoretical stuff
2020-11-27 20:15:32 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-27 20:16:26 +0100 <tomsmeding> ah makes sense! In that case, by all means look into FRP I think :p
2020-11-27 20:17:05 +0100Iceland_jack(~user@31.124.48.169)
2020-11-27 20:17:16 +0100 <tomsmeding> I'd probably just write helper functions to write to the struct that also update the other necessary fields
2020-11-27 20:17:19 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Quit: Leaving)
2020-11-27 20:18:23 +0100 <itai33[m]> yeah i'll probably do this as well and perhaps change it into something fancier later on
2020-11-27 20:18:49 +0100 <itai33[m]> although i think that adaptive functional programing might be a better fit here, FRP might be "too powerful tm"
2020-11-27 20:19:03 +0100 <itai33[m]> also someone needs to update the adaptive library it looks useful
2020-11-27 20:19:06 +0100 <itai33[m]> (that someone being me(
2020-11-27 20:19:17 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 20:19:58 +0100oxfn(~oxfn@188.162.176.57) (Ping timeout: 260 seconds)
2020-11-27 20:22:17 +0100oxfn(~oxfn@188.162.176.83)
2020-11-27 20:26:01 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Read error: Connection reset by peer)
2020-11-27 20:26:02 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-11-27 20:26:16 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 240 seconds)
2020-11-27 20:26:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-27 20:26:29 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-11-27 20:30:07 +0100frdg(~nick@pool-71-184-143-249.bstnma.fios.verizon.net) ()
2020-11-27 20:30:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-11-27 20:33:02 +0100 <Sonolin> one things FRP really helped me zone in on was having functions of "State -> State" rather than doing everything in state monad
2020-11-27 20:33:36 +0100oxfn(~oxfn@188.162.176.83) (Ping timeout: 240 seconds)
2020-11-27 20:33:42 +0100 <Sonolin> then you can do like `getInput :: Event` and then pass it off to something like `consume :: Event -> Env -> Env`
2020-11-27 20:34:27 +0100urek(~urek@2804:7f1:e10a:5ac1:887:f10a:75b5:3ddb) (Ping timeout: 272 seconds)
2020-11-27 20:34:48 +0100urek(~urek@2804:7f1:e10a:5ac1:2197:d373:48b9:137e)
2020-11-27 20:35:33 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-11-27 20:36:32 +0100 <itai33[m]> Sonolin: what did you use for FRP?
2020-11-27 20:37:35 +0100 <Sonolin> itai33[m] I tried out reactive-banana but ended up not using it since I wasn't really doing any realtime stuff.. the combinators seem really powerful & cool for that stuff though
2020-11-27 20:40:13 +0100 <Sonolin> fyi if you're using stack it seems to install out of the box with `lts-14.27` - the newer lts ran into some versioning issues with the latest reactive-banana from hackage
2020-11-27 20:41:02 +0100 <itai33[m]> thanks but i'm using cabal
2020-11-27 20:41:09 +0100plakband(~plakband@softbank126126238105.bbtec.net)
2020-11-27 20:41:32 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 272 seconds)
2020-11-27 20:41:58 +0100subttle(~anonymous@unaffiliated/subttle) (Quit: leaving)
2020-11-27 20:43:37 +0100 <plakband> I'm having a hard time properly tricking the CPP into substuting a string, i.e. turning the flag -DPATH=foo into a substitution PATH -> "foo". It seems that quotes break the CPP in all sorts of ways. Can anybody give me some pointers, ideally an example of where this works?
2020-11-27 20:44:39 +0100 <geekosaur> -DPATH='"foo"' from the shell, otherwise the shell itself eats one layer of quoting
2020-11-27 20:45:15 +0100fendor(~fendor@77.119.131.179.wireless.dyn.drei.com) (Remote host closed the connection)
2020-11-27 20:48:44 +0100 <geekosaur> unfortunately, last time I checked (cabal-install 2.x) there was no reliable quoting within cabal files
2020-11-27 20:49:06 +0100 <geekosaur> quoting is fairly tricky in general
2020-11-27 20:49:10 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2020-11-27 20:51:05 +0100 <plakband> So it seems... I tried the '"foo"' thing, if you're saying that /should/ work, it might be the case that the quotes get lost somewhere down the line in the rest of the build process
2020-11-27 20:51:59 +0100fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
2020-11-27 20:52:33 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 20:54:20 +0100carlomagno(~cararell@148.87.23.7)
2020-11-27 20:54:52 +0100boxscape10(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-11-27 20:55:13 +0100boxscape10boxscpae
2020-11-27 20:56:17 +0100 <plakband> alright, turns out it was... '"\"foo"\"'
2020-11-27 20:56:31 +0100 <geekosaur> ew.
2020-11-27 20:56:37 +0100 <plakband> oh I mean '"\"foo\""'
2020-11-27 20:56:41 +0100 <plakband> of course
2020-11-27 21:00:12 +0100ubert(~Thunderbi@p200300ecdf1e53eee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-27 21:02:31 +0100 <sm[m]> Sonolin: maybe hacky but another option: you can embed binary files into your executable (file-embed) and unpack them into current directory or \windows at startup
2020-11-27 21:03:00 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-11-27 21:04:51 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-27 21:05:55 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 21:06:12 +0100 <Sonolin> interesting idea, but I think I'd rather just go with the zip
2020-11-27 21:06:42 +0100 <Sonolin> I'm still trying to find the paths in appveyor to these DLLs but I think I finally found them... C:\Users\appveyor\AppData\Local\Programs\stack\x86_64-windows\*\mingw64\lib\*.dll
2020-11-27 21:07:07 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
2020-11-27 21:07:50 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 264 seconds)
2020-11-27 21:08:22 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 260 seconds)
2020-11-27 21:08:37 +0100mastarija(~mastarija@93-136-22-83.adsl.net.t-com.hr) (Ping timeout: 264 seconds)
2020-11-27 21:08:52 +0100mounty(~mounty@210.1.196.133) (Quit: Konversation terminated!)
2020-11-27 21:08:56 +0100 <sm[m]> you may know it, but github actions also works well for building windows binaries
2020-11-27 21:08:59 +0100bliminse(~bliminse@host86-134-63-68.range86-134.btcentralplus.com)
2020-11-27 21:09:23 +0100aarvar(~foewfoiew@50.35.43.33)
2020-11-27 21:10:08 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-27 21:13:24 +0100 <Sonolin> oh I didn't know that... good to know
2020-11-27 21:17:33 +0100knupfer(~Thunderbi@200116b82ce608006d1371781dde74ce.dip.versatel-1u1.de)
2020-11-27 21:19:31 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-11-27 21:19:31 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-11-27 21:19:55 +0100fendor(~fendor@77.119.131.179.wireless.dyn.drei.com)
2020-11-27 21:20:38 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
2020-11-27 21:20:39 +0100ggole(~ggole@2001:8003:8119:7200:e125:8c0:7374:b02e) (Quit: Leaving)
2020-11-27 21:21:55 +0100Tario(~Tario@garza.riseup.net)
2020-11-27 21:23:10 +0100nango``(~user@2001:4bb8:2c0:f87:3847:bc5f:6c1f:2)
2020-11-27 21:23:11 +0100 <nango``> :w
2020-11-27 21:23:17 +0100nango``(~user@2001:4bb8:2c0:f87:3847:bc5f:6c1f:2) ()
2020-11-27 21:23:44 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 21:23:56 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net)
2020-11-27 21:24:06 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 21:25:04 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-11-27 21:26:23 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-27 21:26:28 +0100Tario(~Tario@garza.riseup.net) (Ping timeout: 260 seconds)
2020-11-27 21:27:00 +0100stackdimes(~stackdime@45.91.21.40)
2020-11-27 21:27:04 +0100nango`(~user@2001:4bb8:2c0:f87:dd82:f14:e18e:20f8) (Ping timeout: 240 seconds)
2020-11-27 21:27:19 +0100conal(~conal@64.71.133.70)
2020-11-27 21:27:30 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 21:29:02 +0100conal(~conal@64.71.133.70)
2020-11-27 21:29:05 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 21:31:57 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 21:32:06 +0100conal(~conal@64.71.133.70)
2020-11-27 21:32:16 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 21:34:30 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2020-11-27 21:35:16 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2020-11-27 21:38:13 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-27 21:42:30 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-27 21:42:48 +0100pengjiz(~user@2601:547:901:fab0::1)
2020-11-27 21:43:15 +0100Tario(~Tario@garza.riseup.net)
2020-11-27 21:44:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-27 21:45:13 +0100conal(~conal@64.71.133.70)
2020-11-27 21:46:00 +0100Franciman(~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 256 seconds)
2020-11-27 21:46:01 +0100Tario(~Tario@garza.riseup.net) (Read error: Connection reset by peer)
2020-11-27 21:46:46 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-27 21:46:47 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 21:47:18 +0100Tario(~Tario@garza.riseup.net)
2020-11-27 21:47:58 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 246 seconds)
2020-11-27 21:48:06 +0100jespada(~jespada@90.254.245.49) (Quit: Leaving)
2020-11-27 21:48:12 +0100gproto023gproto23
2020-11-27 21:48:39 +0100Tario(~Tario@garza.riseup.net) (Read error: Connection reset by peer)
2020-11-27 21:49:23 +0100Tario(~Tario@garza.riseup.net)
2020-11-27 21:50:06 +0100conal_(~conal@64.71.133.70)
2020-11-27 21:51:02 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-11-27 21:52:48 +0100actuallybatman(~sam@S010664777dafd303.cg.shawcable.net) (Ping timeout: 256 seconds)
2020-11-27 21:53:44 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-27 21:55:56 +0100Tario(~Tario@garza.riseup.net) (Ping timeout: 240 seconds)
2020-11-27 21:56:30 +0100hackagereadme-lhs 0.8.1 - Literate programming support. https://hackage.haskell.org/package/readme-lhs-0.8.1 (tonyday567)
2020-11-27 21:56:47 +0100knupfer(~Thunderbi@200116b82ce608006d1371781dde74ce.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-27 21:56:55 +0100carlomagno(~cararell@148.87.23.7) (Quit: Leaving.)
2020-11-27 21:58:20 +0100MrSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-11-27 21:59:16 +0100tlaxkit(~kvirc@185.228.155.198) (Ping timeout: 240 seconds)
2020-11-27 21:59:46 +0100 <monochrom> I hate quoting and escape codes.
2020-11-27 22:01:16 +0100dirediresalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Ping timeout: 240 seconds)
2020-11-27 22:04:26 +0100 <maerwald> tell us what you like instead :P
2020-11-27 22:04:34 +0100actuallybatman(~sam@S010664777dafd303.cg.shawcable.net)
2020-11-27 22:05:17 +0100 <merijn> Cats are pretty good :p
2020-11-27 22:05:21 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 22:06:03 +0100 <maerwald> started using bat though: https://github.com/sharkdp/bat
2020-11-27 22:06:54 +0100fendor(~fendor@77.119.131.179.wireless.dyn.drei.com) (Remote host closed the connection)
2020-11-27 22:06:56 +0100 <ski_> the escaping character ought not to be escaped in terms of itself
2020-11-27 22:07:34 +0100 <merijn> maerwald: That's gonna give the cat -v guys an aneurysm...
2020-11-27 22:07:44 +0100boxscpaeboxscape
2020-11-27 22:08:29 +0100Tario(~Tario@201.192.165.173)
2020-11-27 22:08:48 +0100 <maerwald> hope their insurance covers that
2020-11-27 22:09:06 +0100 <aldum> lol, bat is good stuff tho
2020-11-27 22:09:14 +0100 <merijn> UNIX was made in the US, so...probably not :p
2020-11-27 22:09:53 +0100jneira(02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) (Quit: Ping timeout (120 seconds))
2020-11-27 22:10:24 +0100mpiechotka(~mpiechotk@107-203-255-70.lightspeed.sntcca.sbcglobal.net)
2020-11-27 22:10:25 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-27 22:10:41 +0100plakband(~plakband@softbank126126238105.bbtec.net) (Quit: WeeChat 2.9)
2020-11-27 22:11:24 +0100jneira(02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192)
2020-11-27 22:13:06 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 22:14:32 +0100mpiechotka(~mpiechotk@107-203-255-70.lightspeed.sntcca.sbcglobal.net) (Client Quit)
2020-11-27 22:14:46 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
2020-11-27 22:15:09 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-27 22:15:47 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-11-27 22:16:46 +0100pengjiz(~user@2601:547:901:fab0::1) (Quit: ERC (IRC client for Emacs 27.1))
2020-11-27 22:17:39 +0100ambidextrose(~fut-learn@mobile-166-170-45-26.mycingular.net)
2020-11-27 22:17:47 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
2020-11-27 22:17:58 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
2020-11-27 22:18:31 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 22:18:44 +0100tlaxkit(~kvirc@185.228.155.198)
2020-11-27 22:19:29 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2020-11-27 22:19:50 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-11-27 22:19:55 +0100uberj_(~uberj@107.170.237.156)
2020-11-27 22:20:32 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-27 22:20:35 +0100ambidextrose(~fut-learn@mobile-166-170-45-26.mycingular.net) ()
2020-11-27 22:20:41 +0100samebchase-(~samebchas@51.15.68.182) (Quit: Ping timeout (120 seconds))
2020-11-27 22:20:48 +0100blackdog(~blackdog@198.211.112.85) (Ping timeout: 256 seconds)
2020-11-27 22:20:55 +0100blackdog(~blackdog@198.211.112.85)
2020-11-27 22:21:13 +0100samebchase-(~samebchas@51.15.68.182)
2020-11-27 22:21:56 +0100catern(~catern@104.131.201.120) (Ping timeout: 256 seconds)
2020-11-27 22:21:56 +0100Firedancer_(~Firedance@178.62.203.79) (Ping timeout: 256 seconds)
2020-11-27 22:21:56 +0100greymalkin(~greymalki@199.180.249.79) (Ping timeout: 256 seconds)
2020-11-27 22:21:56 +0100xe4(~xe4@unaffiliated/xe4) (Ping timeout: 256 seconds)
2020-11-27 22:22:22 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2020-11-27 22:22:23 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2020-11-27 22:22:23 +0100neiluj(~jco@unaffiliated/neiluj)
2020-11-27 22:22:30 +0100statusfailed(~statusfai@statusfailed.com) (Ping timeout: 256 seconds)
2020-11-27 22:22:30 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-27 22:22:30 +0100joeytwiddle(~joeytwidd@162.243.115.31) (Ping timeout: 256 seconds)
2020-11-27 22:22:30 +0100Guest60204(~michael@142.93.75.170) (Ping timeout: 256 seconds)
2020-11-27 22:22:30 +0100uberj(~uberj@unaffiliated/uberj) (Ping timeout: 256 seconds)
2020-11-27 22:22:44 +0100statusfailed(~statusfai@statusfailed.com)
2020-11-27 22:22:45 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2020-11-27 22:22:59 +0100drewolson9(~drewolson@64.227.24.16)
2020-11-27 22:23:04 +0100aoei(~aoei@li2174-104.members.linode.com) (Ping timeout: 256 seconds)
2020-11-27 22:23:04 +0100nurupo(~nurupo.ga@unaffiliated/nurupo) (Ping timeout: 256 seconds)
2020-11-27 22:23:04 +0100c_wraith(~c_wraith@adjoint.us) (Ping timeout: 256 seconds)
2020-11-27 22:23:08 +0100polux200137(~polux@51.15.169.172)
2020-11-27 22:23:24 +0100geekosaur(ac3a56a6@172.58.86.166) (Ping timeout: 245 seconds)
2020-11-27 22:23:24 +0100n0042(d055ed89@208.85.237.137) (Ping timeout: 245 seconds)
2020-11-27 22:23:29 +0100xe4(~xe4@157.245.246.119)
2020-11-27 22:23:31 +0100greymalkin(~greymalki@199.180.249.79)
2020-11-27 22:23:38 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 256 seconds)
2020-11-27 22:23:48 +0100nurupo(~nurupo.ga@unaffiliated/nurupo)
2020-11-27 22:24:06 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-11-27 22:24:12 +0100wayne(~wayne@unaffiliated/wayne) (Ping timeout: 256 seconds)
2020-11-27 22:24:12 +0100micro(~micro@unaffiliated/micro) (Ping timeout: 256 seconds)
2020-11-27 22:24:12 +0100mantovani(~mantovani@104.131.207.121) (Ping timeout: 256 seconds)
2020-11-27 22:24:23 +0100polux20013(~polux@51.15.169.172) (Read error: Connection reset by peer)
2020-11-27 22:24:35 +0100Guest60204(~michael@142.93.75.170)
2020-11-27 22:24:37 +0100wayne(~wayne@unaffiliated/wayne)
2020-11-27 22:24:45 +0100aoei(aoei@2a01:7e01::f03c:92ff:fe4f:e85a)
2020-11-27 22:24:46 +0100heath(~heath@unaffiliated/ybit) (Ping timeout: 256 seconds)
2020-11-27 22:24:46 +0100c0c0(~coco@212-51-146-87.fiber7.init7.net) (Ping timeout: 272 seconds)
2020-11-27 22:25:05 +0100mantovani(~mantovani@104.131.207.121)
2020-11-27 22:25:20 +0100arianvp(~weechat@arianvp.me) (Ping timeout: 256 seconds)
2020-11-27 22:25:20 +0100drewolson(~drewolson@64.227.24.16) (Ping timeout: 256 seconds)
2020-11-27 22:25:20 +0100drewolson9drewolson
2020-11-27 22:25:31 +0100joeytwiddle(~joeytwidd@162.243.115.31)
2020-11-27 22:25:32 +0100ambidextrose(~fut-learn@mobile-166-170-45-26.mycingular.net)
2020-11-27 22:25:39 +0100micro(~micro@unaffiliated/micro)
2020-11-27 22:25:46 +0100alexelcu_(~alexelcu@142.93.180.198)
2020-11-27 22:26:32 +0100heath(~heath@unaffiliated/ybit)
2020-11-27 22:26:38 +0100 <ambidextrose> what's the command to cabal install dependencies from within a repository. so for example, it looks at the cabal file in a project and locally downloads all dependencies listed
2020-11-27 22:27:01 +0100hidedagger(~nate@unaffiliated/hidedagger) (Ping timeout: 256 seconds)
2020-11-27 22:27:01 +0100alexelcu(~alexelcu@142.93.180.198) (Ping timeout: 256 seconds)
2020-11-27 22:27:02 +0100nisstyre(~wes@python-zero/conduct-committee/nisstyre) (Ping timeout: 256 seconds)
2020-11-27 22:27:02 +0100gargawel(~gael@212.83.144.58) (Ping timeout: 256 seconds)
2020-11-27 22:27:15 +0100arianvp(~weechat@arianvp.me)
2020-11-27 22:27:56 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-11-27 22:27:59 +0100Firedancer_(~Firedance@178.62.203.79)
2020-11-27 22:28:00 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-27 22:28:43 +0100c_wraith(~c_wraith@adjoint.us)
2020-11-27 22:28:44 +0100gargawel(~gael@212.83.144.58)
2020-11-27 22:29:09 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 22:29:18 +0100jvanbure(~jvanbure@159.65.233.183) (Ping timeout: 256 seconds)
2020-11-27 22:29:51 +0100shapr(~shapr@haskell/developer/shapr) (Ping timeout: 256 seconds)
2020-11-27 22:31:33 +0100esotericalgo(~matt@fsf/member/esotericalgo) (Ping timeout: 256 seconds)
2020-11-27 22:31:42 +0100esotericalgo(~matt@uncertain.win)
2020-11-27 22:33:36 +0100jvanbure(~jvanbure@159.65.233.183)
2020-11-27 22:34:11 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-27 22:34:23 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi) (Ping timeout: 256 seconds)
2020-11-27 22:36:03 +0100conal_(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-27 22:36:05 +0100julm(~julm@revolt129.abo.ilico.org) (Ping timeout: 256 seconds)
2020-11-27 22:36:06 +0100dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
2020-11-27 22:36:15 +0100shapr(~shapr@162.243.9.169)
2020-11-27 22:36:33 +0100shaprGuest98709
2020-11-27 22:36:42 +0100falafel(~falafel@pool-71-182-132-27.pitbpa.fios.verizon.net)
2020-11-27 22:36:44 +0100cmurr(~calum@cpc73662-dals20-2-0-cust446.20-2.cable.virginm.net)
2020-11-27 22:37:14 +0100haveo(~haveo@sl35.iuwt.fr) (Ping timeout: 256 seconds)
2020-11-27 22:37:22 +0100julm(~julm@revolt129.abo.ilico.org)
2020-11-27 22:37:22 +0100haveo(~haveo@sl35.iuwt.fr)
2020-11-27 22:37:58 +0100neiluj(~jco@unaffiliated/neiluj) (Quit: leaving)
2020-11-27 22:38:56 +0100catern(~catern@104.131.201.120)
2020-11-27 22:38:56 +0100conal(~conal@64.71.133.70)
2020-11-27 22:39:49 +0100dddddd(~dddddd@unaffiliated/dddddd)
2020-11-27 22:40:13 +0100nisstyre(~wes@python-zero/conduct-committee/nisstyre)
2020-11-27 22:41:07 +0100codefaster(~codefaste@67.205.133.140)
2020-11-27 22:41:14 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-11-27 22:41:20 +0100ambidextrose(~fut-learn@mobile-166-170-45-26.mycingular.net) (Quit: leaving)
2020-11-27 22:42:13 +0100actuallybatman(~sam@S010664777dafd303.cg.shawcable.net) (Ping timeout: 264 seconds)
2020-11-27 22:42:43 +0100kelsey(~keteskyl@2600:6c64:7b7f:fa42:f5fe:4219:cdb7:f326) (Quit: WeeChat 2.8)
2020-11-27 22:43:07 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi)
2020-11-27 22:43:49 +0100johnw(~johnw@haskell/developer/johnw)
2020-11-27 22:44:16 +0100alx741(~alx741@181.196.68.166) (Ping timeout: 240 seconds)
2020-11-27 22:45:06 +0100androzanimedium(~private@lfbn-idf2-1-1239-124.w90-92.abo.wanadoo.fr)
2020-11-27 22:45:55 +0100chaosmasttter(~chaosmast@p200300c4a7138801312e09a0a6218d8a.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-11-27 22:46:20 +0100 <androzanimedium> Hello, I have a usage question about the ixset/ixset-typed package, is this the right channel or should I go to #happs?
2020-11-27 22:48:43 +0100 <maerwald> can
2020-11-27 22:51:03 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net)
2020-11-27 22:51:27 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-11-27 22:51:30 +0100c0c0(~coco@212-51-146-87.fiber7.init7.net)
2020-11-27 22:52:00 +0100hackagebox-socket 0.1.2 - Box websockets https://hackage.haskell.org/package/box-socket-0.1.2 (tonyday567)
2020-11-27 22:52:05 +0100Guest98709shapr
2020-11-27 22:52:13 +0100shapr(~shapr@162.243.9.169) (Changing host)
2020-11-27 22:52:13 +0100shapr(~shapr@haskell/developer/shapr)
2020-11-27 22:53:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-27 22:53:28 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 22:54:00 +0100actuallybatman(~sam@S010664777dafd303.cg.shawcable.net)
2020-11-27 22:55:31 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
2020-11-27 22:57:24 +0100michalz(~user@185.246.204.56) (Remote host closed the connection)
2020-11-27 22:59:22 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-11-27 22:59:23 +0100alx741(~alx741@181.196.69.215)
2020-11-27 23:02:03 +0100gproto23(~gproto23@unaffiliated/gproto23) (Remote host closed the connection)
2020-11-27 23:02:15 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-27 23:02:25 +0100Rudd0(~Rudd0@185.189.115.98)
2020-11-27 23:03:23 +0100terrorjack(~terrorjac@static.23.111.201.195.clients.your-server.de) (Read error: Connection reset by peer)
2020-11-27 23:03:24 +0100MindlessDrone(~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 265 seconds)
2020-11-27 23:03:24 +0100terrorjack(~terrorjac@static.23.111.201.195.clients.your-server.de)
2020-11-27 23:04:30 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 23:04:52 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 23:05:42 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-27 23:05:44 +0100MindlessDrone(~MindlessD@unaffiliated/mindlessdrone)
2020-11-27 23:06:26 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-27 23:06:37 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-27 23:07:08 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-11-27 23:07:14 +0100Sonolin(~Sonolin@184.103.179.49) (Quit: WeeChat 2.4)
2020-11-27 23:07:29 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-27 23:07:36 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-27 23:08:57 +0100fendor(~fendor@77.119.131.179.wireless.dyn.drei.com)
2020-11-27 23:09:17 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-11-27 23:11:11 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 23:11:32 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 23:12:28 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-27 23:13:16 +0100mouseghost(~draco@wikipedia/desperek)
2020-11-27 23:13:31 +0100Blkt(~Blkt@2a01:4f8:200:2425::adda) (Read error: Connection reset by peer)
2020-11-27 23:13:43 +0100Blkt(~Blkt@2a01:4f8:200:2425::adda)
2020-11-27 23:14:47 +0100alp(~alp@2a01:e0a:58b:4920:2168:29c2:e64d:be99) (Remote host closed the connection)
2020-11-27 23:15:10 +0100alp(~alp@2a01:e0a:58b:4920:111d:eb41:658a:67b)
2020-11-27 23:15:36 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 256 seconds)
2020-11-27 23:17:48 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2020-11-27 23:19:44 +0100conal(~conal@64.71.133.70)
2020-11-27 23:19:54 +0100rprije(~rprije@14-202-129-120.static.tpgi.com.au)
2020-11-27 23:20:35 +0100cmurr(~calum@cpc73662-dals20-2-0-cust446.20-2.cable.virginm.net) (Quit: cmurr)
2020-11-27 23:20:51 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-27 23:22:05 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-27 23:22:15 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-27 23:22:16 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-11-27 23:22:50 +0100conal(~conal@64.71.133.70)
2020-11-27 23:26:43 +0100Amras(~Amras@unaffiliated/amras) (Ping timeout: 272 seconds)
2020-11-27 23:28:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-27 23:30:21 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:690e:782b:9ef7:1aba)
2020-11-27 23:30:50 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-27 23:30:58 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-11-27 23:31:09 +0100Alleria__(~AllahuAkb@2604:2000:1484:26:9f5:6e26:cce:fc0e)
2020-11-27 23:31:14 +0100_Alleria(~AllahuAkb@2604:2000:1484:26:28a2:d4e:6ca5:3a53) (Ping timeout: 264 seconds)
2020-11-27 23:31:43 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-27 23:32:01 +0100kori(~kori@2804:14c:85a3:9105::1000)
2020-11-27 23:32:04 +0100kori(~kori@2804:14c:85a3:9105::1000) (Changing host)
2020-11-27 23:32:04 +0100kori(~kori@arrowheads/kori)
2020-11-27 23:32:45 +0100falafel(~falafel@pool-71-182-132-27.pitbpa.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-27 23:33:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-27 23:34:50 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:690e:782b:9ef7:1aba) (Ping timeout: 264 seconds)
2020-11-27 23:36:07 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 246 seconds)
2020-11-27 23:36:56 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 240 seconds)
2020-11-27 23:39:06 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds)
2020-11-27 23:40:22 +0100pfurla(~pfurla@207.15.195.173.client.static.strong-in52.as13926.net)
2020-11-27 23:41:16 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-11-27 23:45:44 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Ping timeout: 240 seconds)
2020-11-27 23:45:45 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2020-11-27 23:46:58 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-27 23:47:02 +0100Alleria__(~AllahuAkb@2604:2000:1484:26:9f5:6e26:cce:fc0e) (Ping timeout: 260 seconds)
2020-11-27 23:47:22 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 23:50:37 +0100androzanimedium(~private@lfbn-idf2-1-1239-124.w90-92.abo.wanadoo.fr) (Ping timeout: 264 seconds)
2020-11-27 23:51:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2020-11-27 23:52:06 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-11-27 23:53:33 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-27 23:58:43 +0100stackdimes(~stackdime@45.91.21.40) (Quit: WeeChat 2.9)
2020-11-27 23:58:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)