2020/12/08

2020-12-08 00:00:45 +0100pjb(~t@2a01cb04063ec50074a8618b6b489f5b.ipv6.abo.wanadoo.fr)
2020-12-08 00:01:04 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 256 seconds)
2020-12-08 00:01:37 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-08 00:01:39 +0100urek__(~urek@2804:7f1:e10a:7d51:5d41:4512:81ee:9975) (Ping timeout: 272 seconds)
2020-12-08 00:01:40 +0100ystael(~ystael@209.6.50.55)
2020-12-08 00:02:44 +0100urek__(~urek@2804:7f1:e10a:7d51:8503:5833:8cd1:db9c)
2020-12-08 00:03:36 +0100urek(~urek@191.32.132.91) (Ping timeout: 240 seconds)
2020-12-08 00:05:30 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Quit: Leaving)
2020-12-08 00:06:13 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds)
2020-12-08 00:07:39 +0100devalot(~ident@mail.pmade.com)
2020-12-08 00:08:17 +0100matryoshka(~matryoshk@184.75.223.227)
2020-12-08 00:08:26 +0100acidjnk_new(~acidjnk@p200300d0c719ff80cd4aafbd6cd15b09.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-12-08 00:08:32 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-08 00:08:39 +0100matryoshka(~matryoshk@184.75.223.227) (Client Quit)
2020-12-08 00:10:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 00:11:24 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-08 00:13:18 +0100isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com)
2020-12-08 00:13:31 +0100 <isovector1> is there some way i can make uniplate work with mutually recursive data types?
2020-12-08 00:13:47 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-12-08 00:13:58 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer)
2020-12-08 00:14:08 +0100matryoshka`(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-08 00:14:54 +0100matryoshka`(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2020-12-08 00:15:14 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-12-08 00:16:26 +0100matryoshka(~matryoshk@184.75.223.227)
2020-12-08 00:16:46 +0100 <Axman6> what issues do you run into?
2020-12-08 00:17:51 +0100jiribenes(~jiribenes@rosa.jiribenes.com) (Remote host closed the connection)
2020-12-08 00:18:08 +0100matryoshka`(~matryoshk@184.75.223.227)
2020-12-08 00:18:18 +0100matryoshka(~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
2020-12-08 00:18:20 +0100 <isovector1> `rewrite` doesn't go inside the mutual recursion
2020-12-08 00:19:33 +0100 <isovector1> eg if i write `data Foo = In | Out | Loop Bar` and `data Bar = BackToFoo Foo`, `rewrite $ \case {In -> Just Out: _ -> Nothing}` won't rewrite `Loop (BackToFoo (In))`
2020-12-08 00:20:22 +0100fendor(~fendor@178.115.129.186.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-08 00:20:56 +0100 <isovector1> at least not using the `generic-deriving` uniplate instances
2020-12-08 00:23:16 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 00:23:40 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 00:28:02 +0100solonarv(~solonarv@astrasbourg-552-1-28-212.w90-13.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2020-12-08 00:32:04 +0100wildlander(~wildlande@unaffiliated/wildlander)
2020-12-08 00:36:39 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-08 00:43:53 +0100conal(~conal@64.71.133.70)
2020-12-08 00:44:18 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 256 seconds)
2020-12-08 00:44:48 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-12-08 00:44:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-08 00:46:30 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-12-08 00:46:44 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-08 00:48:19 +0100sgibber2018(~arch-gibb@208.85.237.137) (Quit: WeeChat 2.9)
2020-12-08 00:50:10 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 00:50:35 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 00:50:36 +0100Kronic(~Kronic___@84.203.103.100)
2020-12-08 00:52:07 +0100 <Kronic> I have a very small question relating to how to read values that parameterize type declarations, when I read something like the basic definition for the state monad, how intertwined are the two s parameters?
2020-12-08 00:52:24 +0100 <Kronic> My understanding is that unless I use a RankNType they must be the same type and structure
2020-12-08 00:53:28 +0100 <sm[m]> I think https://github.com/Homebrew/linuxbrew-core/blob/master/Formula/ghc.rb should depend on gcc-6+. Would anyone have an idea how ?
2020-12-08 00:56:13 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-08 00:56:47 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-08 00:57:36 +0100 <monochrom> Kronic: I don't understand "intertwine" but I'm pretty sure it's barking up the wrong tree. "s -> (a, s)" is just saying you could make it Int -> (String, Int) (s=Int, a=String), or Char -> (Bool, Char) (s=Char, a=Bool), or other choices.
2020-12-08 00:57:49 +0100 <monochrom> If you understand Int->(String,Int) then you understand s->(a,s).
2020-12-08 00:58:06 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-08 00:59:13 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:483b:3e3a:b1be:f49a) (Quit: ZNC 1.8.1 - https://znc.in)
2020-12-08 00:59:53 +0100 <Kronic> monochrom: Ah, my bad. Let me be clearer in that case. The definitions are read left to right, so if I at some point on the left side bind a parameter to some type, must it be taken that this parameter is always the same unless I use forall ?
2020-12-08 00:59:55 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-08 01:01:52 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-12-08 01:01:53 +0100 <monochrom> yes
2020-12-08 01:02:25 +0100 <monochrom> I wonder if you just haven't thought along the line of http://www.vex.net/~trebla/haskell/prerequisite.xhtml#substitution
2020-12-08 01:02:28 +0100 <Kronic> Okay perfect, thank you. I just wanted to be sure. I recently returned to Haskell, and sometimes I trip over myself a little when reading documentation
2020-12-08 01:04:14 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-gkvwezxwtrpnkicw) (Quit: Connection closed for inactivity)
2020-12-08 01:06:00 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net)
2020-12-08 01:07:09 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Ping timeout: 260 seconds)
2020-12-08 01:07:54 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-08 01:08:12 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca)
2020-12-08 01:08:16 +0100isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Quit: Leaving)
2020-12-08 01:08:50 +0100notzmv(~user@unaffiliated/zmv)
2020-12-08 01:11:18 +0100 <Unicorn_Princess> suppose I'm using Data.MultiSet, and I'm not happy how its findMin function doesn't return a Maybe (so it can crash on an empty Set). so I write my own safe version, minSafe. in what module should I put this function, for organization? I can't put it into Data.MultiSet... can I?
2020-12-08 01:12:48 +0100ninja(~ninja@82.84.72.37)
2020-12-08 01:13:16 +0100bgamari_(~bgamari@2001:470:e438::1)
2020-12-08 01:14:20 +0100bgamari(~bgamari@72.65.101.236) (Ping timeout: 265 seconds)
2020-12-08 01:14:23 +0100mbirman(~user@119-17-128-101.771180.mel.nbn.aussiebb.net)
2020-12-08 01:14:54 +0100 <Axman6> Is there a package that provides lenses of a haskell AST, like haskell-src-exts or GHC's?
2020-12-08 01:15:10 +0100 <Axman6> also, anyone know the status of trees that grow in GHC/TH/HSE?
2020-12-08 01:16:10 +0100 <koz_> Unicorn_Princess: You can put it in Data.MultiSet.Safe?
2020-12-08 01:16:16 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds)
2020-12-08 01:16:17 +0100 <koz_> Since it's like, a local module?
2020-12-08 01:17:27 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 01:17:30 +0100 <Unicorn_Princess> i guess that's the standard. like how the extra package puts stuff into Data.List.Extra...
2020-12-08 01:17:33 +0100ninja(~ninja@82.84.72.37) (Quit: Leaving)
2020-12-08 01:18:19 +0100 <Kronic> monochrom, thanks for the link, it was a little bit on the longwinded side but it more than explained my question. Cheers
2020-12-08 01:19:26 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 01:21:07 +0100jedws(~jedws@121.209.181.215)
2020-12-08 01:24:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-08 01:25:15 +0100jmchael(~jmchael@87.112.60.168) (Ping timeout: 272 seconds)
2020-12-08 01:26:31 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 272 seconds)
2020-12-08 01:27:56 +0100Kronic(~Kronic___@84.203.103.100) (Ping timeout: 240 seconds)
2020-12-08 01:31:56 +0100dhil(~dhil@195.213.192.34) (Ping timeout: 240 seconds)
2020-12-08 01:32:30 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-12-08 01:33:36 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 240 seconds)
2020-12-08 01:34:14 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 272 seconds)
2020-12-08 01:34:35 +0100sm2n_(~sm2n@bras-base-hmtnon1497w-grc-44-69-156-5-58.dsl.bell.ca)
2020-12-08 01:36:45 +0100sm2n(~sm2n@bras-base-hmtnon1497w-grc-44-69-156-5-58.dsl.bell.ca) (Ping timeout: 260 seconds)
2020-12-08 01:40:06 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-08 01:40:23 +0100rdivacky(~rdivacky@212.96.173.4) (Ping timeout: 260 seconds)
2020-12-08 01:42:47 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 01:43:12 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 01:43:14 +0100rdivacky(~rdivacky@212.96.173.4)
2020-12-08 01:43:31 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-12-08 01:49:01 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989) (Remote host closed the connection)
2020-12-08 01:49:28 +0100falafel(~falafel@pool-108-31-243-192.washdc.fios.verizon.net)
2020-12-08 01:49:31 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989)
2020-12-08 01:50:43 +0100falafel_(~falafel@pool-108-31-243-192.washdc.fios.verizon.net)
2020-12-08 01:51:07 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-08 01:51:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 01:51:29 +0100StoneToad(~StoneToad@199-167-119-135.ppp.storm.ca) (Ping timeout: 260 seconds)
2020-12-08 01:52:30 +0100StoneToad(~StoneToad@199-167-119-135.ppp.storm.ca)
2020-12-08 01:53:07 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-08 01:54:00 +0100falafel(~falafel@pool-108-31-243-192.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-12-08 01:54:23 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989) (Ping timeout: 260 seconds)
2020-12-08 01:54:41 +0100conal(~conal@64.71.133.70)
2020-12-08 01:55:02 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-08 02:01:18 +0100carlomagno(~cararell@148.87.23.5) (Remote host closed the connection)
2020-12-08 02:01:57 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf)
2020-12-08 02:02:44 +0100Xnuk(~xnuk@vultr.xnu.kr) (Ping timeout: 246 seconds)
2020-12-08 02:03:03 +0100Xnuk(~xnuk@45.76.202.58)
2020-12-08 02:06:16 +0100columbarius(~columbari@mue-88-130-54-104.dsl.tropolys.de) (Ping timeout: 240 seconds)
2020-12-08 02:06:30 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-12-08 02:07:49 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2020-12-08 02:08:40 +0100columbarius(~columbari@i5E86B3C5.versanet.de)
2020-12-08 02:09:34 +0100mbirman(~user@119-17-128-101.771180.mel.nbn.aussiebb.net) (Ping timeout: 260 seconds)
2020-12-08 02:09:38 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 02:11:25 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2020-12-08 02:13:45 +0100dan64-(~dan64@dannyadam.com) (Quit: ZNC - http://znc.in)
2020-12-08 02:14:16 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 240 seconds)
2020-12-08 02:15:38 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2020-12-08 02:16:20 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
2020-12-08 02:18:17 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 260 seconds)
2020-12-08 02:19:04 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-12-08 02:19:48 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 02:20:43 +0100Amras(~Amras@unaffiliated/amras) ("Leaving")
2020-12-08 02:24:37 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-08 02:24:57 +0100dan64(~dan64@dannyadam.com)
2020-12-08 02:25:14 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-08 02:25:33 +0100Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2020-12-08 02:25:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-08 02:25:51 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-12-08 02:26:03 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
2020-12-08 02:27:16 +0100wildlander(~wildlande@unaffiliated/wildlander) (Quit: Konversation terminated!)
2020-12-08 02:28:19 +0100teardown(~user@gateway/tor-sasl/mrush)
2020-12-08 02:28:35 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Read error: Connection reset by peer)
2020-12-08 02:30:18 +0100conal(~conal@64.71.133.70)
2020-12-08 02:32:01 +0100Lord_of_Life(~Lord@46.217.218.10)
2020-12-08 02:33:07 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-08 02:33:19 +0100dyeplexer(~lol@unaffiliated/terpin)
2020-12-08 02:34:55 +0100 <pavonia> So functional programming finally made it, eh? ;) https://techcommunity.microsoft.com/t5/excel-blog/announcing-lambda-turn-excel-formulas-into-custo…
2020-12-08 02:35:18 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com)
2020-12-08 02:35:46 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2020-12-08 02:36:25 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
2020-12-08 02:36:33 +0100Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2020-12-08 02:36:50 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-12-08 02:39:09 +0100borne(~fritjof@200116b864e55d009ba1d43461655289.dip.versatel-1u1.de) (Ping timeout: 246 seconds)
2020-12-08 02:39:25 +0100guest128(~user@49.5.6.87)
2020-12-08 02:41:16 +0100rdivacky(~rdivacky@212.96.173.4) (Ping timeout: 240 seconds)
2020-12-08 02:43:07 +0100falafel_falafel
2020-12-08 02:43:53 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-12-08 02:44:24 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca)
2020-12-08 02:44:44 +0100rdivacky(~rdivacky@212.96.173.4)
2020-12-08 02:45:20 +0100Lord_of_Life(~Lord@46.217.218.10) (Ping timeout: 256 seconds)
2020-12-08 02:45:45 +0100 <blissful> friendship with haskell ended, microsoFT EXCEL is my new best friend!!!
2020-12-08 02:46:05 +0100Lord_of_Life(~Lord@46.217.216.160)
2020-12-08 02:46:52 +0100borne(~fritjof@200116b864e55d009ba1d43461655289.dip.versatel-1u1.de)
2020-12-08 02:50:01 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989)
2020-12-08 02:51:05 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2020-12-08 02:51:44 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989) (Remote host closed the connection)
2020-12-08 02:51:49 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 264 seconds)
2020-12-08 02:51:53 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989)
2020-12-08 02:56:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 02:56:29 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 02:59:31 +0100b3zi(~b3z@vmd41962.contaboserver.net) (Quit: cya)
2020-12-08 02:59:39 +0100b3z(~b3z@vmd41962.contaboserver.net)
2020-12-08 03:00:53 +0100infinity0(~infinity0@freenet/developer/infinity0) (Ping timeout: 272 seconds)
2020-12-08 03:01:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-08 03:01:58 +0100infinity0(~infinity0@freenet/developer/infinity0)
2020-12-08 03:06:19 +0100MOSCOS(~MOSCOS@122.54.107.175) (Read error: Connection reset by peer)
2020-12-08 03:06:25 +0100brisbin(~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) (Ping timeout: 240 seconds)
2020-12-08 03:06:44 +0100MOSCOS(~MOSCOS@122.54.107.175)
2020-12-08 03:06:52 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-08 03:07:30 +0100aarvar(~foewfoiew@50.35.43.33)
2020-12-08 03:07:46 +0100aarvar(~foewfoiew@50.35.43.33) (Client Quit)
2020-12-08 03:08:40 +0100Inoperable(~PLAYER_1@fancydata.science) (Quit: All your buffer are belong to us!)
2020-12-08 03:10:45 +0100sajith(~sajith@fsf/member/nonzen) (Ping timeout: 240 seconds)
2020-12-08 03:11:42 +0100sajith(~sajith@fsf/member/nonzen)
2020-12-08 03:14:14 +0100rprije(~rprije@14-201-170-17.tpgi.com.au) (Remote host closed the connection)
2020-12-08 03:14:23 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-12-08 03:14:37 +0100rprije(~rprije@14-201-170-17.tpgi.com.au)
2020-12-08 03:14:50 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
2020-12-08 03:17:08 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-12-08 03:18:13 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-08 03:19:01 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
2020-12-08 03:19:32 +0100xff0x_(~fox@2001:1a81:5262:300:2af7:941a:a8bf:efea) (Ping timeout: 260 seconds)
2020-12-08 03:19:49 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a9cd:54a5:5132:6498:c2e9)
2020-12-08 03:21:24 +0100xff0x_(~fox@2001:1a81:5297:ce00:5f6b:12d2:455b:ed40)
2020-12-08 03:22:36 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 240 seconds)
2020-12-08 03:23:06 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-08 03:23:16 +0100glguyseasonal-staff
2020-12-08 03:24:57 +0100ericsagn1(~ericsagne@2405:6580:0:5100:4353:f1b0:3343:508) (Ping timeout: 272 seconds)
2020-12-08 03:25:33 +0100jespada(~jespada@90.254.245.49)
2020-12-08 03:26:56 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
2020-12-08 03:27:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 03:28:32 +0100 <dsal> This seems pretty weird: `import Data.Monoid (<$>)`
2020-12-08 03:28:45 +0100twk-(~thewormki@unaffiliated/twk-) (Ping timeout: 240 seconds)
2020-12-08 03:29:28 +0100TheScoop_(~TheScoop@unaffiliated/tryte) (Ping timeout: 260 seconds)
2020-12-08 03:29:36 +0100marek(~mmahut@209.250.249.245) (Ping timeout: 256 seconds)
2020-12-08 03:30:20 +0100wei2912(~wei2912@unaffiliated/wei2912)
2020-12-08 03:31:44 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 03:32:08 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 03:32:18 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-12-08 03:32:37 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-08 03:33:46 +0100TheScoop(~TheScoop@unaffiliated/tryte)
2020-12-08 03:35:00 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-12-08 03:35:17 +0100falafel(~falafel@pool-108-31-243-192.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-12-08 03:36:51 +0100twk-(~thewormki@unaffiliated/twk-)
2020-12-08 03:37:24 +0100ericsagn1(~ericsagne@2405:6580:0:5100:d04d:c9b4:e354:8485)
2020-12-08 03:38:01 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-08 03:39:06 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com) (Remote host closed the connection)
2020-12-08 03:39:52 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 03:39:55 +0100 <cheater> (ot) does anyone know how to search for stuff with ripgrep, but exclude very long lines? or search for a string, but exclude results that contain a specific other string?
2020-12-08 03:41:09 +0100sgibber2018(~arch-gibb@208.85.237.137)
2020-12-08 03:41:11 +0100marek(~mmahut@209.250.249.245)
2020-12-08 03:41:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-08 03:41:26 +0100 <Axman6> riptreg foo | grep - v bar?
2020-12-08 03:42:00 +0100drbean(~drbean@TC210-63-209-186.static.apol.com.tw)
2020-12-08 03:42:23 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-08 03:43:42 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-08 03:44:05 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 240 seconds)
2020-12-08 03:44:18 +0100sgibber2018(~arch-gibb@208.85.237.137) (Client Quit)
2020-12-08 03:44:37 +0100sgibber2018(~arch-gibb@208.85.237.137)
2020-12-08 03:45:29 +0100sgibber2018(~arch-gibb@208.85.237.137) (Client Quit)
2020-12-08 03:45:55 +0100sgibber2018(~arch-gibb@208.85.237.137)
2020-12-08 03:51:37 +0100xff0x_(~fox@2001:1a81:5297:ce00:5f6b:12d2:455b:ed40) (Ping timeout: 260 seconds)
2020-12-08 03:52:02 +0100xff0x_(~fox@port-92-195-97-206.dynamic.as20676.net)
2020-12-08 03:55:16 +0100drbean(~drbean@TC210-63-209-186.static.apol.com.tw) (Ping timeout: 240 seconds)
2020-12-08 03:57:25 +0100mbirman(~user@119-17-128-101.771180.mel.nbn.aussiebb.net)
2020-12-08 03:59:49 +0100teardown_(~user@gateway/tor-sasl/mrush)
2020-12-08 03:59:54 +0100Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
2020-12-08 04:02:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-12-08 04:02:43 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
2020-12-08 04:03:27 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving)
2020-12-08 04:04:08 +0100drbean(~drbean@TC210-63-209-156.static.apol.com.tw)
2020-12-08 04:07:07 +0100SanchayanMaity(~Sanchayan@122.167.92.138)
2020-12-08 04:09:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-08 04:10:19 +0100sgibber2018(~arch-gibb@208.85.237.137) (Quit: WeeChat 2.9)
2020-12-08 04:14:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-08 04:15:25 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 240 seconds)
2020-12-08 04:15:52 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-08 04:17:33 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 04:17:52 +0100christo(~chris@81.96.113.213)
2020-12-08 04:18:43 +0100falafel(~falafel@pool-108-31-243-192.washdc.fios.verizon.net)
2020-12-08 04:19:32 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-08 04:21:48 +0100 <incertia> @monochrom: ok so i did a cheaty solution by just using TH to examine the instances of a typeclass and then autogenning a HashMap: https://gist.github.com/incertia/9100eec4262fde6373d4c5a13fa1ac04
2020-12-08 04:21:48 +0100 <lambdabot> Unknown command, try @list
2020-12-08 04:22:08 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-08 04:22:22 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-08 04:22:54 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-08 04:23:10 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
2020-12-08 04:23:12 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-08 04:23:27 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-08 04:23:34 +0100 <incertia> the only downside is that i have to import the module every time i solve a new problem
2020-12-08 04:23:41 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-08 04:23:57 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-08 04:24:22 +0100SanchayanMaity(~Sanchayan@122.167.92.138) (Quit: SanchayanMaity)
2020-12-08 04:24:27 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-08 04:24:39 +0100SanchayanMaity(~Sanchayan@122.167.92.138)
2020-12-08 04:24:40 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-08 04:25:13 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-08 04:25:26 +0100Saukk(~Saukk@2001:998:ec:944:a00f:6382:4f0:3e7e)
2020-12-08 04:26:01 +0100SanchayanMaity(~Sanchayan@122.167.92.138) (Client Quit)
2020-12-08 04:27:42 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
2020-12-08 04:27:56 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-08 04:28:53 +0100SanchayanMaity(~Sanchayan@122.167.92.138)
2020-12-08 04:29:20 +0100SanchayanMaity(~Sanchayan@122.167.92.138) (Client Quit)
2020-12-08 04:30:48 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2020-12-08 04:30:48 +0100lagothrixGuest28923
2020-12-08 04:30:48 +0100xirhtogallagothrix
2020-12-08 04:30:49 +0100theDon(~td@muedsl-82-207-238-155.citykom.de) (Ping timeout: 264 seconds)
2020-12-08 04:31:10 +0100conal(~conal@64.71.133.70)
2020-12-08 04:31:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 04:32:17 +0100theDon(~td@94.134.91.58)
2020-12-08 04:32:45 +0100SanchayanMaity(~Sanchayan@122.167.92.138)
2020-12-08 04:33:36 +0100Guest28923(~lagothrix@unaffiliated/lagothrix) (Ping timeout: 240 seconds)
2020-12-08 04:34:19 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 04:35:26 +0100xelxebar_(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2020-12-08 04:35:54 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-12-08 04:36:04 +0100falafel(~falafel@pool-108-31-243-192.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-12-08 04:36:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-08 04:36:29 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
2020-12-08 04:38:47 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 265 seconds)
2020-12-08 04:39:30 +0100Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt)
2020-12-08 04:40:25 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2020-12-08 04:40:37 +0100argento(~argent0@168.227.97.29)
2020-12-08 04:41:29 +0100 <incertia> i don't suppose you can use TH to import additional modules
2020-12-08 04:44:53 +0100olligobber(~olligobbe@unaffiliated/olligobber)
2020-12-08 04:56:03 +0100mbirmanmonadmatt
2020-12-08 04:56:15 +0100falafel(~falafel@pool-108-31-243-192.washdc.fios.verizon.net)
2020-12-08 04:56:49 +0100elliott__(~elliott@pool-108-45-178-3.washdc.fios.verizon.net)
2020-12-08 04:58:50 +0100monadmatt(~user@119-17-128-101.771180.mel.nbn.aussiebb.net) ("rcirc on GNU Emacs 27.1")
2020-12-08 05:00:10 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 05:00:31 +0100 <jle`> i learned TH for that purpose actually initially :)
2020-12-08 05:03:17 +0100falafel_(~falafel@pool-108-31-243-192.washdc.fios.verizon.net)
2020-12-08 05:03:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 05:04:25 +0100texasmynsted(~texasmyns@212.102.45.106) (Remote host closed the connection)
2020-12-08 05:05:36 +0100falafel(~falafel@pool-108-31-243-192.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-12-08 05:09:49 +0100 <ezzieyguywuf> of the solutions offered on the SO thread, this last one seems to make the most sense to me. But I'm wondering why it's the least upvoted. any thoughts? https://stackoverflow.com/a/51740646
2020-12-08 05:12:07 +0100 <jle`> it has a lot of moving parts, maybe
2020-12-08 05:12:49 +0100 <ezzieyguywuf> I'm not saying I don't like the accepted answer, but it too seems a bit roundabout and convoluted
2020-12-08 05:13:25 +0100 <ezzieyguywuf> especially considering that in other languages this would be trivial with something like "do while"
2020-12-08 05:14:08 +0100 <ezzieyguywuf> does the functional programming style not lend itself to these sorts of problems? or rather, should the problem perhaps be reframed into somethnig that is better suited to the functional approach?
2020-12-08 05:14:24 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-08 05:14:33 +0100nowhereman(~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Remote host closed the connection)
2020-12-08 05:15:09 +0100nowhereman(~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155)
2020-12-08 05:15:25 +0100 <jle`> i think the problem as stated is fine in a functional context
2020-12-08 05:15:40 +0100 <jle`> the accepted answer is pretty functional, it's "look at the cumulative sums, and find the first or last one that matches"
2020-12-08 05:15:53 +0100 <jle`> which is essentially what a for while loop does
2020-12-08 05:16:21 +0100 <jle`> computes cumulative sums and breaks as soon as it reaches a condition
2020-12-08 05:16:42 +0100 <jle`> in this case, scanl' (+) is the cumulative summer, and takeWhile/dropWhile is the condition checker
2020-12-08 05:16:45 +0100 <ezzieyguywuf> i guess in either approach, an infinite loop is an inherent possibility
2020-12-08 05:17:05 +0100 <jle`> sure, it's inherent. and sort of obvious in the list approach
2020-12-08 05:17:07 +0100softwarm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Remote host closed the connection)
2020-12-08 05:17:12 +0100 <jle`> maybe the for loop approach obscures that a little more
2020-12-08 05:17:34 +0100 <ezzieyguywuf> i think the for-loop approach is probably easier to understand and reason about though
2020-12-08 05:17:50 +0100 <ezzieyguywuf> but maybe that's just my imperitive background kicking in
2020-12-08 05:18:12 +0100 <ezzieyguywuf> should they have used scanl' rather than scanl?
2020-12-08 05:18:20 +0100 <ezzieyguywuf> something akin to foldl' vs foldl?
2020-12-08 05:18:36 +0100 <ezzieyguywuf> oh wait, they used scanl1, whatever that is..
2020-12-08 05:18:47 +0100 <jle`> hm, idk, the "search the cumulative sums until you find what you are looking for" seems pretty intuitive to me
2020-12-08 05:19:09 +0100 <jle`> maybe more or as intuitive than "allocate this state and mutate this variable and check it every time and stop mutating"
2020-12-08 05:19:23 +0100 <jle`> but yeah, it's sort of a matter of experience and background maybe
2020-12-08 05:19:33 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-08 05:20:13 +0100 <jle`> the first one is just "your answer is in the list, just do a simple search with a predicate" and the second is "manipulate the memory of your computer to conjure an answer"
2020-12-08 05:20:28 +0100 <jle`> admittedly using head and dropWhile isn't the cleanest way to express it i think
2020-12-08 05:20:31 +0100 <jle`> maybe i'd use 'find'
2020-12-08 05:21:36 +0100 <jle`> % find (>= 1000) (scanl' (+) 0 [1..])
2020-12-08 05:21:36 +0100 <yahb> jle`: Just 1035
2020-12-08 05:21:51 +0100 <jle`> "in the cumulative sums starting from 1, find the first value greater than 1000
2020-12-08 05:21:59 +0100 <ezzieyguywuf> I think perhaps the part that is most jarring to me is that in the accepted answer, the way I reason or parse it is more or less as you've described it "FIRST make a list, THEN check each value in the list, THEN take the first one", and though I eventually also add "(oh by the way, due to laziness this isn't wasteful)" my initial thought is "but why process the whole list if you don't have to!"
2020-12-08 05:22:15 +0100 <jle`> or maybe in a more declarative sense, "your answer is the first item in the cumulative sums that is greater than 1000"
2020-12-08 05:22:19 +0100 <ezzieyguywuf> and in the imperitive approach it is made obvious that the list is only process as far as it needs to be.
2020-12-08 05:22:19 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net) (Read error: Connection reset by peer)
2020-12-08 05:22:41 +0100 <jle`> i think maybe you are thinking of the list as a container of values
2020-12-08 05:22:43 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net)
2020-12-08 05:22:52 +0100 <ezzieyguywuf> jle`: that is how I am thinking of the list
2020-12-08 05:23:00 +0100 <jle`> instead of like as an iterator or streamer/control flow
2020-12-08 05:23:17 +0100 <jle`> scanl' (+) [1..] isn't a container of values
2020-12-08 05:23:26 +0100 <ezzieyguywuf> yea, I guess I could stand to improve my mental image of "lists" in haskell
2020-12-08 05:23:28 +0100 <jle`> it's a stream of cumulative sums from 1
2020-12-08 05:24:00 +0100 <ezzieyguywuf> I remember something from Learn You a Haskell about permutations or something (related to the monad instance for lists I believe) that started to bring me down that path, but then I went on to something else
2020-12-08 05:24:18 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-08 05:25:37 +0100 <ezzieyguywuf> jle`: I like your description, specifically the word "stream"
2020-12-08 05:25:38 +0100 <jle`> yeah, when i see scanl' (+) [1..], i don't see an infinite container, i see a stream i can search or iterate through, mathematically, in a way
2020-12-08 05:25:51 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca)
2020-12-08 05:25:52 +0100 <jle`> lists in haskell are most closely releated to for loops in other languages
2020-12-08 05:25:53 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-08 05:26:19 +0100conal(~conal@64.71.133.70)
2020-12-08 05:26:20 +0100 <jle`> it's actually usually almost directly translatable
2020-12-08 05:26:41 +0100 <koz_> We even have
2020-12-08 05:26:44 +0100 <koz_> :t forM
2020-12-08 05:26:45 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net) (Ping timeout: 240 seconds)
2020-12-08 05:26:46 +0100 <lambdabot> (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
2020-12-08 05:26:51 +0100 <jle`> aka, `for` :)
2020-12-08 05:26:51 +0100 <koz_> Look at that, a loop!
2020-12-08 05:27:00 +0100 <koz_> :t for
2020-12-08 05:27:01 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-08 05:27:02 +0100 <lambdabot> (Traversable t, Applicative f) => t a -> (a -> f b) -> f (t b)
2020-12-08 05:27:06 +0100 <koz_> Look at that, also a loop!
2020-12-08 05:27:09 +0100 <jle`> % for [1..10] \i -> print i
2020-12-08 05:27:09 +0100 <yahb> jle`: ; <interactive>:97:13: error:; Unexpected lambda expression in function application:; \ i -> print i; You could write it with parentheses; Or perhaps you meant to enable BlockArguments?
2020-12-08 05:27:13 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net)
2020-12-08 05:27:18 +0100 <jle`> % :set -XBlockArguments
2020-12-08 05:27:18 +0100 <yahb> jle`:
2020-12-08 05:27:20 +0100 <jle`> % for [1..10] \i -> print i
2020-12-08 05:27:20 +0100 <yahb> jle`: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; [(),(),(),(),(),(),(),(),(),()]
2020-12-08 05:27:29 +0100 <jle`> whoops, should have dropped the results. but yeah
2020-12-08 05:27:30 +0100 <koz_> jle`: for_ maybe?
2020-12-08 05:27:36 +0100 <jle`> mhm
2020-12-08 05:27:42 +0100conal(~conal@64.71.133.70)
2020-12-08 05:27:44 +0100 <koz_> % for_ [1..10] print
2020-12-08 05:27:44 +0100 <yahb> koz_: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10
2020-12-08 05:27:48 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-08 05:28:09 +0100 <koz_> (although I typically spell that 'traverse_ print [1..10]')
2020-12-08 05:28:38 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 05:29:22 +0100conal(~conal@64.71.133.70)
2020-12-08 05:29:51 +0100 <ezzieyguywuf> can someone show me a simple example using that `for`?
2020-12-08 05:29:55 +0100Unicorn_Princess(~Unicorn_P@89-212-115-169.static.t-2.net) (Client Quit)
2020-12-08 05:30:17 +0100 <jle`> % for_ [1..10] (\i -> print i)
2020-12-08 05:30:17 +0100 <yahb> jle`: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10
2020-12-08 05:30:20 +0100 <koz_> ezzieyguywuf: We just did.
2020-12-08 05:30:25 +0100 <jle`> oh, do you mean for and not for_
2020-12-08 05:30:48 +0100 <koz_> 'for' usually means you care about the result.
2020-12-08 05:31:02 +0100 <koz_> (not just the effects)
2020-12-08 05:31:40 +0100 <ezzieyguywuf> lol whoops, my eyes glazed over when I saw the %
2020-12-08 05:31:49 +0100 <ezzieyguywuf> and the errors
2020-12-08 05:32:38 +0100 <Squarism> Scala library had a pretty neat feature where you could strip all text before and including "|" in multiline strings. Is there something similar in Data.Text or Data.ByteString?
2020-12-08 05:32:50 +0100 <Squarism> (per line that is)
2020-12-08 05:33:04 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 256 seconds)
2020-12-08 05:33:12 +0100 <koz_> Squarism: No, not that I know of. You can do whitespace stripping, but not |-removal, at least not without writing it yourself.
2020-12-08 05:33:12 +0100 <jle`> no :'( but some heredoc quasiquoters have that i think
2020-12-08 05:34:01 +0100 <Squarism> ah, ok
2020-12-08 05:34:21 +0100 <dolio> > "like \ \this?"
2020-12-08 05:34:23 +0100 <lambdabot> "like this?"
2020-12-08 05:34:48 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-08 05:35:51 +0100conal_(~conal@64.71.133.70)
2020-12-08 05:36:50 +0100 <ezzieyguywuf> hrm, in ghci, `val = for [1..(10 :: Int)] (+ (1 :: Int))` gives me an error
2020-12-08 05:37:03 +0100 <ezzieyguywuf> val = for [1..(10 :: Int)] (+ (1 :: Int))
2020-12-08 05:37:05 +0100 <ezzieyguywuf> I don't understand though
2020-12-08 05:37:06 +0100 <Squarism> dolio, oh that might work then
2020-12-08 05:37:23 +0100 <koz_> > for [1 .. (10 :: Int)] (+ (1 :: Int))
2020-12-08 05:37:26 +0100 <lambdabot> error:
2020-12-08 05:37:26 +0100 <lambdabot> • Couldn't match type ‘Int’ with ‘f b’
2020-12-08 05:37:26 +0100 <lambdabot> Expected type: Int -> f b
2020-12-08 05:37:38 +0100 <koz_> That's because + 1 has the wrong type.
2020-12-08 05:37:41 +0100 <koz_> :t for
2020-12-08 05:37:42 +0100 <lambdabot> (Traversable t, Applicative f) => t a -> (a -> f b) -> f (t b)
2020-12-08 05:37:45 +0100texasmynsted(~texasmyns@212.102.45.106)
2020-12-08 05:37:49 +0100 <jle`> ezzieyguywuf: check the types, yeah, you probably want 'map' and not 'for'
2020-12-08 05:37:52 +0100 <koz_> See how the function has to be of type (a -> f b)?
2020-12-08 05:37:59 +0100 <ezzieyguywuf> so how come without the type annotations I get no error?
2020-12-08 05:38:01 +0100 <koz_> The whole point of 'for' is that you have some effect.
2020-12-08 05:38:09 +0100 <seasonal-staff> Lua has an interesting alternative to Haskell's \ \ string gaps. the \z escape eats whitespace up to the first non-whitespace
2020-12-08 05:38:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-08 05:38:14 +0100 <koz_> If you don't need any effects, just use map.
2020-12-08 05:38:15 +0100 <ezzieyguywuf> hm, I see
2020-12-08 05:38:18 +0100 <koz_> (or fmap really)
2020-12-08 05:38:26 +0100texasmynsted(~texasmyns@212.102.45.106) (Remote host closed the connection)
2020-12-08 05:39:50 +0100 <ezzieyguywuf> I have a `[Parsec e s a]` and I want to run this function until one returns a Right, so it sounds like `for` is the tool for the job yea? https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec.html#v:runParser
2020-12-08 05:40:06 +0100 <ezzieyguywuf> but also, the way the arguments are arranged that's going to be tough...
2020-12-08 05:40:21 +0100 <koz_> ezzieyguywuf: [Parsec e s a] isn't a 'function'.
2020-12-08 05:40:32 +0100 <koz_> Like, I assume you wanna try each in order until one of them works?
2020-12-08 05:40:45 +0100conal_(~conal@64.71.133.70) (Client Quit)
2020-12-08 05:40:55 +0100 <ezzieyguywuf> koz_: yea, [Parsec e s a] is akin to the [1..10] above, the functio I want to use is runParser
2020-12-08 05:41:12 +0100 <koz_> Yeah, that... wouldn't do what you think it does.
2020-12-08 05:41:17 +0100 <koz_> Imagine you have five parsers.
2020-12-08 05:41:23 +0100 <koz_> The first one eats half your input then fails.
2020-12-08 05:41:24 +0100 <koz_> What do then?
2020-12-08 05:41:26 +0100 <ezzieyguywuf> but I guess I'll have to write my own intermediate `runParser' :: String -> s -> Parsec e s a`
2020-12-08 05:41:34 +0100 <ezzieyguywuf> koz_: doh!
2020-12-08 05:41:35 +0100 <Squarism> dolio, hmm somehow that didnt work well. Does OverloadedStrings interfere with it?
2020-12-08 05:41:56 +0100 <ezzieyguywuf> ahh you know what, megaparsec has a thing for this
2020-12-08 05:41:58 +0100 <ezzieyguywuf> `choice`
2020-12-08 05:42:12 +0100 <koz_> Yeah, 'choice' works, but you have to be careful about the input-eating thing.
2020-12-08 05:42:16 +0100 <dolio> I doubt it.
2020-12-08 05:42:26 +0100 <dolio> Can you paste what you entered?
2020-12-08 05:42:39 +0100 <koz_> Namely, you wanna make sure your parsers are backtracking unless you actually _want_ the 'eat half your input' behaviour.
2020-12-08 05:42:43 +0100 <ezzieyguywuf> koz_: I think choice takes care of that, but I'll check.
2020-12-08 05:42:56 +0100 <jle`> choice for megaparsec isn't backtracking
2020-12-08 05:42:57 +0100 <koz_> ezzieyguywuf: 'choice' in Megaparsec doesn't automagically backtrack AFAIK.
2020-12-08 05:42:59 +0100 <ezzieyguywuf> this is also why I was asking about "where does `choice` come from" the other day...
2020-12-08 05:43:13 +0100 <iqubic> I usually do "choice $ map try [parsers]" to force backtracking.
2020-12-08 05:43:16 +0100 <ezzieyguywuf> oh snap. maybe I'll have to tack a `try` or w/e in front of each parser then
2020-12-08 05:43:24 +0100 <ezzieyguywuf> yea, what iqubic said
2020-12-08 05:43:29 +0100 <seasonal-staff> ideally you're refactored your grammar so that you don't need so many try though
2020-12-08 05:43:33 +0100 <koz_> Yeah, that works, but it's a _very_ brute force approach.
2020-12-08 05:43:44 +0100 <iqubic> I suppose it is.
2020-12-08 05:43:51 +0100 <koz_> It's better to consider how much backtracking you really need - it's often less than you think.
2020-12-08 05:43:51 +0100 <seasonal-staff> with parser combinators you're the parser compiler!
2020-12-08 05:43:52 +0100 <dsal> is choice just asum?
2020-12-08 05:43:58 +0100 <seasonal-staff> yeah
2020-12-08 05:43:58 +0100 <koz_> dsal: Yeah, I think so?
2020-12-08 05:44:01 +0100 <ezzieyguywuf> seasonal-staff: bleh, it's not like that, the parser is configurable at runtime via a configuration file so....
2020-12-08 05:44:35 +0100 <seasonal-staff> If you're exposing the parser combinators to your users, then your users are the parser compilers
2020-12-08 05:44:52 +0100 <koz_> seasonal-staff: In Soviet Russia, you compile parsers, I guess.
2020-12-08 05:45:24 +0100 <ezzieyguywuf> seasonal-staff: indeed
2020-12-08 05:47:37 +0100essem(essem@gateway/vpn/privateinternetaccess/essem)
2020-12-08 05:47:43 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
2020-12-08 05:52:39 +0100zaquest(~notzaques@5.128.210.178)
2020-12-08 05:53:07 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2020-12-08 05:55:06 +0100 <nshepperd2> i'm writing a type level parser combinator library
2020-12-08 05:55:47 +0100 <nshepperd2> it's an adventure
2020-12-08 05:55:54 +0100 <iqubic> That sounds both super useful, and super hard.
2020-12-08 05:56:12 +0100Tario(~Tario@201.192.165.173)
2020-12-08 05:56:23 +0100 <Axman6> the lack of yupe level uncons for symvols most make that a lot of fun
2020-12-08 05:56:27 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 05:56:51 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-08 05:56:54 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2020-12-08 05:57:47 +0100 <jle`> nshepperd2: oh, i wrote one at one point
2020-12-08 05:58:17 +0100 <jle`> nshepperd2: https://github.com/mstksg/typelits-printf/blob/master/src/GHC/TypeLits/Printf/Internal/Parser.hs
2020-12-08 05:59:10 +0100SanchayanMaity(~Sanchayan@122.167.92.138) (Remote host closed the connection)
2020-12-08 05:59:20 +0100 <iqubic> Is there really no better way to get isAlpha to work?
2020-12-08 05:59:58 +0100elliott__(~elliott@pool-108-45-178-3.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-12-08 06:00:13 +0100 <nshepperd2> oh, nice
2020-12-08 06:01:14 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a9cd:54a5:5132:6498:c2e9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 06:02:26 +0100SanchayanMaity(~Sanchayan@122.167.92.138)
2020-12-08 06:04:23 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-12-08 06:06:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 06:07:22 +0100M1CK4L13N5(~u0_a626@36.74.54.29)
2020-12-08 06:07:29 +0100 <M1CK4L13N5> helo
2020-12-08 06:07:39 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2020-12-08 06:07:54 +0100 <M1CK4L13N5> anybody room ?
2020-12-08 06:08:05 +0100 <Axman6> most of us are human :)
2020-12-08 06:08:29 +0100 <M1CK4L13N5> helo man
2020-12-08 06:08:46 +0100 <Axman6> Hello
2020-12-08 06:09:14 +0100 <M1CK4L13N5> where do you come from ?
2020-12-08 06:09:20 +0100 <Axman6> The internet
2020-12-08 06:09:26 +0100 <Axman6> Do you have a question aboutHaskell?
2020-12-08 06:09:29 +0100 <M1CK4L13N5> same as me h3h3
2020-12-08 06:09:30 +0100 <Axman6> about Haskell*
2020-12-08 06:09:37 +0100nowhereman(~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Ping timeout: 272 seconds)
2020-12-08 06:10:03 +0100 <M1CK4L13N5> what is this room ?
2020-12-08 06:10:14 +0100 <suzu_> this is for discussion about the Haskell programming language
2020-12-08 06:10:19 +0100 <Axman6> it's about the Haskell programming language. use /topic to find out more
2020-12-08 06:10:37 +0100 <M1CK4L13N5> ouh okay thanks
2020-12-08 06:11:36 +0100 <Axman6> jle`: is there a Symbol -> [SChar] in there?
2020-12-08 06:11:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-08 06:12:04 +0100 <Axman6> Csongor Kiss did some crazy stuff to do that, I'm sure you've seen it
2020-12-08 06:12:05 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2020-12-08 06:12:10 +0100M1CK4L13N5(~u0_a626@36.74.54.29) (Quit: leaving)
2020-12-08 06:13:07 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 06:13:33 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 06:14:39 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-08 06:15:19 +0100 <jle`> Axman6: yeah, i'm using their library :)
2020-12-08 06:16:54 +0100 <Axman6> So I wrote a thing, and I don't know what tyo do with it (possibly making it publicly available is a bad idea... but no one would trust the security of any system to randonm code found on GitHub right???) https://github.com/axman6/Curve25519
2020-12-08 06:17:25 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-12-08 06:17:56 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-12-08 06:18:28 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds)
2020-12-08 06:18:47 +0100 <iqubic> Do I have to import anything in order to get generic lenses to work for me?
2020-12-08 06:18:58 +0100MOSCOS(~MOSCOS@122.54.107.175) (Remote host closed the connection)
2020-12-08 06:19:23 +0100MOSCOS(~MOSCOS@122.54.107.175)
2020-12-08 06:20:25 +0100 <Axman6> are you getting errors?
2020-12-08 06:21:16 +0100SanchayanMaity(~Sanchayan@122.167.92.138) (Remote host closed the connection)
2020-12-08 06:21:44 +0100SanchayanMaity(~Sanchayan@122.167.92.138)
2020-12-08 06:22:02 +0100 <iqubic> I figured it out.
2020-12-08 06:22:53 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 06:23:17 +0100borne(~fritjof@200116b864e55d009ba1d43461655289.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-12-08 06:23:22 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a9cd:54a5:5132:6498:c2e9)
2020-12-08 06:26:22 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: Textual IRC Client: www.textualapp.com)
2020-12-08 06:27:21 +0100urek__(~urek@2804:7f1:e10a:7d51:8503:5833:8cd1:db9c) (Ping timeout: 272 seconds)
2020-12-08 06:27:24 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 260 seconds)
2020-12-08 06:31:06 +0100falafel_(~falafel@pool-108-31-243-192.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-12-08 06:31:37 +0100SanchayanMaity(~Sanchayan@122.167.92.138) (Quit: SanchayanMaity)
2020-12-08 06:32:28 +0100SanchayanMaity(~Sanchayan@122.167.92.138)
2020-12-08 06:33:40 +0100Saukk(~Saukk@2001:998:ec:944:a00f:6382:4f0:3e7e) (Remote host closed the connection)
2020-12-08 06:35:16 +0100borne(~fritjof@200116b864e55d009ba1d43461655289.dip.versatel-1u1.de)
2020-12-08 06:38:54 +0100dysfigured(~dysfigure@li490-89.members.linode.com) (Quit: I hate quit messages.)
2020-12-08 06:39:00 +0100kevin4venus(~root@47.240.29.162)
2020-12-08 06:39:15 +0100dysfigured(~dysfigure@li490-89.members.linode.com)
2020-12-08 06:39:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 06:41:55 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-12-08 06:43:11 +0100borne(~fritjof@200116b864e55d009ba1d43461655289.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2020-12-08 06:44:04 +0100yianni(~yianni@d24-57-15-190.home.cgocable.net)
2020-12-08 06:45:50 +0100yianni(~yianni@d24-57-15-190.home.cgocable.net) (Client Quit)
2020-12-08 06:46:22 +0100 <koz_> Look at Axman6, all about dem curves.
2020-12-08 06:46:51 +0100kevin4ve1us(~root@47.240.27.221)
2020-12-08 06:49:49 +0100kevin4venus(~root@47.240.29.162) (Ping timeout: 246 seconds)
2020-12-08 06:52:45 +0100 <suzu_> o boi
2020-12-08 06:53:39 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-08 06:53:54 +0100grandpa_nick(2d48ca23@45.72.202.35)
2020-12-08 06:54:03 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-12-08 06:54:34 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2020-12-08 06:55:06 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 06:58:52 +0100abhixec(~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
2020-12-08 06:59:21 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-12-08 07:00:16 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-08 07:05:05 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-vecwnwhdvzjuawlu) (Quit: Connection closed for inactivity)
2020-12-08 07:05:35 +0100kevin4ve1us(~root@47.240.27.221) (Remote host closed the connection)
2020-12-08 07:09:22 +0100Feuermagier_(~Feuermagi@213.178.26.41)
2020-12-08 07:10:29 +0100Feuermagier(~Feuermagi@213.178.26.41) (Read error: Connection reset by peer)
2020-12-08 07:13:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-08 07:16:03 +0100jaekwon(~jaekwon@185.163.110.125) (Remote host closed the connection)
2020-12-08 07:16:04 +0100grandpa_nick(2d48ca23@45.72.202.35) (Remote host closed the connection)
2020-12-08 07:17:06 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 07:19:24 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-12-08 07:19:49 +0100heiog(6fef9eb9@KD111239158185.au-net.ne.jp)
2020-12-08 07:20:27 +0100mounty(~mounty@2001:8000:2f59:0:a021:3f31:5fd8:b032) (Ping timeout: 260 seconds)
2020-12-08 07:21:52 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 256 seconds)
2020-12-08 07:24:28 +0100heiog(6fef9eb9@KD111239158185.au-net.ne.jp) (Remote host closed the connection)
2020-12-08 07:25:23 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-12-08 07:26:03 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-08 07:26:04 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-12-08 07:31:11 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 07:31:54 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-12-08 07:32:55 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-12-08 07:35:32 +0100olligobber(~olligobbe@unaffiliated/olligobber) (Ping timeout: 256 seconds)
2020-12-08 07:36:13 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 07:36:56 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 240 seconds)
2020-12-08 07:37:42 +0100acidjnk_new(~acidjnk@p200300d0c719ff80cd4aafbd6cd15b09.dip0.t-ipconnect.de)
2020-12-08 07:39:24 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-12-08 07:42:02 +0100ericsagn1(~ericsagne@2405:6580:0:5100:d04d:c9b4:e354:8485) (Ping timeout: 260 seconds)
2020-12-08 07:43:09 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se)
2020-12-08 07:43:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 07:44:45 +0100abhixec(~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-12-08 07:46:31 +0100sgibber2018(~arch-gibb@208.85.237.137)
2020-12-08 07:47:12 +0100sgibber2018(~arch-gibb@208.85.237.137) (Client Quit)
2020-12-08 07:48:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-08 07:48:16 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-12-08 07:48:31 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 07:50:03 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds)
2020-12-08 07:50:55 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-12-08 07:54:09 +0100ericsagn1(~ericsagne@2405:6580:0:5100:eb3c:90c9:36da:57e0)
2020-12-08 07:56:40 +0100phasespace(~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 246 seconds)
2020-12-08 07:57:05 +0100ryanneph(8ff43251@143.244.50.81)
2020-12-08 07:58:02 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds)
2020-12-08 08:00:18 +0100tss1(~tss@185.204.1.185)
2020-12-08 08:01:04 +0100bitmagie(~Thunderbi@200116b8066de90079858d2098b7d8aa.dip.versatel-1u1.de)
2020-12-08 08:04:05 +0100essem(essem@gateway/vpn/privateinternetaccess/essem) (Ping timeout: 240 seconds)
2020-12-08 08:09:08 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 256 seconds)
2020-12-08 08:10:27 +0100zebrag(~inkbottle@aaubervilliers-654-1-115-108.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-12-08 08:10:32 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-12-08 08:10:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-115-108.w86-198.abo.wanadoo.fr)
2020-12-08 08:11:20 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 08:11:22 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-08 08:15:54 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 260 seconds)
2020-12-08 08:17:11 +0100phasespace(~sar@80-89-47-117.inet.signal.no)
2020-12-08 08:18:23 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-12-08 08:20:41 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
2020-12-08 08:24:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 08:24:43 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-12-08 08:25:45 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-08 08:30:05 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Quit: Leaving)
2020-12-08 08:36:13 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453)
2020-12-08 08:37:46 +0100shf(~sheaf@2a01:cb19:80cc:7e00:ec62:9801:2e60:ec94)
2020-12-08 08:38:32 +0100 <incertia> does the order in which i runState and runExcept matter
2020-12-08 08:38:39 +0100 <incertia> in terms of result
2020-12-08 08:39:05 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 08:39:30 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 08:39:39 +0100 <incertia> i know they end up returning different things but does anything funky happen with the state
2020-12-08 08:42:47 +0100Tops2(~Tobias@dyndsl-095-033-020-246.ewe-ip-backbone.de)
2020-12-08 08:43:24 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Quit: Leaving)
2020-12-08 08:43:53 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-12-08 08:44:11 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 08:45:18 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-12-08 08:45:46 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
2020-12-08 08:47:04 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 246 seconds)
2020-12-08 08:48:01 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2020-12-08 08:48:54 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 08:49:02 +0100 <incertia> i *think* StateT s (ExceptT e m) a rolls back errors and that's a side effect of how bind and lift interact?
2020-12-08 08:50:35 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-08 08:50:37 +0100justan0theruser(~justanoth@unaffiliated/justanotheruser)
2020-12-08 08:50:44 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds)
2020-12-08 08:52:00 +0100 <opqdonut> @unmtl StateT s (ExceptT e m) a
2020-12-08 08:52:00 +0100 <lambdabot> s -> ExceptT e m (a, s)
2020-12-08 08:52:02 +0100 <Ferdirand> i think it's clearer if you expand the types of the transformers
2020-12-08 08:52:10 +0100 <Ferdirand> ah, voila
2020-12-08 08:52:15 +0100 <opqdonut> from the unmtl'd type you can clearly see that if there's an error there's no new state
2020-12-08 08:54:53 +0100 <opqdonut> hmm oh unmtl doesn't support ExceptT...
2020-12-08 08:54:53 +0100 <opqdonut> well it's basically `s -> Either e (m (a,s))`
2020-12-08 08:54:53 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-12-08 08:54:53 +0100 <incertia> @unmtl StateT s (ErrorT e m) a
2020-12-08 08:54:53 +0100 <lambdabot> s -> m (Either e (a, s))
2020-12-08 08:54:53 +0100 <opqdonut> right, that's better, and I got the place of the m wrong
2020-12-08 08:54:53 +0100loller_(uid358106@gateway/web/irccloud.com/x-wqkamkonpztckcgq) (Quit: Connection closed for inactivity)
2020-12-08 08:54:53 +0100sQVe(~sQVe@unaffiliated/sqve)
2020-12-08 08:54:53 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 08:54:53 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2020-12-08 08:54:54 +0100 <opqdonut> @unmtl ErrorT e (StateT s m) a
2020-12-08 08:54:54 +0100 <lambdabot> s -> m (Either e a, s)
2020-12-08 08:54:54 +0100 <incertia> makes sense
2020-12-08 08:54:54 +0100 <opqdonut> that's the monad you want if errors shouldn't roll back state
2020-12-08 08:54:54 +0100 <koz_> So yeah, it does matter a great deal.
2020-12-08 08:55:12 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 08:55:15 +0100meck(~meck@li1809-18.members.linode.com) (Remote host closed the connection)
2020-12-08 08:55:38 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 08:56:44 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 256 seconds)
2020-12-08 08:58:24 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-12-08 08:58:41 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 08:59:06 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-08 09:00:32 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453)
2020-12-08 09:00:52 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Remote host closed the connection)
2020-12-08 09:01:44 +0100jedws(~jedws@121.209.181.215) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 09:02:15 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds)
2020-12-08 09:02:18 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-08 09:02:34 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-08 09:03:41 +0100meck(~meck@li1809-18.members.linode.com)
2020-12-08 09:03:58 +0100Tops21(~Tobias@dyndsl-095-033-020-246.ewe-ip-backbone.de)
2020-12-08 09:04:40 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42)
2020-12-08 09:05:38 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 09:05:56 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-rzuvzgsqtyjylpyp) (Quit: Connection closed for inactivity)
2020-12-08 09:06:37 +0100Feuermagier_(~Feuermagi@213.178.26.41) (Quit: Leaving)
2020-12-08 09:06:37 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-12-08 09:06:54 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 09:07:16 +0100Tops2(~Tobias@dyndsl-095-033-020-246.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2020-12-08 09:07:20 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-12-08 09:07:39 +0100emmanuel_erc(~user@2604:2000:1382:ce03:8098:7b4a:87e8:5ce7) (Ping timeout: 246 seconds)
2020-12-08 09:09:53 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 260 seconds)
2020-12-08 09:13:33 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-12-08 09:14:13 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 09:15:18 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
2020-12-08 09:15:32 +0100jedws(~jedws@121.209.181.215)
2020-12-08 09:16:02 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453)
2020-12-08 09:17:35 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Client Quit)
2020-12-08 09:17:45 +0100catchme_(uid355354@gateway/web/irccloud.com/x-ifzvgcjuyamurihg)
2020-12-08 09:19:38 +0100LKoen(~LKoen@228.162.9.109.rev.sfr.net)
2020-12-08 09:21:05 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2020-12-08 09:22:28 +0100jianbo(~jianbo@2601:246:4000:b22:6c54:df8a:9bd9:dba6)
2020-12-08 09:23:14 +0100 <boxscape> hm It seems strange to me that an ifThenElse function wasn't added to Prelude when RebindableSyntax was introduced
2020-12-08 09:25:56 +0100catchme_catchme
2020-12-08 09:27:48 +0100ryanneph(8ff43251@143.244.50.81) (Remote host closed the connection)
2020-12-08 09:29:23 +0100 <dminuoso> Is something like boolean blindness addressable in Haskell at all, or is most of that just a hint at "Agda is better for guaranteesing correctness"?
2020-12-08 09:29:43 +0100christo(~chris@81.96.113.213)
2020-12-08 09:29:49 +0100 <dminuoso> Because it seems to be constructive proofs for everything, say equality between two things, seems rather difficult on the value level.
2020-12-08 09:30:03 +0100thc202(~thc202@unaffiliated/thc202)
2020-12-08 09:31:54 +0100shenyi(uid216035@gateway/web/irccloud.com/x-ojvoeipqhxhkiuhf) (Quit: Connection closed for inactivity)
2020-12-08 09:31:58 +0100 <int-e> well, use a different one
2020-12-08 09:34:50 +0100jianbo(~jianbo@2601:246:4000:b22:6c54:df8a:9bd9:dba6) (Ping timeout: 264 seconds)
2020-12-08 09:35:24 +0100 <dminuoso> Such as?
2020-12-08 09:36:46 +0100Axman6(~Axman6@pdpc/supporter/student/Axman6) (Remote host closed the connection)
2020-12-08 09:37:03 +0100Axman6(~Axman6@pdpc/supporter/student/Axman6)
2020-12-08 09:38:10 +0100 <int-e> sorry, that was meant for another channel
2020-12-08 09:38:46 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-12-08 09:38:56 +0100 <idnar> dminuoso: you can replace the boolean with a sum type
2020-12-08 09:39:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989) (Remote host closed the connection)
2020-12-08 09:40:00 +0100 <idnar> (that witnesses whatever the condition is)
2020-12-08 09:40:08 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989)
2020-12-08 09:43:45 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-12-08 09:45:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cc3:649d:beb7:1989) (Ping timeout: 264 seconds)
2020-12-08 09:46:39 +0100howdoi(uid224@gateway/web/irccloud.com/x-deizflgbbgyoqway) (Quit: Connection closed for inactivity)
2020-12-08 09:48:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-08 09:48:35 +0100 <dminuoso> idnar: But doesn't that bring you back to the original problem that you don't even know what the sum type witnesses because you dont know how it was constructed?
2020-12-08 09:48:44 +0100 <dminuoso> I mean that is precisely the problem behind Bool in the first place.
2020-12-08 09:49:35 +0100 <cheater> hi. building llvm-hs 9.0.1 fails on windows because you can't have LLVM-9.dll on windows (too many exports for the windows dll format) and during building llvm-hs 9.0.1, it calls llvm-config with --link-shared which tries to link things against LLVM-9.dll which does not exist. how can i prevent llvm-hs from doing --link-shared?
2020-12-08 09:49:52 +0100 <dminuoso> Let's take the case of equality between two nodes in a tree. How could you encode their equality constructively in a sum type?
2020-12-08 09:50:13 +0100 <dminuoso> It almost seems as if you need a different meta language to even talk about it (like how the value level supplies proof for type level programming)
2020-12-08 09:50:54 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:14a1:46f4:68f7:2133)
2020-12-08 09:51:13 +0100 <idnar> dminuoso: maybe `data Pair a = Same a | Different a a` ?
2020-12-08 09:51:25 +0100 <[exa]> cheater: this is not constructive but the easiest solution seems to omit windows from the pipeline, if you can
2020-12-08 09:51:34 +0100 <cheater> it is not
2020-12-08 09:51:43 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
2020-12-08 09:51:52 +0100 <dminuoso> idnar: For representational equality that works I guess.
2020-12-08 09:52:08 +0100 <dminuoso> Though, here again, `Different a a` is not proof they are different.
2020-12-08 09:52:20 +0100 <[exa]> cheater: otherwise try to build everything with -static and grep the llvm-hs code for any place where the --link-shared originates
2020-12-08 09:52:47 +0100 <dminuoso> But to be fair, I asked for proof of equality not proof of inequality.
2020-12-08 09:53:35 +0100 <cheater> hmm yeah
2020-12-08 09:54:15 +0100 <idnar> dminuoso: yeah, I guess a "100%" solution is tricky
2020-12-08 09:54:23 +0100 <[exa]> cheater: you might want to undo this default https://github.com/llvm-hs/llvm-hs/pull/39
2020-12-08 09:54:57 +0100 <cheater> linkFlag = case lookupFlagAssignment (mkFlagName "shared-llvm") flags of Nothing -> "--link-shared" Just shared -> if shared then "--link-shared" else "--link-static"
2020-12-08 09:55:10 +0100 <cheater> how would i set this flag? that's from Setup.hs
2020-12-08 09:55:32 +0100 <[exa]> cheater: please consider pastebin for larger pieces of code :]
2020-12-08 09:55:50 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-08 09:56:04 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-08 09:56:04 +0100drbean(~drbean@TC210-63-209-156.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-12-08 09:56:09 +0100 <[exa]> anyway you should be able to set the -f flags with cabal
2020-12-08 09:56:35 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-08 09:57:12 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-08 09:57:54 +0100 <boxscape> dminuoso it might be annoying with the current state of dependent types in Haskell but it's certainly *possible* to have `data Dec a = Yes a | No (a -> Void)` and then use `Dec (a :~: b)` in your types
2020-12-08 09:58:22 +0100 <cheater> yes, not sure how. cabal configure -fshared-llvm=False doesn't work, cabal errors out with "invalid flag assignment: shared-llvm=False"
2020-12-08 09:59:16 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
2020-12-08 09:59:27 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
2020-12-08 09:59:47 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2020-12-08 10:00:00 +0100 <[exa]> can the flags be negated this way?
2020-12-08 10:00:10 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2020-12-08 10:00:27 +0100 <cheater> i think the correct syntax is cabal <command> --constraint='llvm-hs -shared-llvm'
2020-12-08 10:00:36 +0100 <cheater> where - means disabling as opposed to +
2020-12-08 10:00:37 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 10:01:29 +0100 <[exa]> o here https://cabal.readthedocs.io/en/3.4/cabal-project.html#cfg-field-flags
2020-12-08 10:01:42 +0100 <dminuoso> boxscape: Sure, but again that's on the wrong level. Nothing prevents me from building `Yes (Refl 1 2)`
2020-12-08 10:01:50 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42) (Ping timeout: 264 seconds)
2020-12-08 10:01:51 +0100 <boxscape> dminuoso yes, the typechecker does
2020-12-08 10:01:56 +0100 <boxscape> or do you mean
2020-12-08 10:02:02 +0100 <boxscape> well no
2020-12-08 10:02:06 +0100 <boxscape> the typechecker does
2020-12-08 10:02:10 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 260 seconds)
2020-12-08 10:02:25 +0100 <dminuoso> % data Dec a = Yes a | No (a -> Void)
2020-12-08 10:02:25 +0100 <yahb> dminuoso:
2020-12-08 10:02:28 +0100 <[exa]> cheater: so perhaps -f-shared-llvm (or -fno-shared-llvm)
2020-12-08 10:02:39 +0100 <dminuoso> % :t Yes (Refl 'a' 'b')
2020-12-08 10:02:39 +0100 <yahb> dminuoso: ; <interactive>:1:6: error:; * Couldn't match expected type `Char -> Char -> a' with actual type `a0 :~: a0'; * The function `Refl' is applied to two arguments,; but its type `a0 :~: a0' has none; In the first argument of `Yes', namely `(Refl 'a' 'b')'; In the expression: Yes (Refl 'a' 'b')
2020-12-08 10:02:46 +0100 <dminuoso> Oh wait
2020-12-08 10:02:48 +0100 <boxscape> dminuoso it has to be (Refl :: 1 :~: 2)
2020-12-08 10:03:10 +0100 <cheater> [exa]: oh, i'll try that
2020-12-08 10:03:13 +0100 <dminuoso> boxscape: Ah yeah my brain was on a pause for a second.
2020-12-08 10:03:27 +0100 <dminuoso> boxscape: So to have a constructive proof, I need to lift the values to the type level.
2020-12-08 10:03:33 +0100 <cheater> thanks!
2020-12-08 10:03:34 +0100 <boxscape> right
2020-12-08 10:03:55 +0100 <[exa]> cheater: so in llvm-hs, you'd do `cabal install -f-shared-llvm`, in a reverse dependency you'd use the --constraint= syntax
2020-12-08 10:04:06 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com)
2020-12-08 10:04:15 +0100 <[exa]> so your first version was right it seems, cool
2020-12-08 10:05:06 +0100 <cheater> ok, well, llvm-hs's Setup.hs fails with fromJust: Nothing
2020-12-08 10:05:21 +0100 <cheater> i have no idea why, the code doesn't look like it should be getting a Nothing??
2020-12-08 10:05:34 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 260 seconds)
2020-12-08 10:05:34 +0100 <cheater> let getLibs = liftM (map (fromJust . stripPrefix "-l") . words) . llvmConfig
2020-12-08 10:06:32 +0100 <[exa]> can you get the value of llvmConfig?
2020-12-08 10:07:40 +0100toorevitimirp(~tooreviti@117.182.181.85)
2020-12-08 10:07:40 +0100toorevitimirp(~tooreviti@117.182.181.85) (Remote host closed the connection)
2020-12-08 10:07:43 +0100 <cheater> i think that's not it
2020-12-08 10:07:51 +0100 <cheater> i think they're looking for libs in the form of -lfoo -lbar
2020-12-08 10:08:03 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-08 10:08:04 +0100toorevitimirp(~tooreviti@117.182.181.85)
2020-12-08 10:08:05 +0100 <cheater> and then they encounter -f-shared-llvm
2020-12-08 10:08:32 +0100 <cheater> so the code is just plain wrong, because it expects every flag to start with -l
2020-12-08 10:08:40 +0100 <cheater> let me try to see what's inside llvmConfig though, you're right
2020-12-08 10:09:41 +0100bitmagie(~Thunderbi@200116b8066de90079858d2098b7d8aa.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-08 10:10:22 +0100 <cheater> wait, what was the way to make cabal load a package from my own dir on my disk, rather than from hackage? i forgot
2020-12-08 10:10:23 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 10:10:24 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2020-12-08 10:10:32 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-12-08 10:10:49 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 10:10:54 +0100 <cheater> ah, found it
2020-12-08 10:10:58 +0100Lord_of_Life(~Lord@46.217.216.160) (Changing host)
2020-12-08 10:10:58 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-12-08 10:11:16 +0100 <dminuoso> Is there a way to detect whether or not a pragma is disabled in TH?
2020-12-08 10:12:24 +0100 <dminuoso> A language pragma, I mean
2020-12-08 10:13:17 +0100 <Taneb> dminuoso: there's "isExtEnabled :: Extension -> Q Bool"
2020-12-08 10:13:38 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-08 10:14:12 +0100 <cheater> looks like it's just packages: ../llvm-hs-9.0.1 inside cabal.project.local, right?
2020-12-08 10:15:04 +0100 <[exa]> cheater: I'm usually just moving the package to a subdirectory (not sure if that's needed) and add just cabal install the subpath
2020-12-08 10:15:11 +0100 <[exa]> cabal.project helps too
2020-12-08 10:15:14 +0100 <dminuoso> Taneb: That's perfect, cheers! I kept searching for "pragma" and "language" to no avail, that helped.
2020-12-08 10:15:27 +0100 <cheater> [exa]: hmm, that wasn't how i usually did that. i'm kinda lost.
2020-12-08 10:15:51 +0100 <[exa]> cheater: not even sure if these 2 do the same thing or one is deprecated, hopefully some cabal guru will show up... :D )
2020-12-08 10:16:45 +0100 <[exa]> cheater: in one project's cabal.project I have: `packages: \n ./somepackage/*.cabal`
2020-12-08 10:16:53 +0100 <cheater> right
2020-12-08 10:17:11 +0100 <[exa]> also ./*.cabal in your case, for consistency
2020-12-08 10:17:48 +0100Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-08 10:17:57 +0100Maxdaman1usMaxdamantus
2020-12-08 10:20:20 +0100 <Taneb> dminuoso: I guess "pragma" would be incorrect because you can set them as GHC flags or cabal options too
2020-12-08 10:21:16 +0100 <cheater> yeah i think that's correct exa
2020-12-08 10:21:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-08 10:21:30 +0100argento(~argent0@168.227.97.29) (Quit: leaving)
2020-12-08 10:21:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-08 10:23:07 +0100 <boxscape> "LANGUAGE pragma" is the name of the {-# LANGUAGE a, b, c #-} construct that allows you to enable extensions a, b, c
2020-12-08 10:25:15 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-lfqkgsukxlcssdou) (Quit: Connection closed for inactivity)
2020-12-08 10:27:54 +0100 <cheater> anyone on linux here? what sort of output do you get from llvm-config --libs --link-shared ?
2020-12-08 10:28:18 +0100 <cheater> [exa] you're on linux, right? :)
2020-12-08 10:29:18 +0100 <[exa]> yeah
2020-12-08 10:29:35 +0100 <[exa]> anyway I get: -lLLVM-9
2020-12-08 10:30:08 +0100 <cheater> that's all?
2020-12-08 10:30:13 +0100 <[exa]> yeah. from --link--static there's a list of like ~150 libraries
2020-12-08 10:30:31 +0100 <cheater> what do the first few look like?
2020-12-08 10:31:17 +0100 <[exa]> https://pastebin.com/B7Ji2rUs
2020-12-08 10:31:37 +0100 <cheater> thanks
2020-12-08 10:33:10 +0100kuribas(~user@ptr-25vy0i99gxf0ju0nzkm.18120a2.ip6.access.telenet.be)
2020-12-08 10:35:18 +0100hans_(~hans@94-214-46-13.cable.dynamic.v4.ziggo.nl)
2020-12-08 10:37:39 +0100 <boxscape> hmm which would you prefer, `catMaybes . fmap join` or catMaybes . catMaybes`
2020-12-08 10:38:53 +0100 <Taneb> boxscape: slight preference for the first one
2020-12-08 10:39:00 +0100 <boxscape> okay
2020-12-08 10:39:15 +0100fendor(~fendor@178.115.129.186.wireless.dyn.drei.com)
2020-12-08 10:39:23 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-08 10:40:28 +0100 <merijn> Courtesy of Facebook just reminding me of stumbling on this quote years ago:
2020-12-08 10:40:31 +0100 <merijn> @quote farpotshket
2020-12-08 10:40:31 +0100 <lambdabot> andr00 says: Today's software engineering word is "farpotshket." This is a Yiddish word meaning, "broken, because someone tried to fix it."
2020-12-08 10:40:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641)
2020-12-08 10:44:52 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42)
2020-12-08 10:45:37 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641) (Ping timeout: 258 seconds)
2020-12-08 10:48:13 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-12-08 10:49:52 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42) (Ping timeout: 260 seconds)
2020-12-08 10:49:55 +0100 <tdammers> yiddish has a knack for having words for concepts that don't exist in other languages
2020-12-08 10:50:24 +0100 <boxscape> hm I can't find the etymology on farpotshket
2020-12-08 10:51:54 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-08 10:52:56 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 240 seconds)
2020-12-08 10:53:46 +0100 <boxscape> ah patchken is from Russian
2020-12-08 10:54:12 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-12-08 10:54:13 +0100 <merijn> tdammers: I didn't realise how much lasting legacy Yiddish and Bargoens had in Amsterdam until I went to university and ran into a bunch of people unfamiliar with words I considered "basic Dutch" :p
2020-12-08 10:54:32 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-12-08 10:55:27 +0100bitmagie(~Thunderbi@200116b8066de90079858d2098b7d8aa.dip.versatel-1u1.de)
2020-12-08 10:56:42 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-08 10:57:23 +0100berberman(~berberman@unaffiliated/berberman)
2020-12-08 10:58:11 +0100__monty__(~toonn@unaffiliated/toonn)
2020-12-08 11:01:17 +0100 <lortabac> I'm getting a weird error: No instance for (Functor ((,,) Int Text))
2020-12-08 11:01:31 +0100 <lortabac> does anybody know what might be happening?
2020-12-08 11:01:43 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-08 11:01:52 +0100 <opqdonut> you're trying to fmap over a triple?
2020-12-08 11:01:56 +0100 <lortabac> yes
2020-12-08 11:02:03 +0100 <opqdonut> well there is no such functor instance :)
2020-12-08 11:02:16 +0100 <opqdonut> only for tuples
2020-12-08 11:02:25 +0100 <opqdonut> I mean 2-tuples, pairs
2020-12-08 11:02:41 +0100 <opqdonut> > fmap succ ("foo",2)
2020-12-08 11:02:43 +0100 <lambdabot> ("foo",3)
2020-12-08 11:02:44 +0100 <boxscape> you could do Functor ((,) (Int, Text)) maybe
2020-12-08 11:02:53 +0100 <opqdonut> > fmap succ (4,"foo",2)
2020-12-08 11:02:55 +0100 <lambdabot> (4,"foo",3)
2020-12-08 11:02:59 +0100 <boxscape> hmm
2020-12-08 11:03:00 +0100 <lortabac> I see it in Haddock
2020-12-08 11:03:01 +0100 <opqdonut> oh wow that instance is on lambdabot
2020-12-08 11:03:02 +0100 <tdammers> merijn: de mazzel he
2020-12-08 11:03:38 +0100 <boxscape> yeah the instance does appear to be in Prelude
2020-12-08 11:03:39 +0100 <Taneb> lortabac: which version of GHC are you using?
2020-12-08 11:03:39 +0100 <opqdonut> the triple instance is only "Since: 4.14.0.0
2020-12-08 11:03:44 +0100 <opqdonut> so very new
2020-12-08 11:04:01 +0100 <opqdonut> 8.10
2020-12-08 11:04:05 +0100 <opqdonut> GHC 8.10 that is
2020-12-08 11:04:33 +0100 <lortabac> oh ok that explains the mystery
2020-12-08 11:04:38 +0100 <boxscape> I wonder how they decided to stop at (,,,)
2020-12-08 11:04:39 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-08 11:05:47 +0100aidecoe(~aidecoe@unaffiliated/aidecoe) (Remote host closed the connection)
2020-12-08 11:06:41 +0100 <maerwald> flipped a coin
2020-12-08 11:06:58 +0100 <opqdonut> or a d6?
2020-12-08 11:07:10 +0100 <maerwald> d20
2020-12-08 11:07:10 +0100 <lambdabot> maerwald: 3
2020-12-08 11:07:17 +0100 <maerwald> wat
2020-12-08 11:07:21 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-12-08 11:07:23 +0100 <boxscape> 4d20
2020-12-08 11:07:23 +0100 <lambdabot> boxscape: 60
2020-12-08 11:07:23 +0100 <opqdonut> ha
2020-12-08 11:07:53 +0100 <boxscape> strange to have a command that's not prefixed by > or @ or :
2020-12-08 11:08:02 +0100 <Uniaika> fmap succ ("foo", "bar", "barf", 2)
2020-12-08 11:08:08 +0100 <Uniaika> > fmap succ ("foo", "bar", "barf", 2)
2020-12-08 11:08:10 +0100 <lambdabot> ("foo","bar","barf",3)
2020-12-08 11:08:43 +0100 <Uniaika> < boxscape> I wonder how they decided to stop at (,,,) // Nobody went to the maintainers to ask for a larger instance :)
2020-12-08 11:08:52 +0100 <boxscape> I suppose so
2020-12-08 11:09:46 +0100 <maerwald> should run some TH code that infers the maximum instance based on the number of build jobs
2020-12-08 11:09:50 +0100john20(522e3b7a@82.46.59.122)
2020-12-08 11:10:26 +0100 <boxscape> or based on the number of mailing list requests that are asking for it
2020-12-08 11:11:16 +0100ubert(~Thunderbi@p200300ecdf1e5312e6b318fffe838f33.dip0.t-ipconnect.de)
2020-12-08 11:12:34 +0100borne(~fritjof@200116b86420b200bcbe2553f445a41b.dip.versatel-1u1.de)
2020-12-08 11:12:50 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 11:13:03 +0100 <merijn> tdammers: mazzel is pretty universal, is was thinking more like achenebbisj
2020-12-08 11:13:42 +0100guest128(~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
2020-12-08 11:15:17 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42)
2020-12-08 11:15:30 +0100 <ski> @dice 4d20-2
2020-12-08 11:15:30 +0100 <lambdabot> ski: 36 - 2 => 34
2020-12-08 11:16:58 +0100 <boxscape> 200000000000000000000d2000000000000000000000000
2020-12-08 11:16:58 +0100 <lambdabot> boxscape: 200000000011101321490973505089978167756587008
2020-12-08 11:17:00 +0100 <boxscape> not bad
2020-12-08 11:17:20 +0100 <boxscape> would have taken me quite a while to throw those myslef
2020-12-08 11:17:26 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 258 seconds)
2020-12-08 11:18:50 +0100catchme(uid355354@gateway/web/irccloud.com/x-ifzvgcjuyamurihg) (Quit: Connection closed for inactivity)
2020-12-08 11:19:13 +0100bitmagie(~Thunderbi@200116b8066de90079858d2098b7d8aa.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-08 11:23:37 +0100lxsameer(~lxsameer@unaffiliated/lxsameer) (Ping timeout: 264 seconds)
2020-12-08 11:25:16 +0100p3n(~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-08 11:26:59 +0100 <__monty__> merijn: I think we spell that achenebbig.
2020-12-08 11:28:33 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 258 seconds)
2020-12-08 11:31:57 +0100p3n(~p3n@217.198.124.246)
2020-12-08 11:35:01 +0100Franciman(~francesco@host-212-171-46-126.retail.telecomitalia.it)
2020-12-08 11:36:52 +0100 <merijn> __monty__: I had to google how to spell it, I only use it in speech :p
2020-12-08 11:37:08 +0100lxsameer(lxsameer@gateway/vpn/protonvpn/lxsameer)
2020-12-08 11:40:30 +0100rprije(~rprije@14-201-170-17.tpgi.com.au) (Ping timeout: 256 seconds)
2020-12-08 11:41:18 +0100 <__monty__> Just never heard it with an s.
2020-12-08 11:43:44 +0100p3n(~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-08 11:44:01 +0100fendor(~fendor@178.115.129.186.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-08 11:44:09 +0100p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
2020-12-08 11:45:05 +0100fendor(~fendor@178.115.129.186.wireless.dyn.drei.com)
2020-12-08 11:51:13 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 11:53:26 +0100ericsagn1(~ericsagne@2405:6580:0:5100:eb3c:90c9:36da:57e0) (Ping timeout: 264 seconds)
2020-12-08 11:54:00 +0100 <tdammers> how does one google phonetically?
2020-12-08 11:54:52 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-08 11:55:32 +0100 <boxscape> "Ok google, how do I spell ..."
2020-12-08 11:55:49 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 260 seconds)
2020-12-08 11:59:30 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-08 12:01:31 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2020-12-08 12:01:52 +0100Franciman(~francesco@host-212-171-46-126.retail.telecomitalia.it) (Ping timeout: 272 seconds)
2020-12-08 12:03:15 +0100 <tdammers> hmm...
2020-12-08 12:05:06 +0100ericsagn1(~ericsagne@2405:6580:0:5100:230f:7e22:ba44:597f)
2020-12-08 12:05:52 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
2020-12-08 12:08:32 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 12:15:56 +0100loller_(uid358106@gateway/web/irccloud.com/x-kppxruluvpavuchz)
2020-12-08 12:16:33 +0100nff_(~nff_@82.84.72.37)
2020-12-08 12:17:18 +0100stzsch(~stzsch@187.44.81.18)
2020-12-08 12:19:32 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42) (Ping timeout: 258 seconds)
2020-12-08 12:20:31 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net)
2020-12-08 12:20:37 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net) (Changing host)
2020-12-08 12:20:37 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-12-08 12:20:57 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-08 12:22:03 +0100john20(522e3b7a@82.46.59.122) (Remote host closed the connection)
2020-12-08 12:22:44 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 12:23:00 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 12:28:33 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 12:29:23 +0100MidAutumnHotaru3(~MidAutumn@154.91.197.93)
2020-12-08 12:31:02 +0100urek__(~urek@2804:7f1:e10a:7d51:8503:5833:8cd1:db9c)
2020-12-08 12:31:16 +0100MidAutumnHotaru(~MidAutumn@154.91.197.93) (Ping timeout: 240 seconds)
2020-12-08 12:31:16 +0100MidAutumnHotaru3MidAutumnHotaru
2020-12-08 12:32:29 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2020-12-08 12:32:30 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 12:32:41 +0100aletheia2(5dcb8e3f@p5dcb8e3f.dip0.t-ipconnect.de)
2020-12-08 12:33:08 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 12:33:29 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-12-08 12:33:39 +0100 <aletheia2> I've got a quck question, is it possible in haskell to pass a record as function parameter both in the destructured version Foo{x= y} etc.. and with a variable name at the same time?
2020-12-08 12:34:30 +0100 <tomsmeding> aletheia2: what do you mean exactly when you say "with a variable name"?
2020-12-08 12:34:54 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 12:35:20 +0100 <aletheia2> the full record, just like bar record = ...
2020-12-08 12:36:23 +0100 <tomsmeding> do you perhaps mean an "as-binding": myfunction r@Foo{x=y} = {- something with r and y -}
2020-12-08 12:36:40 +0100 <aletheia2> yes that's exactly what i was looking for, thanks
2020-12-08 12:36:44 +0100the-smug-one(~user@83-92-112-87-cable.dk.customer.tdc.net)
2020-12-08 12:36:52 +0100 <tomsmeding> that notation also works for other things, like tup@(x,y)
2020-12-08 12:39:02 +0100justan0theruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
2020-12-08 12:42:05 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-08 12:42:13 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641)
2020-12-08 12:45:34 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 12:47:08 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641) (Ping timeout: 260 seconds)
2020-12-08 12:47:17 +0100f-a(~f-a@151.44.27.153)
2020-12-08 12:50:01 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 264 seconds)
2020-12-08 12:55:42 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds)
2020-12-08 12:58:06 +0100 <dminuoso> aletheia2: Note, if you have lens you you get to write it as : ` let x = ...; y = x & someField %~ (+1); in ... f x ..`
2020-12-08 12:58:09 +0100 <dminuoso> (Or optics)
2020-12-08 12:58:51 +0100Wuzzy(~Wuzzy@p549c9bc8.dip0.t-ipconnect.de)
2020-12-08 12:58:58 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-08 12:59:58 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 13:00:58 +0100shf(~sheaf@2a01:cb19:80cc:7e00:ec62:9801:2e60:ec94) (Read error: Connection reset by peer)
2020-12-08 13:01:09 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-08 13:03:12 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-12-08 13:03:14 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-08 13:03:37 +0100columbarius(~columbari@i5E86B3C5.versanet.de) (Ping timeout: 246 seconds)
2020-12-08 13:05:12 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 13:05:59 +0100columbarius(~columbari@94.134.93.69)
2020-12-08 13:06:01 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 13:08:56 +0100dhil(~dhil@195.213.192.34)
2020-12-08 13:10:24 +0100ADG1089(uid455466@gateway/web/irccloud.com/x-nqoknmurevpbzhjb)
2020-12-08 13:11:38 +0100Stanley00(~stanley00@unaffiliated/stanley00) ()
2020-12-08 13:11:45 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 13:12:03 +0100aletheia2(5dcb8e3f@p5dcb8e3f.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-12-08 13:12:13 +0100tabemann(~tabemann@2600:1700:7990:24e0:4046:8a62:9416:f625) (Ping timeout: 260 seconds)
2020-12-08 13:12:21 +0100tabemann_(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2020-12-08 13:13:24 +0100hans_(~hans@94-214-46-13.cable.dynamic.v4.ziggo.nl) (Ping timeout: 260 seconds)
2020-12-08 13:13:25 +0100 <wz1000> are there any libraries that implement efficient maps keyed over small enums (<= Word8) ?
2020-12-08 13:13:46 +0100 <merijn> wz1000: Vector? :p
2020-12-08 13:14:25 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 13:14:43 +0100 <merijn> Or, perhaps Array if you wanna use Ix on your key type
2020-12-08 13:15:33 +0100 <wz1000> But then growing it would be inefficient
2020-12-08 13:15:59 +0100 <wz1000> I want to keep a lot of these maps, and want to keep growing/shrinking them
2020-12-08 13:16:16 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-12-08 13:16:27 +0100 <wz1000> Or are you suggesting I use Vector (Maybe a)?
2020-12-08 13:17:01 +0100 <wz1000> where the size is the size of the enum - but that still seems wasteful because many/most of these maps will barely be populated
2020-12-08 13:17:04 +0100 <__monty__> Does it need to be faster than IntMap?
2020-12-08 13:18:39 +0100 <wz1000> I'm using IntMap now, but it seems wasteful since I'm wasting 7 bytes per int
2020-12-08 13:18:55 +0100 <fendor> Interesting, limiting the ghci HEAP leads to tasty not terminating on an endless looping test
2020-12-08 13:20:06 +0100 <wz1000> what I'm looking for is essentially Word8Map
2020-12-08 13:20:38 +0100f-a(~f-a@151.44.27.153) ()
2020-12-08 13:21:21 +0100 <fendor> increasing the heap to 3GB or something like that works, though.
2020-12-08 13:23:13 +0100hans_(~hans@94-214-46-13.cable.dynamic.v4.ziggo.nl)
2020-12-08 13:23:21 +0100 <merijn> wz1000: Use backpack to generalise IntMap to any bounded Int! :D
2020-12-08 13:23:34 +0100 <__monty__> wz1000: Does it really matter if your indices are boxed?
2020-12-08 13:24:27 +0100 <merijn> wz1000: If your maps are sparse, just use "Vector (Key, Value)" and binary search any key you need
2020-12-08 13:24:47 +0100 <merijn> wz1000: And if they're sparse the copy upon insert isn't an issue either
2020-12-08 13:25:53 +0100 <wz1000> __monty__: IntMap doesn't have boxed indices though? (Or at least it shouldn't)
2020-12-08 13:26:12 +0100 <__monty__> Your word8 indices would be boxed though?
2020-12-08 13:26:14 +0100 <merijn> wz1000: eh...I think so
2020-12-08 13:26:20 +0100 <merijn> Also
2020-12-08 13:26:29 +0100 <merijn> Word8 is the exact same size as Int
2020-12-08 13:27:02 +0100 <__monty__> No taking advantage of any leftover space in the pointer, merijn?
2020-12-08 13:27:06 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 13:27:18 +0100 <wz1000> But you can combine the prefix and the mask into a Word16 though
2020-12-08 13:27:22 +0100 <wz1000> https://hackage.haskell.org/package/containers-0.6.2.1/docs/src/Data.IntMap.Internal.html#IntMap
2020-12-08 13:27:28 +0100 <merijn> https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Word.html#Word8
2020-12-08 13:28:03 +0100 <merijn> Word8 is just Word# which is the same size as Int#
2020-12-08 13:28:50 +0100 <merijn> wz1000: Ok, so realistically, how many keys are you expecting to have? Millions? Billions? Trillions?
2020-12-08 13:29:06 +0100 <merijn> Because for anything less than trillions this seems utterly irrelevant
2020-12-08 13:30:04 +0100 <merijn> Ok, maybe for billions to on desktop-y machines
2020-12-08 13:31:19 +0100 <wz1000> I mean, I'm trying to benchmark Haskell implementations of common lossless compression algorithms and compare them to "reference" C implementations, so I need all the help I can get
2020-12-08 13:31:46 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-08 13:31:53 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-08 13:32:04 +0100 <tomsmeding> what kind of map do the C implementations use in this case?
2020-12-08 13:32:27 +0100 <merijn> wz1000: Well, the unboxed tuple vector seems the best in terms of pure speed for lookup
2020-12-08 13:32:42 +0100christo(~chris@81.96.113.213)
2020-12-08 13:33:37 +0100 <merijn> Custom storable vector also does well if memory usage is a concern, since you can pack as tightly as you need
2020-12-08 13:33:38 +0100nowhereman(~pierre@91-175-29-131.subs.proxad.net)
2020-12-08 13:35:20 +0100sjha(2a6f01d7@42.111.1.215)
2020-12-08 13:35:43 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2020-12-08 13:36:06 +0100Entertainment(~entertain@104.246.132.210)
2020-12-08 13:36:10 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 246 seconds)
2020-12-08 13:36:14 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds)
2020-12-08 13:37:24 +0100 <sjha> hey
2020-12-08 13:37:26 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 13:38:30 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-12-08 13:39:11 +0100solonarv(~solonarv@astrasbourg-552-1-28-212.w90-13.abo.wanadoo.fr)
2020-12-08 13:40:15 +0100 <tomsmeding> sjha: hi :)
2020-12-08 13:41:51 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 13:41:52 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-08 13:42:28 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 13:43:12 +0100drbean(~drbean@TC210-63-209-142.static.apol.com.tw)
2020-12-08 13:45:41 +0100koz_(~koz@121.99.240.58) (Ping timeout: 260 seconds)
2020-12-08 13:46:03 +0100 <sjha> tomsmeding hi :) this is the first time I've joined Haskell irc or freenode for that matter . I hope to learn a lot from you all.
2020-12-08 13:47:01 +0100 <tomsmeding> I hope you do! message frequency varies; note there are some logs at https://ircbrowse.tomsmeding.com/browse/haskell
2020-12-08 13:47:33 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-12-08 13:48:10 +0100 <boxscape> oh huh had no idea I'm in the top 10 frequently messaging users this month
2020-12-08 13:48:17 +0100 <boxscape> s/10/10 most/
2020-12-08 13:48:20 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 256 seconds)
2020-12-08 13:48:28 +0100 <boxscape> tomsmeding do you have a search function for the logs in there?
2020-12-08 13:48:36 +0100 <tomsmeding> lol no I believe not
2020-12-08 13:48:48 +0100 <boxscape> hm okay
2020-12-08 13:48:58 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 256 seconds)
2020-12-08 13:49:02 +0100 <tomsmeding> I guess creating a page for that shouldn't be too hard
2020-12-08 13:49:07 +0100 <tomsmeding> also open source so hack away ;)
2020-12-08 13:49:16 +0100 <boxscape> I'll take a look
2020-12-08 13:49:31 +0100 <tomsmeding> (most/all of the code is not written by me though)
2020-12-08 13:49:44 +0100 <boxscape> right okay
2020-12-08 13:49:46 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-12-08 13:51:13 +0100koz(~koz@121.99.240.58)
2020-12-08 13:51:45 +0100sjhashekhar
2020-12-08 13:55:45 +0100 <siraben> Wjat
2020-12-08 13:55:57 +0100 <siraben> What's the recommended way to throw errors in the continuation monad?
2020-12-08 13:56:09 +0100 <siraben> Cont over Except doesn't work, but there's Except over Cont
2020-12-08 13:56:16 +0100ephemera_(~E@122.34.1.187) (Ping timeout: 256 seconds)
2020-12-08 13:57:08 +0100skiold_(~skiold@gateway/tor-sasl/skiold) (Remote host closed the connection)
2020-12-08 13:57:30 +0100skiold_(~skiold@gateway/tor-sasl/skiold)
2020-12-08 13:58:25 +0100 <merijn> The *recommended* way to throw errors in Cont is too buy some heavy booze and spent an evening drunk and crying trying to figure it out :D
2020-12-08 13:58:42 +0100 <siraben> heh
2020-12-08 13:58:53 +0100 <siraben> well, i'm currently using MonadFail inside Cont, hehe
2020-12-08 13:59:08 +0100 <siraben> Specifically MaybeT, but can't get ny messages out of it
2020-12-08 13:59:10 +0100 <siraben> any
2020-12-08 14:00:00 +0100iqubic`(~user@2601:602:9500:4870:9dce:a684:2556:7d9f)
2020-12-08 14:00:23 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-08 14:00:25 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 14:00:28 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2020-12-08 14:00:35 +0100 <ski> shekhar : feel free to ask questions
2020-12-08 14:01:04 +0100 <maerwald> ContT is where haskell is indistinguishable from Java.
2020-12-08 14:02:00 +0100jedws(~jedws@121.209.181.215) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 14:02:04 +0100tomsmedinggets out popcorn
2020-12-08 14:02:09 +0100 <ski> @unmtl ContT o (MaybeT m) a
2020-12-08 14:02:09 +0100 <lambdabot> (a -> m (Maybe o)) -> m (Maybe o)
2020-12-08 14:02:11 +0100 <ski> @unmtl MaybeT (ContT o m) a
2020-12-08 14:02:11 +0100 <lambdabot> (Maybe a -> m o) -> m o
2020-12-08 14:02:18 +0100 <siraben> I'm really close to converting the scheme interpreter to monad transformers; https://github.com/siraben/r5rs-denot/blob/e1e46ecd63ed4b5d8b287a00da6e1184bbc2534b/src/SchemeEval…
2020-12-08 14:02:30 +0100 <siraben> @unmtl ReaderT u (ContT k (MaybeT (State s))) a
2020-12-08 14:02:31 +0100 <lambdabot> u -> (a -> s -> (Maybe k, s)) -> s -> (Maybe k, s)
2020-12-08 14:02:47 +0100 <siraben> But I need `Either err k` instead of `Maybe k`
2020-12-08 14:03:11 +0100 <ski> @unmtl ReaderT u (ContT k (ErrorT err (State s))) a
2020-12-08 14:03:11 +0100 <lambdabot> u -> (a -> s -> (Either err k, s)) -> s -> (Either err k, s)
2020-12-08 14:03:16 +0100 <siraben> Also, any way to reduce the boilerplatey functions `reflect` and `reify`?
2020-12-08 14:03:42 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-08 14:04:14 +0100iqubic(~user@2601:602:9500:4870:81cb:3fd4:dbe9:8921) (Ping timeout: 264 seconds)
2020-12-08 14:04:26 +0100 <siraben> ski: No instance for (MonadError err (ContT k (ErrorT err (State s))))
2020-12-08 14:04:45 +0100 <siraben> then there's a message about using standalone deriving
2020-12-08 14:04:48 +0100 <ski> `unmtl' doesn't know `ExceptT', use that instead of `ErrorT'
2020-12-08 14:05:03 +0100 <siraben> Yeah it doesn't work with ExceptT either
2020-12-08 14:05:15 +0100fendor_(~fendor@77.119.128.243.wireless.dyn.drei.com)
2020-12-08 14:05:28 +0100 <siraben> • No instance for (MonadError err (ContT k (ExceptT err (State s))))
2020-12-08 14:05:30 +0100 <maerwald> Just use IO, TVars and exceptions
2020-12-08 14:05:43 +0100 <maerwald> all this stuff doesn't buy you anything real
2020-12-08 14:05:44 +0100 <siraben> Hm, but I lose the translation from the denotational semantics
2020-12-08 14:06:07 +0100 <maerwald> You don't have that with transformers anyway
2020-12-08 14:06:29 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds)
2020-12-08 14:06:33 +0100 <siraben> Right, but is it not possible to do a custom MonadFail instance for a custom newtype to get this to work?
2020-12-08 14:07:18 +0100 <siraben> Also I have `reflect act = Scheme (ReaderT (\u -> ContT (\k -> MaybeT (state (act u (runState . (runMaybeT . k)))))))` and `reify f r k s = f & unScheme & (`runReaderT` r) & (`runContT` (MaybeT . state . k)) & runMaybeT & (`runState` s)` to go back and forth between the repr without transformers and the repr with
2020-12-08 14:07:27 +0100 <siraben> such that `reify . reflect = reflect . reify = id`
2020-12-08 14:07:36 +0100 <tomsmeding> beautiful
2020-12-08 14:07:56 +0100LKoen(~LKoen@228.162.9.109.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-12-08 14:07:58 +0100 <siraben> tried looking around to see if it was possible to use Data.Coercible so I don't have to write this boilerplate, didn't find an answer
2020-12-08 14:08:00 +0100sQVe(~sQVe@unaffiliated/sqve) (Quit: Bye!)
2020-12-08 14:08:14 +0100fendor(~fendor@178.115.129.186.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2020-12-08 14:09:23 +0100Tario(~Tario@201.192.165.173)
2020-12-08 14:09:38 +0100 <maerwald> tomsmeding: I think java jobs pay better and cause less headach than this :D
2020-12-08 14:09:39 +0100 <ski> siraben : where did you get `A = Maybe [E] * S' from ?
2020-12-08 14:09:51 +0100 <siraben> ski: https://schemers.org/Documents/Standards/R5RS/r5rs.pdf
2020-12-08 14:09:53 +0100michalz(~user@185.246.204.56)
2020-12-08 14:09:59 +0100 <siraben> pdf page 41
2020-12-08 14:10:12 +0100 <siraben> it's not specified so I guessed
2020-12-08 14:10:18 +0100ski's looking at <https://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-10.html#%_sec_7.2>, right now
2020-12-08 14:10:19 +0100 <tomsmeding> maerwald: but they're also java jobs
2020-12-08 14:10:44 +0100 <siraben> oof heh that page has blurry images
2020-12-08 14:10:48 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-xfocnvqeblymqavl)
2020-12-08 14:10:57 +0100 <maerwald> tomsmeding: well, you feel productive by writing boilerplate like getters and setters. It's a language feature, so to speak
2020-12-08 14:11:00 +0100 <siraben> ski: the master branch of that repo contains the direct translation, I'm monadifying it
2020-12-08 14:11:23 +0100 <tomsmeding> and the feeling of accomplishment and joy after solving a problem can be worth 1. less pay and 2. being able to solve the problem in the first place
2020-12-08 14:11:41 +0100 <tomsmeding> "feeling productive" as a language feature is the most java thing I've heard in a while
2020-12-08 14:12:04 +0100 <maerwald> note tat "feeling productive" /= "being productive"
2020-12-08 14:12:08 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 14:12:17 +0100 <maerwald> feelings matter most
2020-12-08 14:12:25 +0100 <siraben> twoarg ζ [ε1, ε2] κ = ζ ε1 ε2 κ
2020-12-08 14:12:27 +0100 <siraben> oops wrong window
2020-12-08 14:12:33 +0100 <tomsmeding> such greek
2020-12-08 14:12:40 +0100 <ski> (it's abusing `Show', i see ..)
2020-12-08 14:13:01 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-12-08 14:13:11 +0100 <siraben> ski: yeah i started the repo when I was more noob, heh. I'll use a proper pretty printer later
2020-12-08 14:13:51 +0100ephemera_(~E@122.34.1.187)
2020-12-08 14:14:00 +0100 <siraben> argh if only i could find a nice concise reference implementation of a hygienic macro expander
2020-12-08 14:14:17 +0100fendor_fendor
2020-12-08 14:14:49 +0100 <maerwald> tomsmeding: it's also only important your boss feels that you are productive, not that you actually are. And if your PRs are huge and frequent, you it conveys that feeling. Java is a win-win for everyone
2020-12-08 14:15:14 +0100wwwww(~wwwww@unaffiliated/wwwww) (Ping timeout: 260 seconds)
2020-12-08 14:15:22 +0100 <ski> siraben : my hunch is that interpreting as `State' (and `MaybeT') inside `ContT' is a mistake, that you really want `StateT' outside `ContT'
2020-12-08 14:15:24 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42)
2020-12-08 14:15:43 +0100 <siraben> ski: doesn't that lead to a notion of "transactional state" wherein the state reverts?
2020-12-08 14:16:01 +0100 <ski> reverts, when ?
2020-12-08 14:16:10 +0100 <maerwald> tomsmeding: in haskell, ppl don't want to feel productive, but smart. So they do all sorts of stuff for that :p
2020-12-08 14:16:18 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-08 14:16:24 +0100 <tomsmeding> maerwald: true enough :p
2020-12-08 14:16:34 +0100 <siraben> ski: when callCC is invoked for instane
2020-12-08 14:16:34 +0100 <siraben> instance
2020-12-08 14:16:52 +0100 <ski> i don't think so
2020-12-08 14:17:01 +0100 <ski> i think you should not analyze `A' here
2020-12-08 14:17:02 +0100 <siraben> ski: see https://github.com/siraben/r5rs-denot/blob/fc1703473dc7af1b13c970edc553b62f6aa70656/src/SchemeEval… for my reasoning
2020-12-08 14:17:09 +0100wwwww(~wwwww@unaffiliated/wwwww)
2020-12-08 14:17:14 +0100 <ski> yes, i'm looking at that right now
2020-12-08 14:18:30 +0100 <siraben> I guess any monad transformer stack works as long as I can reflect and reify back and forth
2020-12-08 14:18:33 +0100huskyhaskell(~david@h-191-51.A785.priv.bahnhof.se)
2020-12-08 14:18:33 +0100 <siraben> at least helps development
2020-12-08 14:18:43 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-08 14:19:07 +0100 <ski> @unmtl ReaderT U (StateT S (ContT A IO)) [E]
2020-12-08 14:19:07 +0100 <lambdabot> U -> S -> ([E] -> S -> IO A) -> IO A
2020-12-08 14:19:45 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-08 14:19:52 +0100gxt_(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2020-12-08 14:20:25 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-12-08 14:20:27 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42) (Ping timeout: 260 seconds)
2020-12-08 14:20:36 +0100gxt_(~gxt@gateway/tor-sasl/gxt)
2020-12-08 14:20:36 +0100 <siraben> gasp io
2020-12-08 14:20:42 +0100 <siraben> makes sense
2020-12-08 14:20:45 +0100texasmynsted(~texasmyns@212.102.45.115)
2020-12-08 14:20:54 +0100huskyhaskell(~david@h-191-51.A785.priv.bahnhof.se) (Client Quit)
2020-12-08 14:20:56 +0100 <siraben> Then throw errors in IO?
2020-12-08 14:21:05 +0100 <ski> (assuming you want stuff like `read',`display',&c.)
2020-12-08 14:21:11 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-12-08 14:21:27 +0100 <siraben> Yeah definitely I needed IO somewhere but didn't know whether to put it up top or at the bottom
2020-12-08 14:21:39 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-12-08 14:22:14 +0100 <boxscape> hm is it normal that stack is stuck a long time at "Downloading index" when first run?
2020-12-08 14:22:40 +0100 <siraben> ski: why state over exception?
2020-12-08 14:22:48 +0100 <maerwald> boxscape: a bit
2020-12-08 14:23:03 +0100 <siraben> looks different than from the spec's semantics
2020-12-08 14:23:06 +0100 <boxscape> I think it's been 30 minutes or so which seems a bit long
2020-12-08 14:23:18 +0100qwfplyuh(2e050550@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Remote host closed the connection)
2020-12-08 14:23:29 +0100 <maerwald> boxscape: is it downloading just the index or git repos?
2020-12-08 14:23:36 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-08 14:23:43 +0100 <merijn> maerwald: tbh, in hindsight I'm usually the most productive when I feel unproductive
2020-12-08 14:24:05 +0100 <maerwald> I think it's anger
2020-12-08 14:24:10 +0100 <siraben> :t foo m u k s = m & unM & (`runReaderT` u) & (`runStateT` s) & (`runContT` k)
2020-12-08 14:24:11 +0100 <boxscape> um, I'm running "stack build" inside a git repo, but the last message I got is "Downloading index"
2020-12-08 14:24:11 +0100 <lambdabot> error: parse error on input ‘=’
2020-12-08 14:24:25 +0100 <siraben> :t (\m u k s -> m & unM & (`runReaderT` u) & (`runStateT` s) & (`runContT` k))
2020-12-08 14:24:26 +0100 <lambdabot> error:
2020-12-08 14:24:26 +0100 <lambdabot> • Variable not in scope:
2020-12-08 14:24:26 +0100 <lambdabot> unM :: a -> ReaderT r (StateT s (ContT r1 m)) a1
2020-12-08 14:24:29 +0100 <ski> @type let foo m u k s = m & unM & (`runReaderT` u) & (`runStateT` s) & (`runContT` k) in foo
2020-12-08 14:24:30 +0100 <lambdabot> error:
2020-12-08 14:24:30 +0100 <lambdabot> • Variable not in scope:
2020-12-08 14:24:30 +0100 <lambdabot> unM :: a2 -> ReaderT r2 (StateT s1 (ContT r3 m1)) a3
2020-12-08 14:24:48 +0100 <merijn> maerwald: Spend 3 days dicking around with a complex problem for spawning processes and only get anything resembling working on day 5, but in the next 3 years I've been able to use it without issue 10 different times not having to worry about getting it all right again :p
2020-12-08 14:24:55 +0100 <siraben> @type let foo m u k s = m & (`runReaderT` u) & (`runStateT` s) & (`runContT` k) in foo
2020-12-08 14:24:57 +0100 <lambdabot> forall k r1 s (r2 :: k) (m :: k -> *) a. ReaderT r1 (StateT s (ContT r2 m)) a -> r1 -> ((a, s) -> m r2) -> s -> m r2
2020-12-08 14:25:00 +0100 <siraben> there we go
2020-12-08 14:25:01 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca)
2020-12-08 14:25:07 +0100 <merijn> maerwald: But it's hard to account for those future 3 years when not producing anything for a week :p
2020-12-08 14:25:15 +0100 <siraben> well m ~ IO here
2020-12-08 14:25:21 +0100texasmynsted(~texasmyns@212.102.45.115) (Ping timeout: 260 seconds)
2020-12-08 14:25:36 +0100hans_(~hans@94-214-46-13.cable.dynamic.v4.ziggo.nl) (Ping timeout: 240 seconds)
2020-12-08 14:25:41 +0100danvet_(~danvet@212-51-149-96.fiber7.init7.net)
2020-12-08 14:26:06 +0100 <maerwald> merijn: reminds me of a colleague who fixed our entire platform over the weekend, because he was bored or excited or both about debugging memory issues.
2020-12-08 14:26:09 +0100borne(~fritjof@200116b86420b200bcbe2553f445a41b.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2020-12-08 14:27:06 +0100 <maerwald> without a jira ticket, without design phase, without sprint estimation :p
2020-12-08 14:27:33 +0100lassulus(~lassulus@NixOS/user/lassulus) (Quit: WeeChat 2.9)
2020-12-08 14:27:49 +0100 <tomsmeding> how did he introduce that on monday
2020-12-08 14:27:58 +0100 <tomsmeding> "people I fixed your shit, please go to work as usual"
2020-12-08 14:28:03 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-08 14:28:12 +0100 <merijn> tomsmeding: That's how I would introduce it :p
2020-12-08 14:28:30 +0100 <maerwald> he made bold claims and we initially thought he's just a bit overreacting, but he wasn't
2020-12-08 14:29:32 +0100 <maerwald> (we also spent lots of money on a prior consultant who tried to fix that problem with complicated solutions)
2020-12-08 14:29:41 +0100 <maerwald> so much for productivity
2020-12-08 14:30:02 +0100brisbin(~patrick@pool-173-49-158-4.phlapa.fios.verizon.net)
2020-12-08 14:30:33 +0100 <maerwald> but that's what they do: the don't fix problems, they sell solutions :p
2020-12-08 14:31:55 +0100LKoen(~LKoen@228.162.9.109.rev.sfr.net)
2020-12-08 14:31:56 +0100 <nshepperd2> the true purpose of jira tickets, design phases and sprints is to not use them and thereby become productive
2020-12-08 14:31:59 +0100danvet_(~danvet@212-51-149-96.fiber7.init7.net) (Quit: Leaving)
2020-12-08 14:32:01 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2020-12-08 14:32:55 +0100 <maerwald> there's the other extreme, when ppl create huge PRs that overhaul the entire codebase with lots of opinionated decisions, rendering the team unproductive for weeks, due to bikeshedding etc
2020-12-08 14:33:02 +0100 <nshepperd2> like doing ninja training with weights on or something
2020-12-08 14:33:54 +0100 <maerwald> when devops rewrites your entire CI in nix over Christmas, without telling anyone, for example
2020-12-08 14:34:05 +0100 <maerwald> (yes, that happened)
2020-12-08 14:34:42 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-12-08 14:34:51 +0100 <maerwald> since then I have anxiety during Christmas
2020-12-08 14:36:16 +0100L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 240 seconds)
2020-12-08 14:37:52 +0100 <siraben> nixify all the things
2020-12-08 14:38:02 +0100 <merijn> Please don't >.>
2020-12-08 14:38:11 +0100 <siraben> hehe
2020-12-08 14:39:08 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a9cd:54a5:5132:6498:c2e9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 14:39:26 +0100adamse(sid72084@gateway/web/irccloud.com/x-mwbgblgcseyitcgt) (Read error: Connection reset by peer)
2020-12-08 14:39:43 +0100adamse(sid72084@gateway/web/irccloud.com/x-ntgmpqkvdscewbqi)
2020-12-08 14:40:04 +0100ski. o O ( "-2000 Lines of Code" by Andy Hertzfeld at <https://www.folklore.org/StoryView.py?story=Negative_2000_Lines_Of_Code.txt> )
2020-12-08 14:40:32 +0100gproto23(~gproto23@unaffiliated/gproto23) (Quit: Leaving)
2020-12-08 14:40:36 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 14:40:58 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-12-08 14:41:53 +0100tss1(~tss@185.204.1.185) (Remote host closed the connection)
2020-12-08 14:42:27 +0100 <ski> siraben : i think the `wrong' stuff isn't exactly exceptions, anyway (it's not caught)
2020-12-08 14:43:02 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-08 14:43:32 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641)
2020-12-08 14:44:43 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 14:45:46 +0100shekhar(2a6f01d7@42.111.1.215) (Remote host closed the connection)
2020-12-08 14:46:18 +0100texasmynsted(~texasmyns@212.102.45.115)
2020-12-08 14:46:19 +0100 <int-e> Yay, Dijkstra. '[...] we should always refer to "the number of lines of code spent".'
2020-12-08 14:47:25 +0100drbean(~drbean@TC210-63-209-142.static.apol.com.tw) (Ping timeout: 240 seconds)
2020-12-08 14:47:25 +0100gentauro(~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer)
2020-12-08 14:48:01 +0100gentauro(~gentauro@unaffiliated/gentauro)
2020-12-08 14:48:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641) (Ping timeout: 264 seconds)
2020-12-08 14:49:04 +0100 <int-e> That one is false as well, though. LoC is just a terrible metric for measuring progress.
2020-12-08 14:49:24 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-08 14:50:54 +0100texasmynsted(~texasmyns@212.102.45.115) (Ping timeout: 256 seconds)
2020-12-08 14:54:21 +0100 <maerwald> What does LOC even mean. Does it include the dependencies? :)
2020-12-08 14:54:34 +0100 <maerwald> Because then the metric is suddenly very different.
2020-12-08 14:54:37 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-12-08 14:54:52 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-08 14:55:22 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-08 14:56:03 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a9cd:54a5:5132:6498:c2e9)
2020-12-08 14:58:39 +0100 <zincy__> I am beginning to think that when someone says code is hard to read it means *they* find it hard to read.
2020-12-08 14:58:56 +0100 <merijn> zincy__: Well, duh
2020-12-08 14:59:02 +0100 <zincy__> :D
2020-12-08 14:59:15 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-12-08 14:59:34 +0100 <zincy__> But their opinion comes from their favourite language X even when talking about Y
2020-12-08 14:59:39 +0100 <merijn> zincy__: "Haskell is hard to read" - every single programmer who never actually learned Haskell's syntax
2020-12-08 15:00:15 +0100 <merijn> zincy__: When people say "X is hard to read" in a language they don't use what they *mean* is "This is different, therefore I hate it"
2020-12-08 15:00:22 +0100 <zincy__> haha
2020-12-08 15:00:26 +0100 <zincy__> ^ this
2020-12-08 15:00:42 +0100 <merijn> Although, to be fair, I see some pretty atrocious styles in Haskell libraries
2020-12-08 15:01:13 +0100 <zincy__> Haskell doesn't prevent you from writing bad code it just smacks you on the hand
2020-12-08 15:01:38 +0100 <merijn> My personal style is increasingly moving towards "type signatures on *every* binding, judiciously name things in where blocks, grouping via empty lines == good"
2020-12-08 15:01:51 +0100 <zincy__> Nice
2020-12-08 15:02:00 +0100 <merijn> Particularly a lot of haskell in the wild seems weirdly scared of empty lines
2020-12-08 15:02:27 +0100geekounet(~geekounet@185.204.1.185)
2020-12-08 15:02:45 +0100 <zincy__> Like paragraphs in an essay
2020-12-08 15:02:55 +0100 <zincy__> Or rests in music
2020-12-08 15:03:20 +0100 <merijn> zincy__: I used to not write type signatures in my where blocks like most people, but then I had to work on code like this: https://github.com/yesodweb/persistent/blob/master/persistent-sqlite/Database/Persist/Sqlite.hs#L5…
2020-12-08 15:03:30 +0100 <merijn> And you're like "wtf is any of this?!"
2020-12-08 15:03:38 +0100 <zincy__> Yeah Beam did that for me
2020-12-08 15:04:17 +0100 <dminuoso> merijn: I'd say it's... well. Run it it and run sqlite in trace mode?
2020-12-08 15:04:20 +0100 <dminuoso> :p
2020-12-08 15:04:40 +0100 <siraben> merijn: oh god
2020-12-08 15:04:41 +0100 <merijn> zincy__: beam makes me go "wtf is any of this?!" even with the types
2020-12-08 15:04:56 +0100 <zincy__> merijn: I have no idea how that works. It is crazy.
2020-12-08 15:05:06 +0100 <zincy__> postgres-simple for the win
2020-12-08 15:05:08 +0100 <siraben> what's beam?
2020-12-08 15:05:15 +0100 <siraben> the erlang platform?
2020-12-08 15:05:17 +0100 <dminuoso> beam is when you dont want readable sql
2020-12-08 15:05:37 +0100 <int-e> merijn: not using empty lines to separate entities is a waste of the visual cortex
2020-12-08 15:05:39 +0100 <dminuoso> It's trading readability and maintainability for type safety..
2020-12-08 15:05:50 +0100 <ephemient> you need {-# LANGUAGE ScopedTypeVariables #-} in order to put signatures inside some where blocks
2020-12-08 15:05:56 +0100 <ephemient> (but it's a good extension to have anyway)
2020-12-08 15:05:57 +0100 <merijn> int-e: Word
2020-12-08 15:06:02 +0100 <zincy__> All the naive queries seem to be really slow
2020-12-08 15:06:20 +0100 <dminuoso> ephemient: You only need ScopedTypeVariables to access type variables introduced in an outer binding, but not for type signatures in a nested binding.
2020-12-08 15:06:21 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 15:06:23 +0100 <merijn> My personal style is more like this: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/StepAggregate.hs#L82-L121
2020-12-08 15:06:33 +0100 <dminuoso> (And even then you *also* must introduce the type variable via an explicit forall)
2020-12-08 15:06:45 +0100 <merijn> Heavy where nesting == good, type annotations on all of them == better
2020-12-08 15:07:01 +0100 <dminuoso> Indeed.
2020-12-08 15:07:17 +0100 <dminuoso> If it has a name, it has to have a type annotation.
2020-12-08 15:07:20 +0100 <dminuoso> That's my rule
2020-12-08 15:07:41 +0100 <dminuoso> Well okay, it doesnt work for function argument binders.. mmm. I need to rephrase that rule
2020-12-08 15:07:59 +0100 <merijn> dminuoso: There's still the occasional exception, but they're becoming rarer and rare
2020-12-08 15:08:00 +0100 <zincy__> I wish my Clojure colleagues adopted that motto "If it has a name, it has to have a type annotation."
2020-12-08 15:08:10 +0100 <merijn> dminuoso: Those have a type annotation in the function signature :p
2020-12-08 15:08:17 +0100 <dminuoso> merijn: not necessarily
2020-12-08 15:08:21 +0100nff_(~nff_@82.84.72.37) (Quit: Leaving)
2020-12-08 15:08:22 +0100 <siraben> merijn: what's quite readable
2020-12-08 15:08:31 +0100 <dminuoso> merijn: if you call something that takes a lambda, it might not be
2020-12-08 15:08:42 +0100 <merijn> dminuoso: Ah, true
2020-12-08 15:08:56 +0100 <merijn> "but we have type inference..." sod that
2020-12-08 15:09:18 +0100 <merijn> 5 months from now I'll have to redo the inference in my head to understand it, just write it out
2020-12-08 15:09:21 +0100 <dminuoso> Indeed, it took 3 years for me to realize that type inference really isn't that valuable..
2020-12-08 15:09:36 +0100 <dminuoso> I mean, its useful to be able to ask GHC what it thinks a binding has...
2020-12-08 15:09:42 +0100 <int-e> adding type signatures results in better type errors
2020-12-08 15:09:45 +0100ephemera_(~E@122.34.1.187) (Ping timeout: 240 seconds)
2020-12-08 15:09:56 +0100 <merijn> siraben: I've been really happy with my ability to dive into code I haven't touched in more than a year and easily see what's going on and alter it
2020-12-08 15:09:59 +0100ski. o O ( type error slicing )
2020-12-08 15:10:01 +0100 <dminuoso> int-e: type error slices would go a long way helping with that tho
2020-12-08 15:10:02 +0100 <int-e> that said, I still don't always add type signatures inside `where` binders
2020-12-08 15:10:06 +0100 <dminuoso> ski: Oh you were first!
2020-12-08 15:10:15 +0100 <zincy__> Slicing?
2020-12-08 15:10:18 +0100 <int-e> what are type error slices, hmm, will google
2020-12-08 15:10:26 +0100nff(~nff_@82.84.72.37)
2020-12-08 15:10:28 +0100Tops22(~Tobias@dyndsl-095-033-020-246.ewe-ip-backbone.de)
2020-12-08 15:10:48 +0100 <int-e> 'A Slicing-Based Approach for Locating Type Errors'?
2020-12-08 15:10:55 +0100 <ski> <https://www.macs.hw.ac.uk/ultra/skalpel/index.html>
2020-12-08 15:11:13 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 260 seconds)
2020-12-08 15:11:43 +0100 <int-e> Which is a 1997 paper, fun.
2020-12-08 15:11:45 +0100 <siraben> whoa is there one for haskell and a mode in emacs for that?
2020-12-08 15:11:51 +0100 <siraben> well LSP underlines the errors
2020-12-08 15:11:55 +0100 <siraben> haskell-lsp
2020-12-08 15:12:02 +0100urek__(~urek@2804:7f1:e10a:7d51:8503:5833:8cd1:db9c) (Read error: Connection reset by peer)
2020-12-08 15:12:23 +0100nff(~nff_@82.84.72.37) (Client Quit)
2020-12-08 15:12:29 +0100urek__(~urek@2804:7f1:e10a:7d51:8503:5833:8cd1:db9c)
2020-12-08 15:12:39 +0100 <dminuoso> siraben: Not that I know of.
2020-12-08 15:12:48 +0100 <dminuoso> Type error slicing would need support in GHC
2020-12-08 15:13:25 +0100Tops21(~Tobias@dyndsl-095-033-020-246.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2020-12-08 15:14:14 +0100 <dminuoso> It would have to identify all locations that contribute to the error, GHC as a very naive and simplistic heuristic of showing 'related bindings' instead that more often than not are unrelated to your problem.
2020-12-08 15:14:25 +0100 <int-e> "[...] has been implemented for a signicant subset of Pascal."
2020-12-08 15:15:25 +0100 <int-e> So maybe not that relevant to Hindley-Milner type inference :)
2020-12-08 15:16:48 +0100 <siraben> hm, -fdefer-type-errors, wonder if that will help me with AoC, hehe
2020-12-08 15:17:12 +0100 <merijn> siraben: You probably want its superior brother -fdefer-typed-holes and judicious use of typed holes
2020-12-08 15:17:14 +0100 <xerox_> can you defer them to after the 25th
2020-12-08 15:17:36 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 240 seconds)
2020-12-08 15:18:02 +0100 <siraben> merijn: how's that compare to -Wno-partial-type-signatures ?
2020-12-08 15:18:07 +0100 <siraben> oops I mean PartialTypeSignatures
2020-12-08 15:18:14 +0100 <merijn> siraben: Not at all?
2020-12-08 15:18:39 +0100 <merijn> > map _ ['a'..'z'] :: [Bool]
2020-12-08 15:18:44 +0100 <lambdabot> error:
2020-12-08 15:18:44 +0100 <lambdabot> • Found hole: _ :: Char -> Bool
2020-12-08 15:18:44 +0100 <lambdabot> • In the first argument of ‘map’, namely ‘_’
2020-12-08 15:19:28 +0100 <merijn> Typed holes tell you the type of value that needs to fill the hole. -fdefer-typed-holes turns that error into a warning (which throws a runtime exception when you evaluate it)
2020-12-08 15:19:40 +0100 <siraben> ah, i see
2020-12-08 15:20:38 +0100 <merijn> So with "-fdefer-typed-holes" "map _ ['a'..'z'] :: [Bool]" is the same as "map undefined ['a'..'z'] :: [Bool]" except infinitely better because you get a more useful exception when it crashes and when you remove -fdefer-typed-holes they become errors, so you can't forget and leave one like you can with undefined :p
2020-12-08 15:20:54 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-08 15:21:17 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 15:21:22 +0100 <int-e> dminuoso: I'm not convinced that slicing is the answer... the type signatures would still dramatically narrow down the field of locations to check for errors.
2020-12-08 15:21:42 +0100 <siraben> Sounds useful especially when exploring a problem
2020-12-08 15:22:13 +0100 <boxscape> Is there a convenient way to do something like `[1..5] & ix 3 <%~ succ` where the contents of the collection do not form a Monoid and instead it returns `Just` the new value if it's inbounds and Nothing if it's out of bounds?
2020-12-08 15:22:15 +0100u0_a298(~user@47.206.148.226)
2020-12-08 15:22:29 +0100 <int-e> dminuoso: Without type signatures, slicing just moves the problem from "the type error is in reported in totally corrct code" to "I have 100s of locations to check, one of which is incorrect"
2020-12-08 15:22:33 +0100 <siraben> currently I just comment out blocks of code with M-S-c before reloading, heh
2020-12-08 15:23:00 +0100 <merijn> siraben: This is very useful for stubbing functions you know you need but can't/don't wanna implement yet
2020-12-08 15:23:06 +0100 <int-e> dminuoso: And the solution remains the same: add type signatures to narrow things down to the real error.
2020-12-08 15:23:15 +0100 <merijn> siraben: "mkFoo :: String -> Foo; mkFoo = _"
2020-12-08 15:23:28 +0100 <merijn> Write the rest of your code using mkFoo, figure out how to implement it later
2020-12-08 15:23:44 +0100 <int-e> dminuoso: That said, slicing looks like a more honest approach to this problem :)
2020-12-08 15:24:55 +0100 <dminuoso> int-e: Sure, consider type signatures as "narrowing the pond" and type error slices as "showing you the pond"
2020-12-08 15:25:06 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-12-08 15:25:20 +0100 <int-e> Right.
2020-12-08 15:25:28 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 256 seconds)
2020-12-08 15:25:31 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-08 15:26:14 +0100 <merijn> siraben: The best thing with -fdefer-typed-holes is that you can start using/testing your code before you finish implementing all stubs :)
2020-12-08 15:26:36 +0100sirabenadds it to template.hs
2020-12-08 15:26:44 +0100jespada(~jespada@90.254.245.49)
2020-12-08 15:27:05 +0100 <merijn> It saddens me so few people know about/use -fdefer-typed-holes
2020-12-08 15:27:19 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-12-08 15:27:36 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-08 15:28:14 +0100carlomagno(~cararell@148.87.23.11)
2020-12-08 15:28:51 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: Lost terminal)
2020-12-08 15:29:36 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-12-08 15:29:55 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
2020-12-08 15:30:02 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a9cd:54a5:5132:6498:c2e9) (Ping timeout: 264 seconds)
2020-12-08 15:31:04 +0100 <boxscape> I suppose the part where it's indexed is really secondary to my question, it would apply to any Prism
2020-12-08 15:31:22 +0100conal_(~conal@209.58.139.237)
2020-12-08 15:31:41 +0100jiribenes(~jiribenes@rosa.jiribenes.com)
2020-12-08 15:32:47 +0100Martinsos(~user@cpe-188-129-36-113.dynamic.amis.hr)
2020-12-08 15:33:59 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-12-08 15:34:31 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
2020-12-08 15:34:58 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-08 15:35:16 +0100Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
2020-12-08 15:35:29 +0100son0p(~son0p@181.136.122.143)
2020-12-08 15:35:36 +0100grdvnl(~gdrvnl@cpe-76-94-36-134.socal.res.rr.com) (Ping timeout: 240 seconds)
2020-12-08 15:36:16 +0100darjeeling_(~darjeelin@122.245.123.202) (Ping timeout: 240 seconds)
2020-12-08 15:37:25 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-08 15:38:43 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-08 15:39:07 +0100grdvnl(~gdrvnl@cpe-76-94-36-134.socal.res.rr.com)
2020-12-08 15:40:18 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-08 15:40:22 +0100the-smug-one(~user@83-92-112-87-cable.dk.customer.tdc.net) (Ping timeout: 272 seconds)
2020-12-08 15:40:32 +0100dyeplexer(~lol@unaffiliated/terpin) (Ping timeout: 256 seconds)
2020-12-08 15:43:59 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-12-08 15:44:34 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-08 15:45:04 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641)
2020-12-08 15:45:30 +0100christo(~chris@81.96.113.213)
2020-12-08 15:46:39 +0100jonatanb_(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-08 15:49:05 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-12-08 15:49:16 +0100koz(~koz@121.99.240.58) (Ping timeout: 240 seconds)
2020-12-08 15:49:26 +0100u0_a298(~user@47.206.148.226)
2020-12-08 15:49:36 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641) (Ping timeout: 258 seconds)
2020-12-08 15:49:54 +0100texasmynsted(~texasmyns@212.102.45.115)
2020-12-08 15:49:59 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 258 seconds)
2020-12-08 15:50:49 +0100koz(~koz@121.99.240.58)
2020-12-08 15:52:07 +0100darjeeling_(~darjeelin@122.245.123.202)
2020-12-08 15:52:20 +0100texasmynsted(~texasmyns@212.102.45.115) (Client Quit)
2020-12-08 15:56:49 +0100u0_a298(~user@47.206.148.226) (Remote host closed the connection)
2020-12-08 15:56:53 +0100nowhereman(~pierre@91-175-29-131.subs.proxad.net) (Ping timeout: 258 seconds)
2020-12-08 15:57:03 +0100u0_a298(~user@47.206.148.226)
2020-12-08 15:57:52 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 15:58:44 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-08 16:01:00 +0100u0_a298(~user@47.206.148.226) (Remote host closed the connection)
2020-12-08 16:01:02 +0100st8less(~st8less@2603:a060:11fd:0:cc1a:708c:1c26:7d45)
2020-12-08 16:01:15 +0100u0_a298(~user@47.206.148.226)
2020-12-08 16:01:59 +0100phasespace(~sar@80-89-47-117.inet.signal.no) (Ping timeout: 260 seconds)
2020-12-08 16:02:15 +0100jonatanb_(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 258 seconds)
2020-12-08 16:03:06 +0100Tario(~Tario@201.192.165.173)
2020-12-08 16:03:27 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-08 16:05:35 +0100alx741(~alx741@181.196.69.205) (Quit: alx741)
2020-12-08 16:07:12 +0100alx741(~alx741@181.196.69.205)
2020-12-08 16:10:41 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-12-08 16:11:06 +0100u0_a298(~user@47.206.148.226)
2020-12-08 16:12:48 +0100 <idnar> boxscape: `[1..5] & at 3 <%~ fmap succ` I think
2020-12-08 16:13:16 +0100 <idnar> oh no
2020-12-08 16:13:32 +0100 <idnar> meh
2020-12-08 16:14:34 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a9cd:54a5:5132:6498:c2e9)
2020-12-08 16:15:27 +0100nek0(~nek0@mail.nek0.eu) (Quit: The Lounge - https://thelounge.chat)
2020-12-08 16:15:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-08 16:16:16 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42)
2020-12-08 16:16:42 +0100phasespace(~sar@89-162-33-21.fiber.signal.no)
2020-12-08 16:16:51 +0100nek0(~nek0@mail.nek0.eu)
2020-12-08 16:17:25 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
2020-12-08 16:18:37 +0100Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt)
2020-12-08 16:18:39 +0100texasmynsted(~texasmyns@212.102.45.115)
2020-12-08 16:18:43 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2020-12-08 16:19:12 +0100shenyi(uid216035@gateway/web/irccloud.com/x-qbidixgzwkexrbur)
2020-12-08 16:19:59 +0100MOSCOS(~MOSCOS@122.54.107.175) (Remote host closed the connection)
2020-12-08 16:20:12 +0100SanchayanMaity(~Sanchayan@122.167.92.138) (Quit: SanchayanMaity)
2020-12-08 16:20:21 +0100MOSCOS(~MOSCOS@122.54.107.175)
2020-12-08 16:20:52 +0100nek0(~nek0@mail.nek0.eu) (Remote host closed the connection)
2020-12-08 16:21:02 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2020-12-08 16:21:25 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42) (Ping timeout: 258 seconds)
2020-12-08 16:24:43 +0100iteratee(~kyle@162.211.154.4) (Ping timeout: 260 seconds)
2020-12-08 16:26:23 +0100nfd(~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) (Ping timeout: 265 seconds)
2020-12-08 16:27:28 +0100LKoen(~LKoen@228.162.9.109.rev.sfr.net) (Remote host closed the connection)
2020-12-08 16:29:45 +0100ADG1089(uid455466@gateway/web/irccloud.com/x-nqoknmurevpbzhjb) (Quit: Connection closed for inactivity)
2020-12-08 16:30:50 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-08 16:30:54 +0100u0_a298`(~user@2607:fb90:6a84:968d:8c8b:9549:39f4:78e7)
2020-12-08 16:32:13 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-12-08 16:34:38 +0100u0_a298`(~user@2607:fb90:6a84:968d:8c8b:9549:39f4:78e7) (Read error: Connection reset by peer)
2020-12-08 16:34:45 +0100u0_a298`(~user@2607:fb90:6a84:968d:8c8b:9549:39f4:78e7)
2020-12-08 16:34:50 +0100u0_a298(~user@47.206.148.226) (Ping timeout: 272 seconds)
2020-12-08 16:34:56 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-12-08 16:35:15 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-08 16:37:28 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-08 16:39:22 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-12-08 16:39:49 +0100u0_a298`(~user@2607:fb90:6a84:968d:8c8b:9549:39f4:78e7) (Ping timeout: 258 seconds)
2020-12-08 16:44:35 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42)
2020-12-08 16:45:16 +0100urodna(~urodna@unaffiliated/urodna)
2020-12-08 16:45:42 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net)
2020-12-08 16:45:42 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net) (Changing host)
2020-12-08 16:45:42 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-12-08 16:45:43 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641)
2020-12-08 16:45:49 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2020-12-08 16:47:02 +0100falafel_(~falafel@pool-108-31-243-192.washdc.fios.verizon.net)
2020-12-08 16:49:23 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-12-08 16:50:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641) (Ping timeout: 264 seconds)
2020-12-08 16:52:00 +0100iteratee(~kyle@162.211.154.4)
2020-12-08 16:54:21 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 16:56:10 +0100LKoen(~LKoen@228.162.9.109.rev.sfr.net)
2020-12-08 16:59:05 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 240 seconds)
2020-12-08 16:59:05 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-08 16:59:29 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-08 17:00:31 +0100falafel_(~falafel@pool-108-31-243-192.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2020-12-08 17:07:41 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42) (Remote host closed the connection)
2020-12-08 17:07:54 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42)
2020-12-08 17:07:58 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-08 17:08:09 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42) (Remote host closed the connection)
2020-12-08 17:08:17 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42)
2020-12-08 17:09:43 +0100emmanuel`(~user@2604:2000:1382:ce03:90f3:cccd:7e41:dd42) ()
2020-12-08 17:12:02 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-12-08 17:13:23 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-08 17:14:21 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-12-08 17:15:40 +0100 <mananamenos> hi, why doesn't `$` parse in this example? `prop_removeNotEmpty xs x = xs /= empty ==> remove (add x xs) == add x $ remove xs
2020-12-08 17:15:40 +0100 <mananamenos> `
2020-12-08 17:16:05 +0100 <mananamenos> i must put parens on (remove xs)
2020-12-08 17:16:24 +0100 <merijn> $ is not "magic parens removal"
2020-12-08 17:16:32 +0100 <merijn> :t ($)
2020-12-08 17:16:33 +0100 <lambdabot> (a -> b) -> a -> b
2020-12-08 17:16:53 +0100 <merijn> mananamenos: *everything* on the left of $ is treated as function and applied to the thing on the right
2020-12-08 17:17:14 +0100 <merijn> While you're intending to only apply "add x"
2020-12-08 17:17:38 +0100 <ephemient> ==> is infixr 0, $ is infixr 0
2020-12-08 17:17:58 +0100 <merijn> That still leaves "remove (add x xs) == add x"
2020-12-08 17:18:25 +0100 <ephemient> therefore it parses like `prop_removeNotEmpty xs x = ((xs /= empty) ==> remove (add x xs) == add x) $ remove xs`
2020-12-08 17:18:29 +0100 <merijn> That's a boolean, not a function (well, it's a type error, but if it wasn't, it'd be a type error
2020-12-08 17:18:46 +0100 <dolio> That would be infixl.
2020-12-08 17:19:06 +0100nek0(~nek0@mail.nek0.eu)
2020-12-08 17:19:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-08 17:19:14 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-wlqbdmxowqgsahkp)
2020-12-08 17:19:20 +0100 <ephemient> oh you're right, I got left and right backwards
2020-12-08 17:19:25 +0100 <dolio> :)
2020-12-08 17:19:25 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-08 17:19:33 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-12-08 17:19:43 +0100 <mananamenos> thank you
2020-12-08 17:20:47 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-12-08 17:21:23 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-12-08 17:24:52 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a9cd:54a5:5132:6498:c2e9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 17:25:07 +0100lyxia(~lyxia@poisson.chat) (Quit: WeeChat 2.9)
2020-12-08 17:25:49 +0100clynamen_(~clynamen@37.183.22.31) (Read error: Connection reset by peer)
2020-12-08 17:26:35 +0100clynamen(~clynamen@37.183.22.31)
2020-12-08 17:27:42 +0100acidjnk_new(~acidjnk@p200300d0c719ff80cd4aafbd6cd15b09.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-12-08 17:29:32 +0100aidecoe(~aidecoe@unaffiliated/aidecoe)
2020-12-08 17:29:43 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Quit: WeeChat 2.9)
2020-12-08 17:30:32 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-08 17:33:39 +0100urek(~urek@179.182.119.135)
2020-12-08 17:35:31 +0100urek__(~urek@2804:7f1:e10a:7d51:8503:5833:8cd1:db9c) (Ping timeout: 272 seconds)
2020-12-08 17:36:00 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-12-08 17:37:20 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-08 17:37:26 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-12-08 17:37:58 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-12-08 17:38:23 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-12-08 17:39:10 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
2020-12-08 17:40:25 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 240 seconds)
2020-12-08 17:43:47 +0100xff0x_(~fox@port-92-195-97-206.dynamic.as20676.net) (Quit: xff0x_)
2020-12-08 17:43:56 +0100xff0x(~fox@2001:1a81:5297:ce00:2295:5eb3:713f:d20)
2020-12-08 17:44:35 +0100shatriff_(~vitaliish@176.52.219.10)
2020-12-08 17:45:49 +0100shatriff(~vitaliish@176.52.219.10) (Ping timeout: 260 seconds)
2020-12-08 17:48:24 +0100juuandyy(~juuandyy@90.166.144.65)
2020-12-08 17:53:18 +0100 <texasmynsted> WAT?! https://github.com/quchen/articles/blob/master/2018-11-22_zipWith_const.md
2020-12-08 17:53:28 +0100 <texasmynsted> That is great! :-)
2020-12-08 17:53:54 +0100 <Squarism> Im trying to understand the utility of "traverse" together with "Const"
2020-12-08 17:54:46 +0100 <Squarism> Some wrote it becomes powerful in this form : (getConst . traverse Const :: (Monoid a, Traversable f) => f a -> a)
2020-12-08 17:54:52 +0100 <Squarism> But I still dont get it
2020-12-08 17:55:19 +0100 <c_wraith> have you used lens at all?
2020-12-08 17:55:42 +0100 <Squarism> I have, but mostly wo understanding what happens underneath.
2020-12-08 17:55:51 +0100 <Squarism> I get the concept of Traversable /
2020-12-08 17:56:03 +0100 <dolio> You know foldable, right?
2020-12-08 17:56:05 +0100 <c_wraith> it turns out Const is a significant part of how lens works
2020-12-08 17:56:27 +0100 <dolio> Because that is Foldable, basically.
2020-12-08 17:56:31 +0100 <Squarism> Foldable .. and how they can achieve the end result in broad terms. But not much more.
2020-12-08 17:57:22 +0100 <jle`> try it out with some sample traversables you might know
2020-12-08 17:57:25 +0100 <Squarism> I feel I need to se an example of how Const + traverse does something useful. Looking at the code of lens library feels to much at once.
2020-12-08 17:57:38 +0100 <c_wraith> so the thing with a lens, and let's pick a concrete-ish type here, is that you have something that doesn't look like it's especially helpful all the time. Like... (a -> f b) -> (a, c) -> f (b, c)
2020-12-08 17:57:40 +0100 <jle`> > traverse Const ["hello","world","goodbye"]
2020-12-08 17:57:41 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-08 17:57:42 +0100 <lambdabot> Const "helloworldgoodbye"
2020-12-08 17:57:59 +0100 <jle`> it lets you collect the items of a Traversable into a monoid
2020-12-08 17:58:00 +0100 <dolio> It does what Foldable does for every Traversable.
2020-12-08 17:58:44 +0100 <c_wraith> But if you want to use a lens as a getter, that final type doesn't look very useful. f (b, c) doesn't look much like a
2020-12-08 17:59:56 +0100 <c_wraith> but that type f is very flexible. You specialize the type of the lens to (a -> Const a b) -> (a, c) -> Const a (b, c)
2020-12-08 18:00:18 +0100 <Squarism> I would prefer not talk about the other types of Lens but for example see how I could extract "2" out of (Just 2,"asdf")
2020-12-08 18:00:34 +0100 <c_wraith> that's exactly what I'm doing
2020-12-08 18:01:25 +0100 <c_wraith> except for the Maybe part. that gets into Traversals, so I'm removing it
2020-12-08 18:01:45 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-12-08 18:02:03 +0100 <Squarism> (sorry for that unappreciative answer, just meaning long signatures and things that are natural to you havent clicked yet for me =D)
2020-12-08 18:03:08 +0100 <jle`> Squarism: 'traverse' only touches the "asdf" part, so you could use it to extract the "asdf"
2020-12-08 18:03:14 +0100 <jle`> > traverse Const (Just 2, "asdf")
2020-12-08 18:03:15 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-12-08 18:03:16 +0100 <lambdabot> Const "asdf"
2020-12-08 18:04:34 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-12-08 18:05:05 +0100 <c_wraith> The thing about Const is that it's a trivial functor that you use when you want to *reduce* what's going on in a function that's polymorphic in the functor type
2020-12-08 18:05:28 +0100 <c_wraith> there's no way to show it doing something useful that doesn't start as something complex and then reduce the complexity
2020-12-08 18:05:28 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-rmxdeovfftxpgutx)
2020-12-08 18:05:43 +0100 <Squarism> jle`, I was hoping there was a trick to extract the "2" out of it. Like quick and dirty "Getter" ?
2020-12-08 18:05:59 +0100 <jle`> there is a trick, but you can't get it with 'traverse'
2020-12-08 18:06:09 +0100 <jle`> since 'traverse' is only given the "asdf"
2020-12-08 18:06:11 +0100 <c_wraith> and it's not going to be simple, either
2020-12-08 18:06:30 +0100 <jle`> you can use bitraverse maybe
2020-12-08 18:06:38 +0100 <c_wraith> because you're starting in two places at once, instead of just one
2020-12-08 18:06:51 +0100 <jle`> > bitraverse Const pure (Just [2], "asdf")
2020-12-08 18:06:54 +0100 <lambdabot> error:
2020-12-08 18:06:54 +0100 <lambdabot> • Variable not in scope:
2020-12-08 18:06:54 +0100 <lambdabot> bitraverse
2020-12-08 18:07:05 +0100 <c_wraith> start with a far simpler task: extract the 2 from (2, ())
2020-12-08 18:07:31 +0100 <Squarism> ok
2020-12-08 18:07:51 +0100kozkoz_
2020-12-08 18:08:45 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 258 seconds)
2020-12-08 18:09:16 +0100 <c_wraith> now, let's give you a lens for that, but let's make it super-specialized: _1 :: Functor f => (Int -> f Int) -> (Int, ()) -> f (Int, ())
2020-12-08 18:09:43 +0100 <Squarism> Ok
2020-12-08 18:10:56 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-08 18:10:57 +0100 <c_wraith> If you know you're going to be using _1 in your solution, you see that the final thing it gives you is an f (Int, ()). But you want to be writing some sort of getter that just returns Int. So there's a lot of junk there that's not necessary
2020-12-08 18:11:59 +0100 <c_wraith> The trick is that in _1, f is polymorphic. So you get to choose the Functor instance you want. And it turns out Const is a good functor for throwing out a lot of junk
2020-12-08 18:12:49 +0100jianbo(~jianbo@2601:246:4000:b22:2155:768d:869a:2ce3)
2020-12-08 18:13:04 +0100Tops22(~Tobias@dyndsl-095-033-020-246.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-12-08 18:13:04 +0100 <c_wraith> So _1 (Const) :: (Int, ()) -> Const Int (Int, ())
2020-12-08 18:13:28 +0100 <c_wraith> But that result type is just a newtype wrapper away from Int
2020-12-08 18:14:45 +0100 <c_wraith> and for reference, Const :: a -> Const a b
2020-12-08 18:14:54 +0100heatsink(~heatsink@2600:1700:bef1:5e10:deb:313c:b080:2641)
2020-12-08 18:15:56 +0100 <c_wraith> you can sort of think of Const as letting you smuggle out a value, ignoring the bigger context.
2020-12-08 18:16:08 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-08 18:16:17 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-08 18:16:33 +0100 <c_wraith> sure, yeah, there's a bigger value in the type, but it's phantom. It's not actually kept around
2020-12-08 18:16:48 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-08 18:17:19 +0100notzmv(~user@unaffiliated/zmv)
2020-12-08 18:17:32 +0100tomsmedingrealises Const is essentially just a beautiful functional hack
2020-12-08 18:17:56 +0100jmchael(~jmchael@87.112.60.168)
2020-12-08 18:18:34 +0100 <c_wraith> And here's the big stumbling point: Const is "useless", in exactly the same way const is "useless"
2020-12-08 18:19:01 +0100 <c_wraith> Neither one is something you're going to just decide to use in your code
2020-12-08 18:19:13 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-08 18:19:27 +0100 <c_wraith> They come up when you're working with higher-order things and you need to fit a simpler idea into a more complex one
2020-12-08 18:19:43 +0100 <c_wraith> They're adapters, essentially.
2020-12-08 18:19:56 +0100 <Squarism> c_wraith, so how would the actual application of this example look. "extract the 2 from (2, ())"
2020-12-08 18:20:14 +0100 <c_wraith> getConst (_1 Const)
2020-12-08 18:20:20 +0100 <c_wraith> err
2020-12-08 18:20:26 +0100 <c_wraith> getConst (_1 Const (2, ()))
2020-12-08 18:20:39 +0100juuandyy(~juuandyy@90.166.144.65)
2020-12-08 18:20:59 +0100iqubic`(~user@2601:602:9500:4870:9dce:a684:2556:7d9f) (Quit: ERC (IRC client for Emacs 28.0.50))
2020-12-08 18:21:15 +0100iqubic(~user@2601:602:9500:4870:9dce:a684:2556:7d9f)
2020-12-08 18:21:54 +0100gxt__(~gxt@gateway/tor-sasl/gxt)
2020-12-08 18:22:05 +0100niko(~niko@freenode/staff/ubuntu.member.niko) (Ping timeout: 600 seconds)
2020-12-08 18:22:17 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-08 18:22:40 +0100 <c_wraith> In fact...
2020-12-08 18:22:41 +0100 <c_wraith> > getConst (_1 Const (2, ()))
2020-12-08 18:22:44 +0100 <lambdabot> 2
2020-12-08 18:23:02 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-12-08 18:23:03 +0100 <c_wraith> the value _1 that lambdabot has is more polymorphic, but it can be instantiated at exactly those types
2020-12-08 18:23:25 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-12-08 18:23:52 +0100 <jle`> > _1 Const (2, ()) -- hm..
2020-12-08 18:23:54 +0100 <lambdabot> Const 2
2020-12-08 18:24:03 +0100gxt_(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-12-08 18:24:43 +0100 <c_wraith> :t M.alterF
2020-12-08 18:24:45 +0100 <lambdabot> (Functor f, Ord k) => (Maybe a -> f (Maybe a)) -> k -> M.Map k a -> f (M.Map k a)
2020-12-08 18:24:56 +0100notzmv(~user@unaffiliated/zmv)
2020-12-08 18:25:15 +0100 <c_wraith> that's basically a lens that existed before the lens library
2020-12-08 18:26:17 +0100 <c_wraith> > getConst (M.alterF Const 4 (M.fromList [(3, "hello"), (4, "world)]))
2020-12-08 18:26:19 +0100 <lambdabot> <hint>:1:69: error:
2020-12-08 18:26:20 +0100 <lambdabot> <hint>:1:69: error:
2020-12-08 18:26:20 +0100 <lambdabot> lexical error in string/character literal at end of input
2020-12-08 18:27:11 +0100 <c_wraith> apparently lexical rules are hard for me these days
2020-12-08 18:27:13 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-12-08 18:27:15 +0100 <c_wraith> > getConst (M.alterF Const 4 (M.fromList [(3, "hello"), (4, "world")]))
2020-12-08 18:27:18 +0100 <lambdabot> Just "world"
2020-12-08 18:27:27 +0100 <c_wraith> > getConst (M.alterF Const 5 (M.fromList [(3, "hello"), (4, "world")]))
2020-12-08 18:27:30 +0100 <lambdabot> Nothing
2020-12-08 18:28:28 +0100 <tomsmeding> so M.lookup = getConst . M.alterF Const
2020-12-08 18:28:48 +0100 <c_wraith> I think that's got a type error, but mostly correct
2020-12-08 18:29:39 +0100 <tomsmeding> ah right
2020-12-08 18:29:41 +0100 <c_wraith> M.lookup k = getConst . M.alterF Const k
2020-12-08 18:29:49 +0100 <tomsmeding> :t (getConst .) . M.alterF Const
2020-12-08 18:29:51 +0100 <lambdabot> Ord k => k -> M.Map k a -> Maybe a
2020-12-08 18:30:05 +0100 <c_wraith> :t M.lookup
2020-12-08 18:30:07 +0100 <lambdabot> Ord k => k -> M.Map k a -> Maybe a
2020-12-08 18:30:11 +0100 <c_wraith> there you go!
2020-12-08 18:30:45 +0100 <c_wraith> :t M.alterF
2020-12-08 18:30:47 +0100 <lambdabot> (Functor f, Ord k) => (Maybe a -> f (Maybe a)) -> k -> M.Map k a -> f (M.Map k a)
2020-12-08 18:30:58 +0100 <c_wraith> once more - that returns an f (M.Map k a)
2020-12-08 18:31:25 +0100tomsmedingthanks c_wraith for the nice intro into Const, TIL
2020-12-08 18:31:30 +0100 <c_wraith> Const is an adapter that lets you get a Maybe a out instead, by sneaking it into the f
2020-12-08 18:32:19 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-08 18:32:25 +0100 <c_wraith> I really do find it impressive that alterF predates the lens library
2020-12-08 18:32:36 +0100 <c_wraith> Someone stumbled onto something far more general than they realized
2020-12-08 18:33:26 +0100notzmv(~user@unaffiliated/zmv)
2020-12-08 18:34:26 +0100 <Squarism> c
2020-12-08 18:34:44 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Ping timeout (120 seconds))
2020-12-08 18:35:20 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-08 18:35:46 +0100 <tomsmeding> alterF for Data.Map looks to be after lens, though: https://github.com/haskell/containers/commit/7d03d76b7647dc731da2e75dcdd45f6c2e667682
2020-12-08 18:35:54 +0100 <Squarism> c_wraith, ok. That was an interesting example. Trying to extend it to get the 2 out of (True,(2,()).
2020-12-08 18:36:20 +0100 <Squarism> ...and thanks!
2020-12-08 18:36:20 +0100notzmv(~user@unaffiliated/zmv)
2020-12-08 18:36:30 +0100 <c_wraith> huh, did I get that relative timing wrong? that's unfortunate
2020-12-08 18:37:13 +0100 <tomsmeding> well I don't know if that's the first occurrence of such an alterF, but it seems to be the origin of Data.Map.Strict.alterF
2020-12-08 18:37:44 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-08 18:37:44 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-08 18:38:15 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-08 18:39:45 +0100unlink2(~unlink2@p5dc0acf8.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-12-08 18:40:30 +0100 <c_wraith> Squarism: it turns out that's going to not be much more enlightening. the use of Const will be identical. the only difference will be replacing _1 with a function that digs deeper.
2020-12-08 18:40:37 +0100ericsagn1(~ericsagne@2405:6580:0:5100:230f:7e22:ba44:597f) (Ping timeout: 260 seconds)
2020-12-08 18:41:39 +0100unlink2(~unlink2@p200300ebcf259600971664e9499d7db7.dip0.t-ipconnect.de)
2020-12-08 18:42:35 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 18:44:55 +0100 <ezzieyguywuf> if I have an `Either e a` and a `(a -> b)`, how can I make an `Either e b`?
2020-12-08 18:45:03 +0100 <dminuoso> % :t fmap
2020-12-08 18:45:03 +0100 <yahb> dminuoso: Functor f => (a -> b) -> f a -> f b
2020-12-08 18:45:11 +0100 <Squarism> c_wraith, alright. That was great. Now I have a small expression that I can dig into. Thanks a bunch.
2020-12-08 18:45:13 +0100 <ezzieyguywuf> duh!!
2020-12-08 18:45:24 +0100 <ezzieyguywuf> forgot that fmap for Either will return Left as-is
2020-12-08 18:45:28 +0100 <ezzieyguywuf> dminuoso: thank you.
2020-12-08 18:45:42 +0100 <solonarv> ezzieyguywuf: or Data.Bifunctor.second
2020-12-08 18:45:47 +0100 <c_wraith> Squarism: you're welcome. keep playing with it and you'll get a good feel for it.
2020-12-08 18:46:06 +0100 <Squarism> c_wraith, this is it right ? ((_2 . _1) Const (True,(2 :: Int, ())))
2020-12-08 18:46:08 +0100 <solonarv> (you might want to use 'second' because of its symmetry with 'first', which works on the Left side)
2020-12-08 18:46:25 +0100 <c_wraith> yes it is
2020-12-08 18:47:07 +0100 <c_wraith> well, you might want to throw a getConst in, but that's just the tribal unwrapping
2020-12-08 18:47:19 +0100 <c_wraith> *trivial
2020-12-08 18:47:28 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 258 seconds)
2020-12-08 18:47:41 +0100lassulus(~lassulus@NixOS/user/lassulus) (Remote host closed the connection)
2020-12-08 18:48:12 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-08 18:48:15 +0100lassulus(~lassulus@NixOS/user/lassulus) (Client Quit)
2020-12-08 18:48:37 +0100carlomagno(~cararell@148.87.23.11) (Ping timeout: 258 seconds)
2020-12-08 18:48:54 +0100lassulus(~lassulus@NixOS/user/lassulus)
2020-12-08 18:49:10 +0100 <ezzieyguywuf> solonarv: thanks.
2020-12-08 18:50:33 +0100carlomagno(~cararell@148.87.23.11)
2020-12-08 18:51:31 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-08 18:52:55 +0100ericsagn1(~ericsagne@2405:6580:0:5100:1635:4394:f86d:e4ee)
2020-12-08 18:53:16 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se)
2020-12-08 18:56:42 +0100 <cheater> this cabal source code has "i'm feeling lucky" as a comment ...
2020-12-08 18:59:23 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-08 18:59:35 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-08 19:00:30 +0100 <[exa]> cheater: judging from the fact you're still reading cabal source code, I guess you weren't that lucky with the llvm?
2020-12-08 19:01:15 +0100 <cheater> yeah, that's the state i'm in
2020-12-08 19:01:30 +0100 <cheater> apparently it has no idea how to handle static llvm library lists under windows
2020-12-08 19:01:34 +0100 <cheater> so i'll have to figure it out
2020-12-08 19:01:38 +0100 <cheater> i'm eating lunch now though
2020-12-08 19:02:12 +0100kuribas(~user@ptr-25vy0i99gxf0ju0nzkm.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-12-08 19:02:14 +0100 <cheater> but essentially ifBuildsWith fails in Configure.hs with "Missing (or bad) C libraries"
2020-12-08 19:02:41 +0100 <[exa]> perhaps you're hitting some of the famous commandline length limits?
2020-12-08 19:04:05 +0100 <merijn> "missing (or bad) C libraries" sounds like pkg-config-depends failing
2020-12-08 19:06:03 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-08 19:06:46 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-12-08 19:09:33 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-12-08 19:10:36 +0100hidedagger(~nate@unaffiliated/hidedagger) (Ping timeout: 240 seconds)
2020-12-08 19:10:37 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com)
2020-12-08 19:13:11 +0100 <jle`> is there a "tagged nil" list type anywhere commonly?
2020-12-08 19:13:21 +0100 <jle`> data TaggedNil w a = Nil w | Cons a (TaggedNil w a)
2020-12-08 19:13:40 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-12-08 19:13:53 +0100 <geekosaur> not commonly
2020-12-08 19:14:32 +0100 <jle`> I thiiink it should be equivalent to Conduit () a m w
2020-12-08 19:15:06 +0100 <solonarv> for finite lists it's equivalent to (w, [a]), right?
2020-12-08 19:15:07 +0100 <jle`> forall m
2020-12-08 19:15:36 +0100 <jle`> solonarv: oh yeah, true. but i'd want to be taking advantage of laziness here and using it with recursion-schemes
2020-12-08 19:15:48 +0100 <jle`> i guessi could do (w, [a]) and do a custom recursin-scheme instance set
2020-12-08 19:16:04 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Read error: Connection reset by peer)
2020-12-08 19:17:26 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-08 19:17:51 +0100 <solonarv> it's certainly equivalent to Conduit () a Identity w
2020-12-08 19:20:18 +0100 <[exa]> :t \a b c -> (,) <$> a <*> b >>= uncurry c -- is there some name/shortcut for this? except for double binding with `do`.
2020-12-08 19:20:20 +0100 <lambdabot> Monad m => m a -> m b1 -> (a -> b1 -> m b2) -> m b2
2020-12-08 19:21:42 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-12-08 19:22:17 +0100 <solonarv> [exa]: I don't think so; you could also write it as join (c <$> a <*> b)
2020-12-08 19:23:20 +0100 <[exa]> yeah that is nicer
2020-12-08 19:23:49 +0100 <jle`> i'd probably use do notation
2020-12-08 19:24:12 +0100 <jle`> over tuple munging
2020-12-08 19:25:15 +0100 <sm[m]> g'day all
2020-12-08 19:25:46 +0100conal_(~conal@209.58.139.237) (Quit: Computer has gone to sleep.)
2020-12-08 19:25:53 +0100 <sm[m]> stack repl --help says: --package PACKAGE(S) Additional package(s) that must be installed, suggesting you can put multiple package names with a single --package. Would anyone know the right syntax ?
2020-12-08 19:26:28 +0100L29Ah(~L29Ah@unaffiliated/l29ah)
2020-12-08 19:26:28 +0100 <koz_> sm[m]: Tried comma separating?
2020-12-08 19:27:08 +0100 <ski> [exa] : `infixl 4 <*>>; (<*>>) :: Monad m => m (a -> m b) -> (m a -> m b); mamb <*>> ma = join (mamb <*> ma)', then use `f <$> ma <*> mb <*> mc <*>> md'
2020-12-08 19:27:56 +0100conal(~conal@209.58.139.237)
2020-12-08 19:28:40 +0100 <[exa]> wow cool
2020-12-08 19:29:08 +0100 <[exa]> is the <*>> name used somewhere?
2020-12-08 19:29:19 +0100 <ski> i've mentioned it before, in here ..
2020-12-08 19:29:27 +0100 <[exa]> :]
2020-12-08 19:29:34 +0100 <[exa]> ok, thanks everyone. :]
2020-12-08 19:31:21 +0100tungki_(uid469991@gateway/web/irccloud.com/x-sspsztrxwlgmlqik)
2020-12-08 19:31:34 +0100 <ski> @type let mmab <<*> ma = join mmab <*> ma in (<<*>)
2020-12-08 19:31:36 +0100 <lambdabot> Monad f => f (f (a -> b)) -> f a -> f b
2020-12-08 19:33:08 +0100ubert(~Thunderbi@p200300ecdf1e5312e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-12-08 19:33:58 +0100 <sm[m]> koz_: yup
2020-12-08 19:34:01 +0100 <sm[m]> and space
2020-12-08 19:34:02 +0100ubert(~Thunderbi@p200300ecdf1e5386e6b318fffe838f33.dip0.t-ipconnect.de)
2020-12-08 19:34:49 +0100 <koz_> sm[m]: Yeah, that's obscure-AF.
2020-12-08 19:34:54 +0100 <koz_> Three cheers for stack docs rofl.
2020-12-08 19:35:12 +0100tungki_(uid469991@gateway/web/irccloud.com/x-sspsztrxwlgmlqik) (Client Quit)
2020-12-08 19:35:20 +0100 <sm[m]> huh, https://docs.haskellstack.org/en/stable/GUIDE/#using-multiple-packages is there but says both comma and space work
2020-12-08 19:36:03 +0100 <[exa]> ski: kindof finding out that just prefixing the whole construction with 'join $' will be likely the most digestible way
2020-12-08 19:36:10 +0100 <sm[m]> seems like a bug/regression then, I'll report
2020-12-08 19:36:21 +0100tungki(uid469991@gateway/web/irccloud.com/x-xbivqosqcbdjuayc)
2020-12-08 19:36:32 +0100 <sm[m]> oh, but that doc was for the script command
2020-12-08 19:36:33 +0100 <geekosaur> shell quoting required for spaces?
2020-12-08 19:36:44 +0100 <geekosaur> (but not for commas, so.)
2020-12-08 19:37:49 +0100 <geekosaur> I also note the "this is probably out of date" at the very start of the GUIDE
2020-12-08 19:37:52 +0100 <ski> [exa] : fair enough :)
2020-12-08 19:38:23 +0100ubert(~Thunderbi@p200300ecdf1e5386e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-12-08 19:40:30 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-12-08 19:40:35 +0100sgibber2018(~arch-gibb@208.85.237.137)
2020-12-08 19:42:35 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-12-08 19:43:03 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-12-08 19:43:47 +0100matryoshka`(~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-08 19:44:03 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-08 19:44:11 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 19:44:12 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 258 seconds)
2020-12-08 19:45:43 +0100 <sm[m]> https://github.com/commercialhaskell/stack/issues/5455
2020-12-08 19:46:06 +0100notzmv(~user@unaffiliated/zmv)
2020-12-08 19:46:09 +0100 <sm[m]> too obscure to get fixed without a PR, but for the record..
2020-12-08 19:47:12 +0100 <notzmv> fw
2020-12-08 19:47:21 +0100toorevitimirp(~tooreviti@117.182.181.85) (Remote host closed the connection)
2020-12-08 19:52:03 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-12-08 19:52:16 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving)
2020-12-08 19:52:33 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-12-08 19:52:53 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-12-08 19:53:01 +0100 <kritzefitz> Can anyone recommend an up-to-date FRP library? I was just coming back to a project using reactive-banana and quite shocked to find out, that it doesn't seem to be actively maintained anymore.
2020-12-08 19:53:16 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-12-08 19:53:36 +0100 <koz_> kritzefitz: Rhine is pretty good.
2020-12-08 19:53:44 +0100 <koz_> (it also solves a fairly important problem)
2020-12-08 19:55:29 +0100conal(~conal@209.58.139.237) (Quit: Computer has gone to sleep.)
2020-12-08 19:56:52 +0100 <kritzefitz> koz, Thanks! I'm gonna take a look at that.
2020-12-08 19:57:40 +0100juuandyy(~juuandyy@90.166.144.65)
2020-12-08 19:59:05 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2020-12-08 19:59:12 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) (Remote host closed the connection)
2020-12-08 19:59:21 +0100sgibber2018(~arch-gibb@208.85.237.137) (Quit: WeeChat 2.9)
2020-12-08 20:00:23 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-12-08 20:00:25 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds)
2020-12-08 20:01:53 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-qqpsupzzdwjcsdle)
2020-12-08 20:02:55 +0100sgibber2018(~arch-gibb@208.85.237.137)
2020-12-08 20:03:21 +0100berberman_(~berberman@unaffiliated/berberman)
2020-12-08 20:04:06 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-12-08 20:04:08 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds)
2020-12-08 20:04:49 +0100 <ezzieyguywuf> how can I turn an Integer into an Int?
2020-12-08 20:04:56 +0100 <ezzieyguywuf> Or vice-versa if that is "safer"?
2020-12-08 20:05:14 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) (Ping timeout: 260 seconds)
2020-12-08 20:05:19 +0100 <geekosaur> :t fromIntegral
2020-12-08 20:05:21 +0100 <lambdabot> (Integral a, Num b) => a -> b
2020-12-08 20:05:45 +0100 <geekosaur> vice versa would be safer since it can't overflow; same conversion function
2020-12-08 20:05:55 +0100 <ezzieyguywuf> geekosaur: perfect thank you.
2020-12-08 20:06:05 +0100sagax(~sagax_nb@213.138.71.146) (Ping timeout: 240 seconds)
2020-12-08 20:15:19 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-12-08 20:16:06 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-12-08 20:16:13 +0100conal(~conal@209.58.139.237)
2020-12-08 20:16:26 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-08 20:21:06 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer)
2020-12-08 20:21:56 +0100abhixec(~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
2020-12-08 20:22:25 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
2020-12-08 20:25:23 +0100notzmv`(~user@201-43-52-72.dsl.telesp.net.br)
2020-12-08 20:25:24 +0100howdoi(uid224@gateway/web/irccloud.com/x-kqlbqomhdamrwvuv)
2020-12-08 20:25:55 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-08 20:26:01 +0100dhil(~dhil@195.213.192.34) (Ping timeout: 264 seconds)
2020-12-08 20:26:43 +0100notzmv(~user@unaffiliated/zmv) (Ping timeout: 246 seconds)
2020-12-08 20:26:48 +0100roconnor(~roconnor@host-45-58-200-239.dyn.295.ca) (Quit: Konversation terminated!)
2020-12-08 20:27:09 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-12-08 20:27:58 +0100christo(~chris@81.96.113.213)
2020-12-08 20:28:25 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 260 seconds)
2020-12-08 20:28:32 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net)
2020-12-08 20:29:10 +0100tom__(~tom@2a00:23c8:970a:3501:b89a:3974:7a09:75a2)
2020-12-08 20:32:21 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-12-08 20:32:56 +0100zincy__(~tom@2a00:23c8:970a:3501:d1af:3726:ffca:e493) (Ping timeout: 246 seconds)
2020-12-08 20:34:57 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-08 20:35:06 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-12-08 20:35:11 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-12-08 20:35:33 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-12-08 20:38:31 +0100dhil(~dhil@78.156.97.38)
2020-12-08 20:40:44 +0100conal(~conal@209.58.139.237) (Quit: Computer has gone to sleep.)
2020-12-08 20:42:59 +0100leungbk(~user@2603-8000-f144-2028-5f51-12f7-6de3-c4e6.res6.spectrum.com)
2020-12-08 20:46:34 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-08 20:48:03 +0100conal(~conal@209.58.139.237)
2020-12-08 20:49:21 +0100conal(~conal@209.58.139.237) (Client Quit)
2020-12-08 20:50:19 +0100conal(~conal@209.58.139.237)
2020-12-08 20:50:28 +0100conal(~conal@209.58.139.237) (Client Quit)
2020-12-08 20:50:44 +0100ubert(~Thunderbi@p200300ecdf1e5386e6b318fffe838f33.dip0.t-ipconnect.de)
2020-12-08 20:51:40 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 258 seconds)
2020-12-08 20:51:49 +0100conal(~conal@209.58.139.237)
2020-12-08 20:52:03 +0100conal(~conal@209.58.139.237) (Client Quit)
2020-12-08 20:53:08 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-12-08 20:53:14 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-08 20:53:23 +0100 <dminuoso> ezzieyguywuf: What does "safety" even mean for you?
2020-12-08 20:53:47 +0100borne(~fritjof@200116b86420b200bcbe2553f445a41b.dip.versatel-1u1.de)
2020-12-08 20:54:42 +0100dhil(~dhil@78.156.97.38) (Ping timeout: 256 seconds)
2020-12-08 20:55:11 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 20:55:44 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 20:57:02 +0100acidjnk_new(~acidjnk@p200300d0c719ff8621cd498ce205b85b.dip0.t-ipconnect.de)
2020-12-08 20:58:21 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-08 20:59:12 +0100 <koz_> dminuoso: I'm guessing the concern is overflow?
2020-12-08 20:59:31 +0100 <koz_> There's like, cast-int or something like that for this?
2020-12-08 20:59:39 +0100 <geekosaur> that was my guess as well
2020-12-08 20:59:59 +0100christo(~chris@81.96.113.213)
2020-12-08 21:00:23 +0100conal(~conal@64.71.133.70)
2020-12-08 21:00:23 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-08 21:00:25 +0100benschza(~quassel@2604:1380:2000:cf00::1) (Ping timeout: 240 seconds)
2020-12-08 21:00:31 +0100 <dminuoso> Well, cast-int wouldnt allow you to go from Integer to Int
2020-12-08 21:00:47 +0100 <dminuoso> Or does it?
2020-12-08 21:00:54 +0100benschza(~quassel@2604:1380:2000:cf00::1)
2020-12-08 21:01:05 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-12-08 21:01:06 +0100 <dminuoso> Ohh, it has dynamically checked variants, I did not know this
2020-12-08 21:01:12 +0100crblmr(~carbolyme@matrix.dropacid.net) (Remote host closed the connection)
2020-12-08 21:01:13 +0100 <dminuoso> I only ever used it for the static conversions
2020-12-08 21:01:38 +0100 <koz_> The dynamically checked thing is actually in Data.Bits now I think.
2020-12-08 21:01:41 +0100 <ezzieyguywuf> dminuoso: "safety" = "avoiding things like overflow"
2020-12-08 21:02:01 +0100 <ezzieyguywuf> I'm not savvy enough to recognize these potential pitfalls
2020-12-08 21:02:07 +0100 <ezzieyguywuf> (yet)
2020-12-08 21:02:12 +0100 <dminuoso> Then int-cast is the only solution I know if..
2020-12-08 21:02:33 +0100 <dminuoso> The lack of comprehensive conversion functions in Haskell is a major annoyance of mine
2020-12-08 21:02:48 +0100 <ezzieyguywuf> so the (fromInteger :: (Integer -> Int)) is no good?
2020-12-08 21:03:12 +0100 <dminuoso> It's like we train you to encode all kinds of properties into the type system, to ensure you don't have surprise errors - just to to hand you nothing but conversion functions that likely dont do what you want.
2020-12-08 21:03:46 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 21:03:52 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
2020-12-08 21:03:56 +0100 <dminuoso> % fromIntegral (122180591620717411303424 :: Integer) :: Int
2020-12-08 21:03:56 +0100 <yahb> dminuoso: 7805620539050950656
2020-12-08 21:03:58 +0100 <dminuoso> You tell me
2020-12-08 21:04:30 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-08 21:04:56 +0100 <dminuoso> % fromIntegral (1180591620717411303424 :: Integer) :: Int
2020-12-08 21:04:57 +0100 <yahb> dminuoso: 0
2020-12-08 21:04:59 +0100juuandyy(~juuandyy@90.166.144.65)
2020-12-08 21:05:48 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) (Ping timeout: 256 seconds)
2020-12-08 21:06:28 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-12-08 21:07:29 +0100dhil(~dhil@195.213.192.34)
2020-12-08 21:07:39 +0100 <ezzieyguywuf> yikes
2020-12-08 21:08:09 +0100notzmv`(~user@201-43-52-72.dsl.telesp.net.br) (Ping timeout: 258 seconds)
2020-12-08 21:08:29 +0100 <ezzieyguywuf> I'm not that worried about it. If my user wants to parse that many characters out of a "Description" column in a csv file downloaded from their bank...they have other problems
2020-12-08 21:08:42 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 256 seconds)
2020-12-08 21:10:29 +0100 <dminuoso> Oh look at that
2020-12-08 21:10:32 +0100 <dminuoso> https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-Bits.html#v:toIntegralSized
2020-12-08 21:10:38 +0100 <dminuoso> koz_ ^- you might also be interested
2020-12-08 21:10:42 +0100 <koz_> dminuoso: I was aware. :P
2020-12-08 21:10:47 +0100 <koz_> (I even mentioned this earlier)
2020-12-08 21:11:08 +0100 <koz_> I had to deal with this when I was rewriting Real Job For Real Money's database wrapper layer.
2020-12-08 21:11:21 +0100 <dminuoso> Oh sorry, I missed it then
2020-12-08 21:11:38 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-08 21:11:40 +0100 <dminuoso> The documentation is a bit fuzzy on toIntegralSized
2020-12-08 21:12:03 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-12-08 21:12:32 +0100 <dminuoso> The code example looks odd too, unless Im misreading something
2020-12-08 21:12:49 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-08 21:13:23 +0100 <dminuoso> `| toInteger x == y = ...` this is the same as `| toInteger x == toInteger x = ...`
2020-12-08 21:13:57 +0100 <dminuoso> Im guessing the snippet is wrong and it should read `y = fromIntegral x`
2020-12-08 21:14:21 +0100ADG1089(uid455466@gateway/web/irccloud.com/x-snrmhjgbftnsehrc)
2020-12-08 21:15:14 +0100 <geekosaur> this came up a few weeks ago, it's wrong
2020-12-08 21:15:47 +0100 <geekosaur> someone then tried to submit a PR and ran into a gitlab outage of some kind (503 error I think)
2020-12-08 21:16:54 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-12-08 21:19:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-08 21:19:16 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) (Ping timeout: 240 seconds)
2020-12-08 21:21:24 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-12-08 21:22:33 +0100StoneToad(~StoneToad@199-167-119-135.ppp.storm.ca) (Ping timeout: 260 seconds)
2020-12-08 21:24:05 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-08 21:24:09 +0100juuandyy(~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
2020-12-08 21:24:36 +0100knupfer(~Thunderbi@200116b82cfdb2004ca865631e4ce9c2.dip.versatel-1u1.de)
2020-12-08 21:26:55 +0100nfd(~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net)
2020-12-08 21:28:49 +0100StoneToad(~StoneToad@199-167-119-150.ppp.storm.ca)
2020-12-08 21:29:04 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 21:29:36 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 21:29:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-08 21:31:50 +0100 <iqubic> Is there an infix version of views from Lens?
2020-12-08 21:32:05 +0100 <iqubic> Like an operator version.
2020-12-08 21:32:07 +0100notzmv(~user@unaffiliated/zmv)
2020-12-08 21:32:12 +0100 <merijn> `views` ? :P
2020-12-08 21:32:39 +0100 <Uniaika> iqubic: `views`
2020-12-08 21:32:44 +0100 <Uniaika> ;)
2020-12-08 21:33:29 +0100 <iqubic> I just mean "view is to (^.) as views is to ...?"
2020-12-08 21:34:14 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 21:34:29 +0100crblmr(~carbolyme@matrix.dropacid.net) (Remote host closed the connection)
2020-12-08 21:34:46 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 21:35:49 +0100 <dolio> There probably isn't one, because views has 3 arguments.
2020-12-08 21:36:10 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-08 21:36:12 +0100 <iqubic> Right.
2020-12-08 21:36:47 +0100xff0x(~fox@2001:1a81:5297:ce00:2295:5eb3:713f:d20) (Ping timeout: 260 seconds)
2020-12-08 21:37:37 +0100xff0x(~fox@2001:1a81:5297:ce00:6b5f:a8b6:2b81:7cdd)
2020-12-08 21:39:32 +0100 <maerwald> is (^.^) taken?
2020-12-08 21:40:05 +0100tungki(uid469991@gateway/web/irccloud.com/x-xbivqosqcbdjuayc) (Quit: Connection closed for inactivity)
2020-12-08 21:40:51 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 21:40:56 +0100 <dminuoso> https://hackage.haskell.org/package/cubicbezier-0.6.0.6/docs/Geom2D.html#v:-94-.-94-
2020-12-08 21:41:15 +0100 <dminuoso> Wow how has that library 11k downloads :o
2020-12-08 21:41:21 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 21:41:43 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 21:42:55 +0100 <iqubic> How is that number computed?
2020-12-08 21:43:42 +0100 <merijn> mostly bots :p
2020-12-08 21:44:42 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 21:44:42 +0100 <maerwald> iqubic: (+1) I think
2020-12-08 21:45:05 +0100 <iqubic> What is (+1)? How does that help me?
2020-12-08 21:45:16 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 21:46:18 +0100 <merijn> Incremented one at a time :p
2020-12-08 21:47:46 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-08 21:48:49 +0100LKoen(~LKoen@228.162.9.109.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-12-08 21:54:53 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-12-08 21:55:01 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-08 21:55:03 +0100aplainze1akind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-08 21:55:27 +0100aplainze1akindaplainzetakind
2020-12-08 21:57:29 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Read error: Connection reset by peer)
2020-12-08 21:57:41 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-08 21:57:42 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 21:58:15 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 21:59:33 +0100xff0x(~fox@2001:1a81:5297:ce00:6b5f:a8b6:2b81:7cdd) (Remote host closed the connection)
2020-12-08 21:59:50 +0100xff0x(~fox@2001:1a81:5297:ce00:950a:3e50:5ed2:fa3d)
2020-12-08 22:01:04 +0100 <koz_> Can someone help me understand what this says vis-a-vis the stack StateT s Logic? http://hackage.haskell.org/package/logict-0.7.0.3/docs/src/Control.Monad.Logic.Class.html#line-121
2020-12-08 22:01:30 +0100 <koz_> I don't get what the note above the ReaderT e m (which the docs say applies to StateT as well) actually means.
2020-12-08 22:01:35 +0100crblmr(~carbolyme@matrix.dropacid.net) (Remote host closed the connection)
2020-12-08 22:02:41 +0100urek(~urek@179.182.119.135) (Ping timeout: 260 seconds)
2020-12-08 22:02:42 +0100alx741(~alx741@181.196.69.205) (Ping timeout: 256 seconds)
2020-12-08 22:03:30 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2020-12-08 22:04:57 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-08 22:05:42 +0100knupfer(~Thunderbi@200116b82cfdb2004ca865631e4ce9c2.dip.versatel-1u1.de) (Quit: knupfer)
2020-12-08 22:06:02 +0100knupfer(~Thunderbi@200116b82cfdb20099e23f0da52ebb09.dip.versatel-1u1.de)
2020-12-08 22:08:48 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-qqpsupzzdwjcsdle) (Quit: Connection closed for inactivity)
2020-12-08 22:09:42 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-08 22:09:52 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 22:10:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-115-108.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-12-08 22:11:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-115-108.w86-198.abo.wanadoo.fr)
2020-12-08 22:11:15 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) (Remote host closed the connection)
2020-12-08 22:12:01 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-12-08 22:12:10 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-12-08 22:12:22 +0100son0p(~son0p@181.136.122.143)
2020-12-08 22:12:54 +0100Deide(~Deide@217.155.19.23)
2020-12-08 22:14:25 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 22:14:28 +0100Wuzzy(~Wuzzy@p549c9bc8.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2020-12-08 22:15:21 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) (Remote host closed the connection)
2020-12-08 22:15:34 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-12-08 22:17:34 +0100carlomagno1(~cararell@148.87.23.11)
2020-12-08 22:18:55 +0100 <merijn> koz_: That all alternatives get the same input state, I think?
2020-12-08 22:19:04 +0100carlomagno(~cararell@148.87.23.11) (Ping timeout: 258 seconds)
2020-12-08 22:19:15 +0100 <koz_> merijn: So basically, you can't actually change out the state mid-computation?
2020-12-08 22:19:27 +0100 <koz_> AKA the state you provide for 'runStateT' will be the one everywhere?
2020-12-08 22:19:32 +0100 <merijn> not sure
2020-12-08 22:22:04 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-08 22:22:37 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-pjfkrpyzckdbsmgh)
2020-12-08 22:22:58 +0100notzmv(~user@unaffiliated/zmv)
2020-12-08 22:23:42 +0100knupfer(~Thunderbi@200116b82cfdb20099e23f0da52ebb09.dip.versatel-1u1.de) (Quit: knupfer)
2020-12-08 22:23:44 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-08 22:24:05 +0100knupfer(~Thunderbi@200116b82cfdb2002579ab80824d82fa.dip.versatel-1u1.de)
2020-12-08 22:25:12 +0100acidjnk_new(~acidjnk@p200300d0c719ff8621cd498ce205b85b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-12-08 22:28:46 +0100michalz`(~user@185.246.204.61)
2020-12-08 22:30:31 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Read error: Connection reset by peer)
2020-12-08 22:30:35 +0100cads2(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-08 22:30:46 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 22:31:20 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 22:31:24 +0100michalz(~user@185.246.204.56) (Remote host closed the connection)
2020-12-08 22:31:44 +0100teardown(~user@gateway/tor-sasl/mrush)
2020-12-08 22:34:26 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds)
2020-12-08 22:35:07 +0100knupfer(~Thunderbi@200116b82cfdb2002579ab80824d82fa.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-12-08 22:37:59 +0100urek(~urek@179.182.119.135)
2020-12-08 22:41:32 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 272 seconds)
2020-12-08 22:41:50 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 22:42:10 +0100sweater(~sweater@206.81.18.26)
2020-12-08 22:42:13 +0100jonn(~sweater@206.81.18.26) (Ping timeout: 260 seconds)
2020-12-08 22:42:21 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 22:43:28 +0100cads2(~cads@ip-64-72-99-232.lasvegas.net) (Read error: Connection reset by peer)
2020-12-08 22:43:38 +0100cads2(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-08 22:45:28 +0100alx741(~alx741@181.196.69.205)
2020-12-08 22:45:45 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-12-08 22:46:08 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-08 22:47:43 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-08 22:48:23 +0100borne(~fritjof@200116b86420b200bcbe2553f445a41b.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2020-12-08 22:49:01 +0100encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) ()
2020-12-08 22:49:31 +0100fendor(~fendor@77.119.128.243.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-08 22:51:07 +0100fendor(~fendor@77.119.128.243.wireless.dyn.drei.com)
2020-12-08 22:51:08 +0100seasonal-staffglguy
2020-12-08 22:51:10 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 22:53:30 +0100justsomeguy(~justsomeg@216.186.218.241)
2020-12-08 22:53:30 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-12-08 22:53:30 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-08 22:53:45 +0100fiQ2(~fiQ@mirkk.ninja) (Remote host closed the connection)
2020-12-08 22:53:55 +0100fiQ2(~fiQ@mirkk.ninja)
2020-12-08 22:54:04 +0100Chousuke(oranenj@coffee.modeemi.fi) (Ping timeout: 246 seconds)
2020-12-08 22:55:04 +0100Chousuke(oranenj@coffee.modeemi.fi)
2020-12-08 22:56:08 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 22:56:43 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 22:57:06 +0100carlomagno1(~cararell@148.87.23.11) (Quit: Leaving.)
2020-12-08 23:01:37 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2020-12-08 23:02:54 +0100coot_(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 23:03:14 +0100olligobber(~olligobbe@unaffiliated/olligobber)
2020-12-08 23:03:34 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 23:03:34 +0100coot_coot
2020-12-08 23:05:17 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2020-12-08 23:05:27 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 23:06:07 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 23:06:55 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-08 23:07:13 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-08 23:07:23 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-08 23:07:52 +0100coot(~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
2020-12-08 23:07:54 +0100rprije(~rprije@14-201-170-17.tpgi.com.au)
2020-12-08 23:08:52 +0100mounty(~mounty@2001:8000:2f59:0:955e:b3d4:6deb:61b5)
2020-12-08 23:13:25 +0100columbarius(~columbari@94.134.93.69) (Ping timeout: 264 seconds)
2020-12-08 23:15:22 +0100columbarius(~columbari@94.134.93.105)
2020-12-08 23:18:24 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-08 23:19:38 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Read error: Connection reset by peer)
2020-12-08 23:20:15 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-12-08 23:20:28 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 23:22:02 +0100glguyseasonal-staff
2020-12-08 23:22:46 +0100fendor(~fendor@77.119.128.243.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-08 23:23:53 +0100ADG1089(uid455466@gateway/web/irccloud.com/x-snrmhjgbftnsehrc) (Quit: Connection closed for inactivity)
2020-12-08 23:25:00 +0100ericsagn1(~ericsagne@2405:6580:0:5100:1635:4394:f86d:e4ee) (Ping timeout: 258 seconds)
2020-12-08 23:26:53 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2020-12-08 23:27:12 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-12-08 23:28:43 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com)
2020-12-08 23:29:39 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-08 23:30:11 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Quit: Leaving)
2020-12-08 23:30:18 +0100Martinsos(~user@cpe-188-129-36-113.dynamic.amis.hr) (Remote host closed the connection)
2020-12-08 23:34:32 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-12-08 23:34:51 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-08 23:35:09 +0100carlomagno(~cararell@148.87.23.4)
2020-12-08 23:35:44 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-12-08 23:36:44 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-08 23:37:04 +0100carlomagno(~cararell@148.87.23.4) (Client Quit)
2020-12-08 23:37:34 +0100ericsagn1(~ericsagne@2405:6580:0:5100:842e:bf6c:baf1:11c6)
2020-12-08 23:37:59 +0100leungbk(~user@2603-8000-f144-2028-5f51-12f7-6de3-c4e6.res6.spectrum.com) (Quit: ERC (IRC client for Emacs 28.0.50))
2020-12-08 23:39:43 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 23:41:41 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-08 23:42:05 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-12-08 23:42:10 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-12-08 23:44:37 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-08 23:45:10 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-08 23:45:56 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-08 23:48:58 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-08 23:50:17 +0100dhil(~dhil@195.213.192.34) (Quit: Leaving)
2020-12-08 23:52:09 +0100 <iqubic> Why does this library exist? It's just so pointless: https://hackage.haskell.org/package/plumbers-0.0.4/docs/Control-Plumbers.html
2020-12-08 23:52:33 +0100conal(~conal@64.71.133.70)
2020-12-08 23:54:47 +0100michalz`(~user@185.246.204.61) (Remote host closed the connection)
2020-12-08 23:55:04 +0100b3z(~b3z@vmd41962.contaboserver.net) (Ping timeout: 260 seconds)
2020-12-08 23:55:04 +0100pierrot(~pi@unaffiliated/pierrot) (Ping timeout: 260 seconds)
2020-12-08 23:55:06 +0100 <texasmynsted> ha
2020-12-08 23:55:12 +0100b3z(~b3z@vmd41962.contaboserver.net)
2020-12-08 23:55:50 +0100pierrot(~pi@unaffiliated/pierrot)
2020-12-08 23:55:59 +0100 <merijn> iqubic: Clearly you haven't yet browsed Hackage's ACME category
2020-12-08 23:56:10 +0100 <iqubic> I should do that.
2020-12-08 23:56:22 +0100[exa](exa@unaffiliated/exa/x-5381537) (Ping timeout: 265 seconds)
2020-12-08 23:56:37 +0100quaestor(~quaestor@griffith.christophrauch.de) (Ping timeout: 264 seconds)
2020-12-08 23:56:46 +0100 <merijn> https://hackage.haskell.org/packages/tag/acme
2020-12-08 23:57:14 +0100borne(~fritjof@200116b86420b200bcbe2553f445a41b.dip.versatel-1u1.de)
2020-12-08 23:57:52 +0100 <hpc> everyone has their favorite
2020-12-08 23:58:04 +0100 <hpc> mine is schoenfinkel
2020-12-08 23:58:18 +0100 <merijn> acme-dont and acme-LookOfDisapproval are nice too :p
2020-12-08 23:58:42 +0100L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 256 seconds)
2020-12-08 23:58:45 +0100quaestor(~quaestor@griffith.christophrauch.de)
2020-12-08 23:59:15 +0100son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-12-08 23:59:37 +0100 <hpc> acme-dont is also a perl module