2021/09/02

2021-09-02 00:00:43 +0200 <meejah> _should_ be "annoyance" but that's for ravens
2021-09-02 00:02:42 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 00:03:36 +0200qwedfg(~qwedfg@user/qwedfg) (Quit: ZNC - https://znc.in)
2021-09-02 00:04:27 +0200qwedfg(~qwedfg@user/qwedfg)
2021-09-02 00:07:46 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-02 00:08:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
2021-09-02 00:09:12 +0200desantra(~skykanin@user/skykanin)
2021-09-02 00:09:37 +0200BestSteve(~beststeve@220-135-3-239.HINET-IP.hinet.net)
2021-09-02 00:14:34 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-02 00:27:55 +0200son0p(~ff@181.136.122.143)
2021-09-02 00:31:16 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-09-02 00:32:55 +0200thyriaen(~thyriaen@x4db75db3.dyn.telefonica.de)
2021-09-02 00:33:15 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 00:34:55 +0200 <tdammers> herd?
2021-09-02 00:34:57 +0200 <tdammers> pack?
2021-09-02 00:35:01 +0200 <tdammers> school?
2021-09-02 00:35:03 +0200 <tdammers> idk
2021-09-02 00:36:38 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
2021-09-02 00:37:54 +0200 <SrPx> LPT: when implementing a linear λ-calculus, go for name-based substitutions instead of bruijn indices or levels. That's the most efficient solution, because, as long as all variable names are unique, there can't be variable capture, and you avoid having expensive shifting passes.
2021-09-02 00:38:22 +0200 <hpc> a gaggle of goats
2021-09-02 00:40:29 +0200 <hpc> SrPx: added bonus, you can use the names from the code itself and it's easier to inspect the output
2021-09-02 00:40:37 +0200qwedfg(~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
2021-09-02 00:40:49 +0200 <SrPx> yep
2021-09-02 00:41:34 +0200 <hpc> iirc there's an esolang that's just lambda calculus with de bruijn indices
2021-09-02 00:41:46 +0200 <hpc> not even anything special on top of that
2021-09-02 00:42:37 +0200qwedfg(~qwedfg@user/qwedfg)
2021-09-02 00:48:16 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-09-02 00:50:14 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-02 00:50:31 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 00:55:30 +0200bradyt(~bradyt@user/bradyt)
2021-09-02 00:55:53 +0200 <bradyt> can i generate C code from Haskell, to access via another language's FFI?
2021-09-02 00:56:36 +0200 <bradyt> like this structure? https://github.com/dart-lang/samples/tree/master/ffi/structs/structs_library
2021-09-02 00:57:57 +0200 <pavonia> C code or object code?
2021-09-02 00:58:11 +0200 <hpc> i assume the goal is to call dart code from haskell code?
2021-09-02 00:58:16 +0200 <monochrom> Not sure what that URL is trying to exemplify.
2021-09-02 00:58:33 +0200 <bradyt> i think eventually the Dart code calls .so or .dylib
2021-09-02 00:58:56 +0200 <bradyt> the code in ../structs.dart calls the C library files
2021-09-02 00:59:16 +0200 <Lycurgus> did you see my response in #taskwarrior?
2021-09-02 00:59:35 +0200 <monochrom> There are programs like hsc2hs and c2hs that help bridge between C structs and Haskell types.
2021-09-02 00:59:55 +0200 <bradyt> Lycurgus: oh, i wasn't sure if that implies it can /output/ C code
2021-09-02 01:00:07 +0200acidjnk_new(~acidjnk@p200300d0c720300659598fb61e40d514.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-02 01:00:35 +0200 <Lycurgus> yeah those (the ones monochrom just mentioned) where the pkgs whose names escaped me when i referred to ffi
2021-09-02 01:00:38 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-09-02 01:00:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 01:00:44 +0200 <bradyt> like, can i write Haskell libraries, and generate C libraries
2021-09-02 01:00:58 +0200 <Lycurgus> libs is libs
2021-09-02 01:01:00 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-09-02 01:01:10 +0200 <Lycurgus> it's all binary when i comes down it
2021-09-02 01:01:36 +0200 <monochrom> Not sure why you don't accept "asm code *.so files callable from C"
2021-09-02 01:01:39 +0200 <Lycurgus> the source language becomes irrelevant
2021-09-02 01:01:53 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-02 01:02:03 +0200 <bradyt> i haven't checked them out, but "c2hs" i was just assuming it was unidirectional
2021-09-02 01:02:31 +0200 <monochrom> Although, in practice, for now, making a *.so from GHC or cabal-install isn't entirely seamless either.
2021-09-02 01:03:27 +0200 <Lycurgus> it looks like stack builds a monolithic exe static binding the libs
2021-09-02 01:04:38 +0200 <monochrom> Oh yeah this is where you learn the lesson that meaningful names are misleading names.
2021-09-02 01:04:46 +0200fendor(~fendor@91.141.68.147.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-09-02 01:04:56 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-09-02 01:09:40 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-09-02 01:11:27 +0200 <bradyt> okay, i will keep working at some sort of minimal example. someone said chicken scheme could do it, but that hasn't been sufficient motivation yet.
2021-09-02 01:11:39 +0200 <bradyt> multitasking, in and out, sorry
2021-09-02 01:12:27 +0200NinjaTrappeur(~ninja@user/ninjatrappeur) (Ping timeout: 240 seconds)
2021-09-02 01:13:22 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Ping timeout: 245 seconds)
2021-09-02 01:16:04 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-02 01:17:03 +0200 <sm> messing around with haskell foundation finance reports: https://github.com/simonmichael/haskell-finance
2021-09-02 01:23:27 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-09-02 01:23:59 +0200renzhi(~xp@2607:fa49:6500:3d00::d986)
2021-09-02 01:27:35 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-02 01:33:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 01:33:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 01:33:04 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 01:34:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-02 01:34:27 +0200wroathe(~wroathe@user/wroathe) (Client Quit)
2021-09-02 01:36:19 +0200fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
2021-09-02 01:36:43 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 01:36:43 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 01:36:43 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 01:42:25 +0200Gurkenglas(~Gurkengla@dslb-088-075-022-191.088.075.pools.vodafone-ip.de) (Ping timeout: 244 seconds)
2021-09-02 01:45:51 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 01:45:55 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 01:48:39 +0200alx741(~alx741@186.178.109.154)
2021-09-02 01:49:46 +0200 <glguy> sm: Interesting. I've already learned about ==*; I didn't know about the subaccount inclusive assertions
2021-09-02 01:49:54 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Remote host closed the connection)
2021-09-02 01:50:08 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 01:50:10 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-09-02 01:50:34 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2021-09-02 01:50:42 +0200 <sm> glguy: yup, that's the *
2021-09-02 01:50:49 +0200 <glguy> The first initial fundraising transaction incorporates everything into one and loses the connection that the last two postings are grouped and expected to balance to 0 in particular. That usually results in me wanting to split the transaction up
2021-09-02 01:51:38 +0200 <glguy> This seems to mix assets being earmarked with how assests are held. assets:general and assets:ghc
2021-09-02 01:51:59 +0200 <glguy> I run into this with my use where I have money *in* checking but *for* a particular person
2021-09-02 01:52:39 +0200 <glguy> (but I grant that that's out of scope for this document)
2021-09-02 01:52:39 +0200 <sm> I agree with both points, to make this a little more realistic it could be assets:checking:ghc, say
2021-09-02 01:53:43 +0200Hydrazer(~Hydrazer@S010684c9b26eee6d.cg.shawcable.net)
2021-09-02 01:54:34 +0200oxide(~lambda@user/oxide) (Ping timeout: 252 seconds)
2021-09-02 01:55:07 +0200 <sm> could also use [ ] to enforce those two postings balancing
2021-09-02 01:55:20 +0200oxide(~lambda@user/oxide)
2021-09-02 01:55:28 +0200 <glguy> oh?, what would that look like?
2021-09-02 01:56:23 +0200 <Hydrazer> does anyone know of a shorter program that doesn't throw any errors https://paste.tomsmeding.com/4eDOmAZQ
2021-09-02 01:56:46 +0200 <sm> glguy, like this:
2021-09-02 01:56:49 +0200smsent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/23a867063035b7f7b1eb8bc687eab59f5d04…
2021-09-02 01:57:13 +0200 <glguy> Does that make the bottom two postings less "real"?
2021-09-02 01:57:14 +0200 <sm> ("bracketed virtual postings", bit of a gimmick)
2021-09-02 01:57:41 +0200 <sm> it makes them filterable out by the -R/--real flag yes, otherwise they're just as good as a regular posting
2021-09-02 01:57:56 +0200 <glguy> Are they checked as balancing because they are [] and not ()?
2021-09-02 01:58:03 +0200 <sm> exactly
2021-09-02 01:59:11 +0200 <sm> probably just a separate transaction is better
2021-09-02 02:01:10 +0200SystemFFan(~SystemFFa@188.70.6.7) (Ping timeout: 240 seconds)
2021-09-02 02:01:44 +0200 <glguy> Aw, shoot. hledger thinks ==* means something else
2021-09-02 02:01:47 +0200 <glguy> err
2021-09-02 02:01:49 +0200 <monochrom> Hydrazer: If a main is not required, I would try an empty file. If a module declaration is not counted toward code size, I would try "module M where".
2021-09-02 02:01:50 +0200 <glguy> ledger does
2021-09-02 02:02:34 +0200 <sm> [OT] ledger doesn't parse it, yes. If you need that sticking to = is sometimes best
2021-09-02 02:02:35 +0200 <glguy> Hydrazer: main=main
2021-09-02 02:03:39 +0200 <glguy> sm: I want ==* because I want to assert that an event is closed out when I belive that to be the case
2021-09-02 02:03:59 +0200 <glguy> and I have an account tree: Events:<Event Name>:<Person>
2021-09-02 02:04:17 +0200 <glguy> so I'm looking at being able to write: Events:Summer Camp 2021 ==* $0
2021-09-02 02:05:03 +0200 <glguy> I only really care about ledger compatibility because my spacemaces has ledger-mode
2021-09-02 02:05:16 +0200 <glguy> I should see about getting hledger in its place
2021-09-02 02:05:23 +0200 <johnw> noooo.....
2021-09-02 02:05:32 +0200glguyhides
2021-09-02 02:05:42 +0200 <sm> doh! act natural!
2021-09-02 02:05:55 +0200 <glguy> oh, hi johnw; I meant my friend might try to do that thing
2021-09-02 02:06:01 +0200 <johnw> :(
2021-09-02 02:07:55 +0200 <sm> howdy john
2021-09-02 02:08:05 +0200Hydrazer(~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) (Ping timeout: 256 seconds)
2021-09-02 02:15:28 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds)
2021-09-02 02:19:17 +0200vysn(~vysn@user/vysn) (Ping timeout: 245 seconds)
2021-09-02 02:19:57 +0200 <glguy> sm: Have I showed this to you before? https://gist.github.com/glguy/e996b1ea2fef5dd5e8a32f39da8a3f78
2021-09-02 02:21:19 +0200 <johnw> sm: hi!
2021-09-02 02:23:28 +0200 <sm> perhaps not glguy, nice!
2021-09-02 02:24:34 +0200VoidNoir0(~VoidNoir0@72.80.203.52)
2021-09-02 02:24:50 +0200VoidNoir0(~VoidNoir0@72.80.203.52) (Client Quit)
2021-09-02 02:26:26 +0200VoidNoir0(~VoidNoir0@72.80.203.52)
2021-09-02 02:27:07 +0200pbrisbin(~patrick@pool-108-16-214-93.phlapa.fios.verizon.net) (Ping timeout: 245 seconds)
2021-09-02 02:27:28 +0200VoidNoir0(~VoidNoir0@72.80.203.52) (Client Quit)
2021-09-02 02:27:43 +0200OscarH(~OscarH@2a02:c7f:a0da:ae00:ba27:ebff:fe84:d2f4)
2021-09-02 02:29:06 +0200VoidNoir0(~VoidNoir0@72.80.203.52)
2021-09-02 02:29:50 +0200 <glguy> OH, we're not in #plaintextaccounting
2021-09-02 02:30:35 +0200 <sm> right :) but it's quiet
2021-09-02 02:30:54 +0200 <glguy> Well, i was going to share *haskell source code* so still on topic: https://gist.github.com/glguy/fe5ea89e8d447874b704326e889d7f4b
2021-09-02 02:31:13 +0200 <sm> +1
2021-09-02 02:34:28 +0200 <sm> nice scripts! I'll link em
2021-09-02 02:39:01 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-09-02 02:40:13 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-02 02:43:19 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-09-02 02:45:51 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-02 02:47:15 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-09-02 02:47:54 +0200desantra(~skykanin@user/skykanin) (Quit: WeeChat 3.2)
2021-09-02 02:50:14 +0200aegon(~mike@174.127.249.180) (Quit: leaving)
2021-09-02 02:59:23 +0200pzanco(~Android@187.104.158.159)
2021-09-02 03:02:35 +0200thyriaen(~thyriaen@x4db75db3.dyn.telefonica.de) (Remote host closed the connection)
2021-09-02 03:05:36 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
2021-09-02 03:07:09 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru) (Ping timeout: 244 seconds)
2021-09-02 03:16:07 +0200neurocyte5(~neurocyte@46.243.81.86)
2021-09-02 03:16:07 +0200neurocyte5(~neurocyte@46.243.81.86) (Changing host)
2021-09-02 03:16:07 +0200neurocyte5(~neurocyte@user/neurocyte)
2021-09-02 03:18:10 +0200neurocyte(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-09-02 03:18:10 +0200neurocyte5neurocyte
2021-09-02 03:21:39 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-02 03:29:14 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-09-02 03:30:02 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-02 03:30:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 03:31:55 +0200mei(~mei@user/mei) (Ping timeout: 252 seconds)
2021-09-02 03:34:07 +0200xff0x(~xff0x@2001:1a81:52f2:5d00:a43c:729f:4397:fe8e) (Ping timeout: 252 seconds)
2021-09-02 03:36:00 +0200xff0x(~xff0x@2001:1a81:5329:9c00:3941:fe2c:440c:b590)
2021-09-02 03:36:13 +0200NinjaTrappeur(~ninja@user/ninjatrappeur)
2021-09-02 03:36:22 +0200dmj`peeks in
2021-09-02 03:41:43 +0200vysn(~vysn@user/vysn)
2021-09-02 03:42:16 +0200alx741(~alx741@186.178.109.154) (Quit: alx741)
2021-09-02 03:45:10 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
2021-09-02 03:46:40 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 03:49:55 +0200pzanco(~Android@187.104.158.159) (Quit: -a- IRC for Android 2.1.59)
2021-09-02 03:51:10 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-09-02 03:59:47 +0200Hydrazer(~Hydrazer@S010684c9b26eee6d.cg.shawcable.net)
2021-09-02 04:00:28 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-09-02 04:01:48 +0200Feuermagier(~Feuermagi@user/feuermagier)
2021-09-02 04:03:03 +0200 <Hydrazer> does anyone know if there is a builtin that does something gets the head and tail of a list as a tuple? something like https://paste.tomsmeding.com/p8J4D5zB
2021-09-02 04:03:22 +0200 <Hydrazer> that gets*
2021-09-02 04:04:30 +0200 <Hydrazer> or maybe as a list [[1], [2, 3][
2021-09-02 04:05:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-02 04:05:06 +0200wirez(~wirez@user/wirez)
2021-09-02 04:05:10 +0200 <wirez> what do you call a program that's a part of a suite and works with the other programs in the suite?
2021-09-02 04:05:40 +0200 <Axman6> This is the weirdest setup for a joke I've heard for a long time...
2021-09-02 04:06:01 +0200 <Hydrazer> lol
2021-09-02 04:06:03 +0200 <wirez> component seems too generic because programs can have components
2021-09-02 04:06:22 +0200 <wirez> Axman6: XD
2021-09-02 04:06:28 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru)
2021-09-02 04:06:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
2021-09-02 04:07:25 +0200sayola(~vekto@dslb-088-064-186-138.088.064.pools.vodafone-ip.de)
2021-09-02 04:07:46 +0200vicfred(~vicfred@user/vicfred)
2021-09-02 04:10:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-02 04:10:42 +0200dsrt^(~dsrt@wsip-98-188-244-188.mc.at.cox.net) (Ping timeout: 244 seconds)
2021-09-02 04:12:07 +0200 <sayola> there isnt an option where i dont have to pack this into a newtype to make an instance, or is there?
2021-09-02 04:12:07 +0200 <sayola> newtype Foo a = Foo (Bar (Baz a))
2021-09-02 04:12:07 +0200 <sayola> instance Functor Foo
2021-09-02 04:12:15 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 244 seconds)
2021-09-02 04:13:18 +0200 <dsal> sayola: Can you expand on your question? That is a newtype.
2021-09-02 04:13:40 +0200typedfern__(~Typedfern@28.red-83-57-142.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2021-09-02 04:14:18 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-09-02 04:14:59 +0200 <Axman6> what you have is just Compose Bar Baz
2021-09-02 04:15:03 +0200 <sayola> dsal: i would like to instance `Bar (Baz a)` with `a` as the free variable.
2021-09-02 04:15:09 +0200 <Axman6> which is a Functor if Bar and Baz are Functors
2021-09-02 04:16:25 +0200 <sayola> i meant for any instance that is requiring * -> * kind, when the type variable is not on the topmost level
2021-09-02 04:16:43 +0200Hydrazer(~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) (Ping timeout: 256 seconds)
2021-09-02 04:16:50 +0200 <Axman6> :t ala
2021-09-02 04:16:51 +0200 <lambdabot> (Functor f, Rewrapped s t, Rewrapped t s) => (Unwrapped s -> s) -> ((Unwrapped t -> t) -> f s) -> f (Unwrapped s)
2021-09-02 04:17:00 +0200 <Axman6> :t ala Compose
2021-09-02 04:17:01 +0200 <lambdabot> error:
2021-09-02 04:17:02 +0200 <lambdabot> • Data constructor not in scope: Compose :: Unwrapped s -> s
2021-09-02 04:17:02 +0200 <lambdabot> • Perhaps you meant variable ‘icompose’ (imported from Control.Lens)
2021-09-02 04:17:15 +0200 <Axman6> %:t ala Compose
2021-09-02 04:17:27 +0200 <Axman6> % :t ala Compose
2021-09-02 04:17:28 +0200 <yahb> Axman6: ; <interactive>:1:5: error:; * Data constructor not in scope: Compose :: Unwrapped s -> s; * Perhaps you meant one of these: variable `M.compose' (imported from Data.Map), variable `IM.compose' (imported from Data.IntMap), variable `icompose' (imported from Control.Lens)
2021-09-02 04:17:36 +0200 <Axman6> :(
2021-09-02 04:23:02 +0200 <Axman6> @hoogle Compose
2021-09-02 04:23:02 +0200 <lambdabot> module Data.Functor.Compose
2021-09-02 04:23:02 +0200 <lambdabot> Data.Functor.Compose newtype Compose f g a
2021-09-02 04:23:02 +0200 <lambdabot> Data.Functor.Compose Compose :: f (g a) -> Compose f g a
2021-09-02 04:23:04 +0200td_(~td@94.134.91.219) (Ping timeout: 252 seconds)
2021-09-02 04:23:11 +0200 <Axman6> % import Data.Functor.Compose
2021-09-02 04:23:12 +0200 <yahb> Axman6:
2021-09-02 04:23:15 +0200 <sayola> isnt this defeating the point, since its packed inside another newtype? kinda would like to have it blank. or am just not understanding Compose
2021-09-02 04:23:18 +0200 <Axman6> % :t ala Compose
2021-09-02 04:23:18 +0200 <yahb> Axman6: forall {k2} {k3} {k} {k1} {f :: * -> *} {f'1 :: k2 -> *} {g'1 :: k3 -> k2} {a'1 :: k3} {f'2 :: k -> *} {g'2 :: k1 -> k} {a'2 :: k1}. Functor f => ((f'1 (g'1 a'1) -> Compose f'1 g'1 a'1) -> f (Compose f'2 g'2 a'2)) -> f (f'2 (g'2 a'2))
2021-09-02 04:23:53 +0200 <Axman6> I don't understand the question
2021-09-02 04:24:17 +0200 <Axman6> but my point is that the type Compose Bar Baz a is the same as Foo a, but comes with the Functor instance for free
2021-09-02 04:24:28 +0200 <sayola> ok
2021-09-02 04:24:35 +0200 <sayola> but i dont want Foo
2021-09-02 04:24:36 +0200 <Axman6> assuming Bar and Baz are Functors
2021-09-02 04:24:51 +0200td_(~td@muedsl-82-207-238-003.citykom.de)
2021-09-02 04:26:01 +0200 <sayola> Functors is only an example. i mean for instancing anything in general
2021-09-02 04:28:10 +0200 <sayola> take this:
2021-09-02 04:28:10 +0200 <sayola> instance Functor (Bar (Baz a))
2021-09-02 04:28:10 +0200 <sayola> `a` is supposed to be the free variable for functor. can i possibly write the instance declaration so that it is? and without having to work around with a newtype
2021-09-02 04:28:41 +0200 <Axman6> no
2021-09-02 04:28:46 +0200 <sayola> thank you
2021-09-02 04:28:47 +0200typedfern__(~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net)
2021-09-02 04:28:49 +0200 <sayola> all i wanted to know
2021-09-02 04:32:13 +0200TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-09-02 04:32:24 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
2021-09-02 04:38:35 +0200hexfive(~eric@50.35.83.177)
2021-09-02 04:40:34 +0200VoidNoir0(~VoidNoir0@72.80.203.52) (Quit: Connection closed)
2021-09-02 04:42:32 +0200mmalter(~mmalter@88.171.43.194) (Remote host closed the connection)
2021-09-02 04:43:37 +0200VoidNoir0(~VoidNoir0@72.80.203.52)
2021-09-02 04:50:47 +0200hexfive(~eric@50.35.83.177) (Quit: WeeChat 3.0.1)
2021-09-02 04:51:47 +0200OscarH(~OscarH@2a02:c7f:a0da:ae00:ba27:ebff:fe84:d2f4) (Ping timeout: 245 seconds)
2021-09-02 04:54:21 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-09-02 05:10:02 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 245 seconds)
2021-09-02 05:11:26 +0200bradyt_(~bradyt@user/bradyt)
2021-09-02 05:11:28 +0200otto_s(~user@p5de2f920.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-02 05:11:49 +0200bradyt(~bradyt@user/bradyt) (Quit: bradyt)
2021-09-02 05:13:15 +0200otto_s(~user@p5de2f28d.dip0.t-ipconnect.de)
2021-09-02 05:18:16 +0200sleblanc(~sleblanc@user/sleblanc)
2021-09-02 05:21:22 +0200edwtjo(~edwtjo@user/edwtjo) (Ping timeout: 240 seconds)
2021-09-02 05:22:29 +0200bradyt_(~bradyt@user/bradyt) (Quit: "")
2021-09-02 05:23:44 +0200edwtjo(~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se)
2021-09-02 05:23:44 +0200edwtjo(~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) (Changing host)
2021-09-02 05:23:44 +0200edwtjo(~edwtjo@user/edwtjo)
2021-09-02 05:25:24 +0200OscarH(~OscarH@2a02:c7f:a0da:ae00:ba27:ebff:fe84:d2f4)
2021-09-02 05:32:40 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds)
2021-09-02 05:39:21 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-09-02 05:40:35 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
2021-09-02 05:41:43 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-02 05:43:48 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-02 05:47:33 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 05:48:01 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 05:49:42 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-09-02 05:51:35 +0200daylily(~daylily@104.225.153.233.16clouds.com)
2021-09-02 05:51:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-02 05:52:10 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-02 05:52:43 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-09-02 05:54:40 +0200bradyt(~bradyt@user/bradyt)
2021-09-02 05:57:35 +0200bradyt(~bradyt@user/bradyt) (Client Quit)
2021-09-02 05:58:41 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-09-02 06:01:37 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 06:02:22 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-09-02 06:02:51 +0200daylily(~daylily@104.225.153.233.16clouds.com) (Quit: Igloo IRC: https://iglooirc.com)
2021-09-02 06:03:00 +0200daylily(~daylily@104.225.153.233.16clouds.com)
2021-09-02 06:03:10 +0200sleblanc(~sleblanc@user/sleblanc) (Ping timeout: 252 seconds)
2021-09-02 06:07:46 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-09-02 06:08:10 +0200daylily(~daylily@104.225.153.233.16clouds.com) (Ping timeout: 240 seconds)
2021-09-02 06:14:06 +0200Skyfire(~pyon@user/pyon)
2021-09-02 06:18:07 +0200 <jle`> sayola: note it doesn't quite kind-check
2021-09-02 06:18:09 +0200 <jle`> :t fmap
2021-09-02 06:18:10 +0200 <lambdabot> Functor f => (a -> b) -> f a -> f b
2021-09-02 06:18:15 +0200 <jle`> what would "f" be?
2021-09-02 06:18:22 +0200 <jle`> er, maybe 'unify' is a better word
2021-09-02 06:18:52 +0200 <jle`> the haskell type system doesn't really know about functors or compositions and anything too advance, all it knows how to do is unify type variables
2021-09-02 06:19:09 +0200 <jle`> unification machine go brrr :)
2021-09-02 06:22:44 +0200 <Axman6> jle`: did you have any luck with hls?
2021-09-02 06:26:22 +0200 <sayola> jle`: `f` would be `Bar (Baz a)`, as in `fmap :: (a -> b) -> Bar (Baz a) -> Bar (Baz b)`. not sure if i'm missing something. category theory gives me headache.
2021-09-02 06:26:37 +0200 <jle`> sayola: that doesn't quite make sense for f
2021-09-02 06:26:41 +0200 <jle`> `f a`
2021-09-02 06:26:55 +0200 <jle`> if `f` is `Bar (Baz a)`, then that becomes `(Bar (Baz a)) a)` ?
2021-09-02 06:27:05 +0200 <sayola> yeah, thats kinda the issue
2021-09-02 06:27:05 +0200 <jle`> imagine a search-and-replace
2021-09-02 06:27:12 +0200 <jle`> where you insert 'Bar (Baz a)' for f
2021-09-02 06:27:19 +0200 <jle`> it doesn't quite make sense :)
2021-09-02 06:27:33 +0200 <Axman6> you can't insert Bar (Baz either
2021-09-02 06:27:33 +0200 <jle`> at least, it doesn't really work in haskell's type system
2021-09-02 06:27:41 +0200 <Axman6> but you can insert Compose Bar Baz
2021-09-02 06:27:41 +0200 <sayola> dunno. makes sense to me. dunno if it kills the compiler designer
2021-09-02 06:27:52 +0200 <jle`> sayola: yeah, it makes sense conceptually, but doesn't fit wiht haskell's type system
2021-09-02 06:27:59 +0200 <jle`> which is pretty simplistic
2021-09-02 06:28:06 +0200 <jle`> it isn't aware of any category theory
2021-09-02 06:28:07 +0200 <Axman6> its nothing to do with the compiler, it's how the langiage is defined, which is very consistent
2021-09-02 06:28:24 +0200 <jle`> the haskell system doesn't know any category theory concepts, or what makes sense in the domain you are using it for
2021-09-02 06:28:28 +0200 <jle`> it only knows how to "plug in" type variables
2021-09-02 06:28:44 +0200 <jle`> and if you can't phrase your thing in terms of plugging in type variables, the type system' can't really express it
2021-09-02 06:28:59 +0200 <jle`> Axman6: ah i haven't looked into it yet D:
2021-09-02 06:29:28 +0200 <sayola> ok. lets say that the higher end of type systems give me headache x)
2021-09-02 06:29:38 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-02 06:29:45 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Client Quit)
2021-09-02 06:30:01 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-02 06:30:54 +0200 <Axman6> D:
2021-09-02 06:31:21 +0200 <Axman6> sayola: this is a very long way from the higher end of the type system, this is simple dealing with brackets, it's primary school maths
2021-09-02 06:31:36 +0200 <jle`> sayola: heh, yeah at least in this case it looks like your intuition on what is tricky in substitution is a good one, since you've run into a wall that's really there :)
2021-09-02 06:32:02 +0200 <jle`> usually if i'm trying to unify something and it doesn't make sense or gives me pain in my soul, it's a sign to take a step back
2021-09-02 06:32:07 +0200 <Axman6> Like, not to be too rude, but this is an extremely simpleidea
2021-09-02 06:32:28 +0200 <jle`> hm, i do think that this is a non-obvious thing; this question does get asked a lot
2021-09-02 06:32:38 +0200 <jle`> unifying higher-kinded types is something that takes getting used to
2021-09-02 06:32:47 +0200 <Axman6> :t let fmapCompose f = getCompose . fmap f . Compose in fmapCompose
2021-09-02 06:32:48 +0200 <lambdabot> error:
2021-09-02 06:32:48 +0200 <lambdabot> Variable not in scope: getCompose :: f0 b1 -> c1
2021-09-02 06:32:55 +0200 <Axman6> % :t let fmapCompose f = getCompose . fmap f . Compose in fmapCompose
2021-09-02 06:32:56 +0200 <yahb> Axman6: forall {k1} {f :: k1 -> *} {g :: * -> k1} {a1} {a2}. Functor (Compose f g) => (a1 -> a2) -> f (g a1) -> f (g a2)
2021-09-02 06:33:28 +0200 <jle`> asking "what could f be" is the start of many tricky haskell puzzles :)
2021-09-02 06:34:37 +0200hgolden(~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Quit: Konversation terminated!)
2021-09-02 06:35:17 +0200oxide(~lambda@user/oxide)
2021-09-02 06:35:20 +0200 <Axman6> % :t let fmapCompose3 f = getCompose . getCompose . fmap f . Compose . Compose in fmapCompose
2021-09-02 06:35:21 +0200 <yahb> Axman6: ; <interactive>:1:78: error:; * Variable not in scope: fmapCompose; * Perhaps you meant `fmapCompose3' (line 1)
2021-09-02 06:35:26 +0200 <Axman6> % :t let fmapCompose3 f = getCompose . getCompose . fmap f . Compose . Compose in fmapCompose3
2021-09-02 06:35:26 +0200 <yahb> Axman6: forall {k1} {k2} {f :: k1 -> *} {g1 :: k2 -> k1} {g2 :: * -> k2} {a1} {a2}. Functor (Compose (Compose f g1) g2) => (a1 -> a2) -> f (g1 (g2 a1)) -> f (g1 (g2 a2))
2021-09-02 06:35:26 +0200ubert(~Thunderbi@77.119.167.244.wireless.dyn.drei.com)
2021-09-02 06:35:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-02 06:37:48 +0200 <sayola> Axman6: imo its just easy to miss something, considering the dimensions. e.g. am still not sure what the type system can and can not do. not to mention all the extensions that manipulate these options. and then figuring out how to pack the actual code into it.
2021-09-02 06:40:30 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 06:40:53 +0200 <sayola> btw. i just remembered newtype deriving ... probably the solution to the actual problem i have, if i'm not missing something x)
2021-09-02 06:44:00 +0200 <jle`> it depends on what you actually want to do i think; if you just want to map over the 'a' in Bar (Baz a), you can do fmap (fmap f)
2021-09-02 06:44:40 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2021-09-02 06:46:25 +0200 <sayola> assuming that Bar is also a functor
2021-09-02 06:46:33 +0200 <jle`> right
2021-09-02 06:47:19 +0200wirez(~wirez@user/wirez) (part)
2021-09-02 06:47:43 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
2021-09-02 06:50:35 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-09-02 06:58:27 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-09-02 07:02:48 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-09-02 07:06:44 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Read error: No route to host)
2021-09-02 07:07:53 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-09-02 07:08:21 +0200bradyt(~bradyt@user/bradyt)
2021-09-02 07:09:03 +0200daylily(~daylily@104.225.153.233.16clouds.com)
2021-09-02 07:12:35 +0200michalz(~michalz@185.246.204.61)
2021-09-02 07:13:02 +0200mei(~mei@user/mei)
2021-09-02 07:13:30 +0200mei(~mei@user/mei) (Client Quit)
2021-09-02 07:14:07 +0200daylily(~daylily@104.225.153.233.16clouds.com) (Ping timeout: 252 seconds)
2021-09-02 07:14:12 +0200jushur(~human@user/jushur) (Quit: ¯\_(ツ)_/¯)
2021-09-02 07:14:40 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-02 07:14:40 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-09-02 07:16:11 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 244 seconds)
2021-09-02 07:16:16 +0200jushur(~human@user/jushur)
2021-09-02 07:16:28 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-02 07:19:38 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-09-02 07:20:15 +0200mei(~mei@user/mei)
2021-09-02 07:25:52 +0200vysn(~vysn@user/vysn) (Ping timeout: 245 seconds)
2021-09-02 07:31:34 +0200juhp(~juhp@128.106.188.220) (Quit: juhp)
2021-09-02 07:31:43 +0200juhp(~juhp@128.106.188.220)
2021-09-02 07:35:34 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-02 07:37:35 +0200zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-09-02 07:39:06 +0200zaquest(~notzaques@5.128.210.178)
2021-09-02 07:44:45 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-02 07:50:01 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-09-02 07:51:33 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 07:51:33 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 07:51:33 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 07:51:39 +0200max22-(~maxime@2a01cb088335980087ef5e22f6c6ad9b.ipv6.abo.wanadoo.fr)
2021-09-02 07:52:34 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-09-02 07:55:58 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2021-09-02 07:58:00 +0200leplep-
2021-09-02 08:02:37 +0200kuribas(~user@ptr-25vy0iagfpe8knotjos.18120a2.ip6.access.telenet.be)
2021-09-02 08:05:07 +0200 <kuribas> What's the beset way to do exhaustive property testing?
2021-09-02 08:07:55 +0200 <kuribas> For example, taking a finit set of dates, and generating all lists with finit length of those dates.
2021-09-02 08:07:59 +0200 <kuribas> Then checking properties.
2021-09-02 08:08:20 +0200 <kuribas> tomsmeding: "potentially more efficient because less (++) ?"
2021-09-02 08:08:39 +0200 <kuribas> tomsmeding: perhaps, but "[a] ++ " isn't that bad...
2021-09-02 08:09:07 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-02 08:09:30 +0200 <kuribas> also, if I sort first, then fromAscList will be much more efficient.
2021-09-02 08:10:10 +0200 <kuribas> I am thinking just using unit tests, but maybe the interface isn't made for large number of tests?
2021-09-02 08:14:31 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-02 08:16:16 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-09-02 08:18:25 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-09-02 08:21:34 +0200 <kuribas> tomsmeding: oh, and in my option using the reader monad without ReaderT is evil ;-)
2021-09-02 08:22:18 +0200 <opqdonut> kuribas: smallcheck does exhaustive checking
2021-09-02 08:22:44 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2021-09-02 08:27:54 +0200 <kuribas> opqdonut: right, the "generate :: (Depth -> [a]) -> Series m a" function is just what I wanted :)
2021-09-02 08:32:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 08:37:37 +0200Pickchea(~private@user/pickchea)
2021-09-02 08:42:40 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-02 08:44:52 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-09-02 08:45:53 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Ping timeout: 256 seconds)
2021-09-02 08:48:05 +0200hgolden(~hgolden2@cpe-172-114-84-61.socal.res.rr.com)
2021-09-02 08:54:09 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-09-02 08:55:05 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-09-02 08:58:23 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-09-02 08:58:35 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-09-02 09:01:38 +0200Guest372(~xxx@47.245.54.240) (Remote host closed the connection)
2021-09-02 09:02:18 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 09:02:22 +0200Gurkenglas(~Gurkengla@dslb-088-075-022-191.088.075.pools.vodafone-ip.de)
2021-09-02 09:02:44 +0200Guest372(~xxx@47.245.54.240)
2021-09-02 09:06:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-02 09:10:51 +0200lep-lep
2021-09-02 09:12:57 +0200cheater(~Username@user/cheater) (Ping timeout: 244 seconds)
2021-09-02 09:15:14 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 09:16:07 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-09-02 09:25:28 +0200Morrow_(~Morrow@31.154.96.164)
2021-09-02 09:26:19 +0200aman(~aman@user/aman)
2021-09-02 09:26:39 +0200acidjnk_new(~acidjnk@p200300d0c720300659598fb61e40d514.dip0.t-ipconnect.de)
2021-09-02 09:26:40 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-09-02 09:27:17 +0200mc47(~mc47@xmonad/TheMC47)
2021-09-02 09:27:18 +0200xff0x(~xff0x@2001:1a81:5329:9c00:3941:fe2c:440c:b590) (Ping timeout: 256 seconds)
2021-09-02 09:28:13 +0200xff0x(~xff0x@2001:1a81:5329:9c00:532c:18c2:3151:8d2a)
2021-09-02 09:29:57 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 09:30:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 09:32:32 +0200Morrow_(~Morrow@31.154.96.164) (Ping timeout: 245 seconds)
2021-09-02 09:34:08 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
2021-09-02 09:34:53 +0200dsrt^(~dsrt@wsip-98-188-244-188.mc.at.cox.net)
2021-09-02 09:34:56 +0200 <tomsmeding> kuribas: ah, from your 'reverse' I lazily concluded that new elements would be appended on the end with the expression you posted
2021-09-02 09:35:33 +0200 <kuribas> tomsmeding: in that case I wouldn't need a reverse, no?
2021-09-02 09:36:16 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:e4f5:e96c:7308:8daf)
2021-09-02 09:37:05 +0200 <tomsmeding> hmmmm, you're right lol
2021-09-02 09:38:17 +0200 <kuribas> sort could faster though, I'd need to benchmark...
2021-09-02 09:38:25 +0200 <kuribas> I didn't really think about performance.
2021-09-02 09:39:41 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-09-02 09:41:07 +0200ishutin_(~ishutin@92-249-150-146.static.digikabel.hu)
2021-09-02 09:43:01 +0200gehmehgeh(~user@user/gehmehgeh)
2021-09-02 09:44:33 +0200ishutin(~ishutin@178-164-206-57.pool.digikabel.hu) (Ping timeout: 248 seconds)
2021-09-02 09:49:27 +0200 <kuribas> tomsmeding: map basically adds each element at a time.
2021-09-02 09:51:38 +0200phma(~phma@host-67-44-208-4.hnremote.net) (Read error: Connection reset by peer)
2021-09-02 09:52:36 +0200 <tomsmeding> kuribas: yeah, but that doesn't say whether it adds them on the left or on the right of the accumulated element, or in some other order
2021-09-02 09:52:46 +0200 <tomsmeding> I could have looked at the documentation but I was lazy :p
2021-09-02 09:53:31 +0200 <kuribas> tomsmeding: it's new_key ++ old_key. The documentation is rather bad indeed.
2021-09-02 09:54:10 +0200OscarH(~OscarH@2a02:c7f:a0da:ae00:ba27:ebff:fe84:d2f4) (Ping timeout: 252 seconds)
2021-09-02 09:54:35 +0200 <tomsmeding> makes sense though, given that fromListWith (++) is probably a common usecase
2021-09-02 09:55:30 +0200phma(~phma@host-67-44-209-33.hnremote.net)
2021-09-02 09:58:51 +0200timCF(~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving)
2021-09-02 10:01:54 +0200V(~v@anomalous.eu) (Ping timeout: 250 seconds)
2021-09-02 10:03:00 +0200dhruvasagar(~dhruvasag@49.207.59.235)
2021-09-02 10:03:56 +0200nschoe(~quassel@178.251.84.79)
2021-09-02 10:04:56 +0200hendursa1(~weechat@user/hendursaga)
2021-09-02 10:07:51 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-09-02 10:17:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
2021-09-02 10:18:11 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-09-02 10:19:51 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-09-02 10:24:11 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-09-02 10:25:53 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2021-09-02 10:27:03 +0200 <dsp> I am trying to install Cabal 3.6.0.0 to build a project that requires cabal 3.6. I tried installing cabal-install using apt on Ubuntu 21.4 then using `cabal install cabal-install` to get the most recent versionw hich appears to be 3.4. I tried to install Cabal-3.6.0.0 using `cabal install Cabal-3.6.0.0` but i still cannot build the project due to verison mismatch
2021-09-02 10:27:13 +0200 <dsp> any idea how i install Cabal 3.6.0.0 correctly?
2021-09-02 10:28:05 +0200 <sclv> what project could possibly require cabal 3.6?
2021-09-02 10:28:09 +0200 <dsp> hsthrift
2021-09-02 10:28:18 +0200 <sclv> ah
2021-09-02 10:28:32 +0200 <dsp> I am trying to compile glean which requires hsthrift
2021-09-02 10:28:34 +0200 <JavierNeira[m]> wow that is really bleeding edge
2021-09-02 10:28:43 +0200 <sclv> note there’s not yet a cabal install release with that lib yet
2021-09-02 10:29:07 +0200cheater(~Username@user/cheater)
2021-09-02 10:29:25 +0200 <dsp> https://github.com/facebookincubator/hsthrift/blob/main/lib/thrift-lib.cabal see cabal-version: 3.6
2021-09-02 10:29:25 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-02 10:29:48 +0200 <sclv> arguably you should pull the cabal 3.6 branch from github
2021-09-02 10:30:01 +0200 <dsp> fair enough. I'll do that
2021-09-02 10:30:07 +0200 <sclv> and build the cabal install binary from that branch
2021-09-02 10:30:17 +0200 <dsp> Ya that's sensible. Appreciate the help sclv.
2021-09-02 10:31:19 +0200 <sclv> alternatively maybe they don’t need that version? like try downgrading the number in that file and see whats the worst that happens :-)
2021-09-02 10:31:34 +0200 <dsp> Talkinga bout help, I have another question (I am fairly new to haskell, so sorry about that). I am using sql quasiquotes from sqlite-simple, but want to have an IN statement. E.g. "SELECT x FROM y WHERE z IN(?)". Now this expansion is not supported, instead you would have to add as many ? as there are elements in e.g. a list you want to query. What's the best appraoch to go about taht
2021-09-02 10:31:36 +0200 <merijn> sclv: But newer is always better! ;)
2021-09-02 10:31:40 +0200favonia(~favonia@user/favonia) (Ping timeout: 240 seconds)
2021-09-02 10:31:48 +0200 <dsp> I am thinking about building a new quasi quoter or so for it. I am curious how people solve these
2021-09-02 10:32:08 +0200 <merijn> dsp: You can't really solve those other than "generate the query dynamically"
2021-09-02 10:32:26 +0200 <merijn> Trust me, I tried :p
2021-09-02 10:33:03 +0200 <dsp> merijn: How do people do that usually? I like to write the query in quasiquotes for readability. So maybe just switch to RawText-QQ and parse the query for a placeholder and replace it?
2021-09-02 10:34:03 +0200 <merijn> dsp: The *proper* way to do it is to generate the query with ? placeholders as string, then pass that to query creation then fill in the ? using prepared statement
2021-09-02 10:34:07 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Ping timeout: 256 seconds)
2021-09-02 10:34:53 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-02 10:35:00 +0200teo(~teo@137.220.120.222)
2021-09-02 10:36:09 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-02 10:36:20 +0200 <dsp> merijn: right. So pure string manipulation before passing it to query creation right? I hope i understand it correctly how to do it, I'll give it a shot.
2021-09-02 10:36:44 +0200 <dsp> I am mostly concerned how to retain the readability of quasiquoting + generating the ? dynamically
2021-09-02 10:38:38 +0200 <merijn> I mean, what's the quasi quote really doing?
2021-09-02 10:39:02 +0200 <dsp> basically just allowing me to write nice multi-line queries in the code
2021-09-02 10:39:09 +0200Akronymus(~Akronymus@85.31.8.180)
2021-09-02 10:39:14 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-02 10:39:23 +0200 <Akronymus> A few weeks ago I asked about a weird haskell function in here.
2021-09-02 10:39:32 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 10:39:36 +0200 <Akronymus> I think I finally found it: https://wiki.haskell.org/Zygohistomorphic_prepromorphisms
2021-09-02 10:46:28 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 244 seconds)
2021-09-02 10:46:54 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-09-02 10:54:16 +0200MoC(~moc@user/moc)
2021-09-02 10:54:37 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-09-02 10:57:06 +0200ubert1(~Thunderbi@91.141.75.40.wireless.dyn.drei.com)
2021-09-02 10:57:58 +0200ubert(~Thunderbi@77.119.167.244.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-09-02 10:57:58 +0200ubert1ubert
2021-09-02 11:03:26 +0200jippiedoe(~david@2a02-a44c-e14e-1-4b6a-72bf-d881-3da7.fixed6.kpn.net)
2021-09-02 11:05:00 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 11:08:21 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-09-02 11:11:44 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-02 11:17:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-02 11:19:07 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com) (Read error: Connection reset by peer)
2021-09-02 11:19:30 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com)
2021-09-02 11:22:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 245 seconds)
2021-09-02 11:28:41 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Quit: Client closed)
2021-09-02 11:29:40 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-02 11:32:19 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-09-02 11:32:46 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-02 11:37:40 +0200__monty__(~toonn@user/toonn)
2021-09-02 11:44:57 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
2021-09-02 11:45:22 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-02 11:45:40 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 11:50:33 +0200acidjnk_new3(~acidjnk@p200300d0c72030066952f67dc93adefd.dip0.t-ipconnect.de)
2021-09-02 11:52:58 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-09-02 11:54:04 +0200acidjnk_new(~acidjnk@p200300d0c720300659598fb61e40d514.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-02 11:54:44 +0200fendor(~fendor@91.141.68.147.wireless.dyn.drei.com)
2021-09-02 11:57:21 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-09-02 12:04:59 +0200vysn(~vysn@user/vysn)
2021-09-02 12:06:02 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 12:07:24 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-09-02 12:08:24 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-09-02 12:11:10 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2021-09-02 12:12:32 +0200xff0x(~xff0x@2001:1a81:5329:9c00:532c:18c2:3151:8d2a) (Ping timeout: 245 seconds)
2021-09-02 12:13:25 +0200xff0x(~xff0x@2001:1a81:5329:9c00:9b27:ac34:a98:1a7c)
2021-09-02 12:18:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-02 12:21:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 12:31:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-02 12:38:01 +0200merijn(~merijn@2001:981:ab73:1:2088:973a:439d:f0e5)
2021-09-02 12:38:35 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2021-09-02 12:39:12 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 245 seconds)
2021-09-02 12:39:29 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 12:41:11 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 12:43:34 +0200merijn(~merijn@2001:981:ab73:1:2088:973a:439d:f0e5) (Ping timeout: 252 seconds)
2021-09-02 12:43:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 12:45:18 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 244 seconds)
2021-09-02 12:45:39 +0200xstill(~xstill@fimu/xstill)
2021-09-02 12:49:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-02 12:49:47 +0200comerijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 12:51:58 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-09-02 12:52:01 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Ping timeout: 244 seconds)
2021-09-02 12:53:44 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-02 12:54:05 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-02 12:54:20 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-02 12:54:23 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 12:56:12 +0200neo(~neo3@cpe-292712.ip.primehome.com)
2021-09-02 12:59:48 +0200comerijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-09-02 13:00:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 13:00:59 +0200alx741(~alx741@186.178.109.154)
2021-09-02 13:01:04 +0200Topsi(~Tobias@dyndsl-095-033-094-080.ewe-ip-backbone.de)
2021-09-02 13:05:12 +0200marjinal1st(~Thunderbi@185.67.125.128)
2021-09-02 13:07:06 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) ()
2021-09-02 13:09:52 +0200AlexNoo_(~AlexNoo@178.34.151.114)
2021-09-02 13:10:29 +0200acidjnk_new(~acidjnk@p5487d0ba.dip0.t-ipconnect.de)
2021-09-02 13:11:17 +0200Alex_test(~al_test@178.34.163.49) (Ping timeout: 245 seconds)
2021-09-02 13:12:10 +0200AlexZenon(~alzenon@178.34.163.49) (Ping timeout: 244 seconds)
2021-09-02 13:12:39 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 13:13:07 +0200AlexNoo(~AlexNoo@178.34.163.49) (Ping timeout: 240 seconds)
2021-09-02 13:13:53 +0200acidjnk_new3(~acidjnk@p200300d0c72030066952f67dc93adefd.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-02 13:15:43 +0200Alex_test(~al_test@178.34.151.114)
2021-09-02 13:16:42 +0200AlexZenon(~alzenon@178.34.151.114)
2021-09-02 13:17:10 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-02 13:17:40 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 13:17:51 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 244 seconds)
2021-09-02 13:19:11 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-02 13:20:22 +0200jespada(~jespada@90.254.245.194) (Ping timeout: 252 seconds)
2021-09-02 13:21:21 +0200jespada(~jespada@90.254.245.194)
2021-09-02 13:22:10 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-02 13:23:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 240 seconds)
2021-09-02 13:24:47 +0200fendor_(~fendor@178.165.178.184.wireless.dyn.drei.com)
2021-09-02 13:25:18 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 13:28:11 +0200fendor(~fendor@91.141.68.147.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-09-02 13:30:33 +0200OscarH(~OscarH@054449d6.skybroadband.com)
2021-09-02 13:31:41 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 13:32:23 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection)
2021-09-02 13:36:10 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-09-02 13:36:31 +0200_xor(~xor@74.215.232.67)
2021-09-02 13:40:55 +0200erinvanderveen[m(~erinvande@2001:470:69fc:105::e8f3)
2021-09-02 13:41:02 +0200 <infinisil> We're considering wrapping a supposedly pure C library doing some crypto verification. Is it a good idea to make this wrapper pure via `unsafePerformIIO`?
2021-09-02 13:41:22 +0200 <hpc> if you're using FFI, you don't need it
2021-09-02 13:41:32 +0200 <hpc> just give your functions the right type when you foreign import them
2021-09-02 13:41:53 +0200 <hpc> (but using unsafePerformIO after the fact is basically the same thing)
2021-09-02 13:41:58 +0200 <merijn> infinisil: You can even do that implicitly when you foreign import them
2021-09-02 13:41:59 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2021-09-02 13:42:12 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-02 13:42:23 +0200 <merijn> infinisil: How good of an idea that is depends heavily how sure you are that they're in fact pure ;)
2021-09-02 13:42:56 +0200 <infinisil> I see, guess that makes sense
2021-09-02 13:43:34 +0200 <infinisil> The library is well-tested and does pure things (verifying signatures is what we're interested in), the library is https://github.com/Yubico/libfido2 fyi
2021-09-02 13:44:08 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
2021-09-02 13:45:19 +0200 <erinvanderveen[m> Could any problems occur if GHC assumes the functions are pure, when in certain unlikely cases they aren't?
2021-09-02 13:45:21 +0200 <erinvanderveen[m> A malloc failing for example.
2021-09-02 13:46:21 +0200fendor_fendor
2021-09-02 13:47:32 +0200JSharp(sid4580@id-4580.tooting.irccloud.com) ()
2021-09-02 13:47:58 +0200JSharp(sid4580@id-4580.lymington.irccloud.com)
2021-09-02 13:48:00 +0200 <hpc> erinvanderveen[m: more the question there is, what happens when foreign code has an error
2021-09-02 13:48:26 +0200 <hpc> at a low level (in ghc at least), IO and pure code are the same thing
2021-09-02 13:49:02 +0200 <hpc> when malloc fails it returns a null pointer, so unless that's handled you get a segfault
2021-09-02 13:49:27 +0200 <merijn> erinvanderveen[m: If a function *isn't* pure and you use unsafeX to make GHC think it is, then problems can occur, yes
2021-09-02 13:50:18 +0200 <merijn> erinvanderveen[m: If you give functions a pure type it's equivalent to saying "I'm ok with this running 0, 1, or more times and don't really care in what order"
2021-09-02 13:50:40 +0200xff0x(~xff0x@2001:1a81:5329:9c00:9b27:ac34:a98:1a7c) (Ping timeout: 252 seconds)
2021-09-02 13:51:06 +0200euandreh(~euandreh@2804:14c:33:9fe5:554e:b40c:516f:45c1)
2021-09-02 13:53:25 +0200 <infinisil> Alright, so I think it's pretty easy: If the function in C is pure, make it pure in Haskell too. If it isn't, don't
2021-09-02 13:53:40 +0200xff0x(~xff0x@2001:1a81:5329:9c00:9b27:ac34:a98:1a7c)
2021-09-02 13:55:51 +0200 <erinvanderveen[m> Thank you for your answers.
2021-09-02 13:56:10 +0200machinedgod(~machinedg@135.23.192.217)
2021-09-02 13:56:10 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 240 seconds)
2021-09-02 13:57:11 +0200 <merijn> In fact, it's not really a matter of "can problems occur" and more "how horribly will they manifest" ;)
2021-09-02 13:57:41 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 13:58:01 +0200 <merijn> infinisil: And make sure you do safe foreign imports unless you're really, *really*, REALLY sure what you're doing
2021-09-02 13:58:17 +0200idnar(sid12240@debian/mithrandi) ()
2021-09-02 13:58:32 +0200idnar(sid12240@debian/mithrandi)
2021-09-02 13:59:19 +0200dsal(sid13060@id-13060.tooting.irccloud.com) ()
2021-09-02 13:59:35 +0200dsal(sid13060@id-13060.lymington.irccloud.com)
2021-09-02 14:02:34 +0200teehemkay(sid14792@id-14792.tooting.irccloud.com) ()
2021-09-02 14:02:48 +0200teehemkay(sid14792@id-14792.lymington.irccloud.com)
2021-09-02 14:03:27 +0200max22-(~maxime@2a01cb088335980087ef5e22f6c6ad9b.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds)
2021-09-02 14:03:56 +0200neo(~neo3@cpe-292712.ip.primehome.com) (Read error: Connection reset by peer)
2021-09-02 14:04:21 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Ping timeout: 256 seconds)
2021-09-02 14:06:25 +0200nrr(sid20938@tooting.irccloud.com) ()
2021-09-02 14:06:41 +0200nrr(sid20938@id-20938.lymington.irccloud.com)
2021-09-02 14:07:26 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-02 14:07:39 +0200 <tdammers> I like that wording... not just "will it be horrible", but "how horrible exactly will it get"
2021-09-02 14:07:46 +0200sleblanc(~sleblanc@user/sleblanc)
2021-09-02 14:07:50 +0200NemesisD(sid24071@tooting.irccloud.com) ()
2021-09-02 14:08:05 +0200NemesisD(sid24071@id-24071.lymington.irccloud.com)
2021-09-02 14:13:27 +0200 <kuribas> I am looking at the hspec-smallcheck package, but I don't see any way to change the depth?
2021-09-02 14:14:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-09-02 14:14:51 +0200 <sshine_> kuribas, depth as in implicit size parameter?
2021-09-02 14:15:03 +0200 <kuribas> sshine_: I suppose?
2021-09-02 14:15:55 +0200 <kuribas> sshine_: depth as in what you pass to smallCheck: https://hackage.haskell.org/package/smallcheck-1.2.1/docs/Test-SmallCheck-Drivers.html#v:smallCheck
2021-09-02 14:16:03 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-02 14:16:10 +0200 <sshine_> kuribas, ah, `changeDepth`. can't you do 'property $ changeDepth ...'?
2021-09-02 14:16:38 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 14:16:48 +0200 <Akronymus> This is such a nice place of sanity.
2021-09-02 14:16:53 +0200 <sshine_> seems like hspec-smallcheck only exposes the 'property' wrapper for embedding into Specs.
2021-09-02 14:17:04 +0200Pickchea(~private@user/pickchea) (Ping timeout: 252 seconds)
2021-09-02 14:17:10 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds)
2021-09-02 14:17:41 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-02 14:17:47 +0200 <sshine_> Akronymus, as in, you want to change the depth of a property so you do property . changeDepth ...? :D
2021-09-02 14:17:53 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 14:19:20 +0200 <Akronymus> sshine_ as in, reading #haskell keeps me somewhat sane.
2021-09-02 14:19:37 +0200 <Akronymus> Currently learning ABL/Progress/OpenEdge for work.
2021-09-02 14:19:45 +0200 <kuribas> sshine_: hmm, maybe I need to use the smallCheck function.
2021-09-02 14:19:46 +0200 <Akronymus> And it makes me wanna gauge my eyes out.
2021-09-02 14:20:08 +0200 <kuribas> sshine_: that instance "Testable IO (IO ())" is a big smell though...
2021-09-02 14:20:27 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-09-02 14:20:31 +0200 <int-e> . o O ( Detestable instance )
2021-09-02 14:20:34 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
2021-09-02 14:20:48 +0200 <hpc> that'd be a good package name
2021-09-02 14:22:46 +0200 <sshine_> kuribas, admittedly, hspec-hedgehog has a lot more than 'property'. but I always tend to make a few test helpers of my own anyways.
2021-09-02 14:23:08 +0200 <kuribas> sshine_: a bit of documentation migh have helped too :)
2021-09-02 14:23:18 +0200tfeb(tfb@gateway/vpn/protonvpn/tfb)
2021-09-02 14:23:20 +0200 <sshine_> kuribas, yep!
2021-09-02 14:23:55 +0200 <sshine_> https://hackage.haskell.org/package/hspec-hedgehog-0.0.1.2/docs/Test-Hspec-Hedgehog.html is a good example of what https://hackage.haskell.org/package/hspec-smallcheck-0.5.2/docs/Test-Hspec-SmallCheck.html could have looked like :P
2021-09-02 14:24:18 +0200 <sshine_> I guess there is some at https://hackage.haskell.org/package/smallcheck-1.1.3.1/docs/Test-SmallCheck.html
2021-09-02 14:24:42 +0200 <kuribas> sshine_: yes, much better!
2021-09-02 14:25:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Ping timeout: 256 seconds)
2021-09-02 14:26:01 +0200sshine_sshine
2021-09-02 14:27:11 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-09-02 14:27:51 +0200gehmehgeh(~user@user/gehmehgeh)
2021-09-02 14:38:31 +0200arjun(~Srain@user/arjun)
2021-09-02 14:44:38 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds)
2021-09-02 14:44:55 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 14:47:19 +0200sleblanc(~sleblanc@user/sleblanc) (Ping timeout: 252 seconds)
2021-09-02 14:48:07 +0200pbrisbin(~patrick@pool-108-16-214-93.phlapa.fios.verizon.net)
2021-09-02 14:48:28 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-09-02 14:48:42 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-02 14:48:45 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-09-02 14:49:18 +0200tfeb(tfb@gateway/vpn/protonvpn/tfb) (Remote host closed the connection)
2021-09-02 14:50:10 +0200sclv(sid39734@haskell/developer/sclv) ()
2021-09-02 14:50:25 +0200sclv(sid39734@haskell/developer/sclv)
2021-09-02 14:55:55 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-09-02 14:56:07 +0200marjinal1st(~Thunderbi@185.67.125.128) (Ping timeout: 252 seconds)
2021-09-02 14:57:12 +0200max22-(~maxime@2a01cb0883359800a52ea8a51dfe9c16.ipv6.abo.wanadoo.fr)
2021-09-02 15:00:09 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 244 seconds)
2021-09-02 15:00:44 +0200iphy(sid67735@tooting.irccloud.com) ()
2021-09-02 15:01:03 +0200iphy(sid67735@id-67735.lymington.irccloud.com)
2021-09-02 15:03:14 +0200degraafk(sid71464@tooting.irccloud.com) ()
2021-09-02 15:03:30 +0200degraafk(sid71464@id-71464.lymington.irccloud.com)
2021-09-02 15:03:45 +0200adamse(sid72084@user/adamse) ()
2021-09-02 15:03:55 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-09-02 15:04:03 +0200adamse(sid72084@user/adamse)
2021-09-02 15:04:48 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-02 15:05:00 +0200 <_bin> What sort of concurrency mechanism is best for making a lot of network requests at once?
2021-09-02 15:05:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 15:06:11 +0200favonia(~favonia@user/favonia)
2021-09-02 15:08:58 +0200christiaanb(sid84827@tooting.irccloud.com) ()
2021-09-02 15:09:13 +0200christiaanb(sid84827@id-84827.lymington.irccloud.com)
2021-09-02 15:10:08 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds)
2021-09-02 15:11:11 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-09-02 15:11:16 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 15:12:07 +0200AlexNoo_AlexNoo
2021-09-02 15:14:35 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com) ()
2021-09-02 15:15:01 +0200PotatoGim(sid99505@id-99505.lymington.irccloud.com)
2021-09-02 15:15:41 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-02 15:15:42 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-09-02 15:15:55 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-02 15:16:18 +0200hendursaga(~weechat@user/hendursaga)
2021-09-02 15:18:47 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-09-02 15:19:10 +0200marjinal1st(~Thunderbi@178.251.45.235)
2021-09-02 15:19:53 +0200TranquilEcho(~grom@user/tranquilecho)
2021-09-02 15:20:26 +0200marjinal1st(~Thunderbi@178.251.45.235) (Client Quit)
2021-09-02 15:20:34 +0200MQ-17J(~MQ-17J@2607:fb90:1d9d:5d52:46a4:38fe:ef69:4458)
2021-09-02 15:20:44 +0200marjinal1st(~Thunderbi@178.251.45.235)
2021-09-02 15:20:57 +0200marjinal1st(~Thunderbi@178.251.45.235) (Client Quit)
2021-09-02 15:22:47 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 15:24:58 +0200 <merijn> How much is a lot?
2021-09-02 15:32:52 +0200 <[exa]> _bin: anything that prevents resource starvation. also see ^
2021-09-02 15:33:13 +0200 <_bin> Uhh, probably a few thousand. mapConcurrent?
2021-09-02 15:33:31 +0200 <_bin> (I'm reasonably sure that doing this won't get me banned from the API)
2021-09-02 15:33:34 +0200benin0369323(~benin@183.82.25.23)
2021-09-02 15:33:49 +0200 <merijn> I mean, a few thousand can probably just be done with 1 thread per thing
2021-09-02 15:34:06 +0200 <[exa]> yeah, standard hs concurrency should handle that reasonably well
2021-09-02 15:34:22 +0200 <merijn> I have a rate-limited parallel map, but that needs an update which I will get to Any Day Now (TM)
2021-09-02 15:34:45 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 15:37:24 +0200Pickchea(~private@user/pickchea)
2021-09-02 15:39:28 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Remote host closed the connection)
2021-09-02 15:40:08 +0200hsiktas(sid224847@tooting.irccloud.com) ()
2021-09-02 15:40:37 +0200hsiktas(sid224847@id-224847.lymington.irccloud.com)
2021-09-02 15:41:14 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-09-02 15:46:10 +0200 <_bin> What do you mean by standard concurrency? I can just make requests normally and it will automatically parallelize?
2021-09-02 15:46:22 +0200 <wz1000> some services might not like it if you make a few thousand concurrent requests to the same server
2021-09-02 15:49:28 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-02 15:50:15 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-02 15:50:40 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2)
2021-09-02 15:51:50 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 15:51:50 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 15:51:50 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 15:55:26 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
2021-09-02 15:55:30 +0200gentauro(~gentauro@user/gentauro) (Ping timeout: 250 seconds)
2021-09-02 15:58:01 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2021-09-02 15:59:40 +0200dudek(~dudek@185.150.236.103)
2021-09-02 15:59:48 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-09-02 16:01:07 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
2021-09-02 16:01:42 +0200max22-(~maxime@2a01cb0883359800a52ea8a51dfe9c16.ipv6.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2021-09-02 16:02:15 +0200 <_bin> Yeah but honestly this one is so badly written that I don't think there's any rate-limiting
2021-09-02 16:02:19 +0200Sgeo(~Sgeo@user/sgeo)
2021-09-02 16:02:26 +0200gentauro(~gentauro@user/gentauro)
2021-09-02 16:02:57 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-02 16:03:22 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-02 16:03:46 +0200 <[exa]> _bin: haskell RTS contains a pretty powerfull event polling that can organize the green threads with parallel requests really nicely and quickly
2021-09-02 16:03:53 +0200 <[exa]> there's even a benchmark somewhere
2021-09-02 16:04:19 +0200MQ-17J(~MQ-17J@2607:fb90:1d9d:5d52:46a4:38fe:ef69:4458) (Ping timeout: 252 seconds)
2021-09-02 16:07:36 +0200 <[exa]> so, in short, yeah- just spawning all the requests with forkIO and waiting until all finish should do nicely (which is afaik what mapConcurrent does)
2021-09-02 16:07:53 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-02 16:12:18 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-09-02 16:14:24 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-09-02 16:14:37 +0200opac(~opac@ip-28-56.sn2.clouditalia.com) (Quit: Going offline, see ya! (www.adiirc.com))
2021-09-02 16:14:42 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
2021-09-02 16:16:27 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-09-02 16:17:42 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-09-02 16:19:53 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-09-02 16:21:47 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Client Quit)
2021-09-02 16:22:05 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
2021-09-02 16:24:59 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2)
2021-09-02 16:26:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Ping timeout: 240 seconds)
2021-09-02 16:27:28 +0200acidjnk_new(~acidjnk@p5487d0ba.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2021-09-02 16:27:49 +0200ruifengx(~ruifengx@111.43.122.32)
2021-09-02 16:27:58 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 252 seconds)
2021-09-02 16:28:19 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 16:28:52 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-09-02 16:30:08 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-02 16:31:49 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Client Quit)
2021-09-02 16:32:59 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-09-02 16:33:43 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-09-02 16:34:01 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-09-02 16:37:31 +0200 <ruifengx> hi everyone, my teacher thinks the name "Prelude" for the Haskell standard library is an acronym for "pre-include", despite the fact that "prelude" already has its own meaning as "any action, event, comment, etc. that precedes something else". I'm not a native English speaker, nor is my teacher. I failed to convince him, so I come here for some clarifications on this: could someone (perhaps a native English speaker) prove me (in)correct?
2021-09-02 16:39:22 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-09-02 16:39:34 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-09-02 16:40:59 +0200integral(sid296274@user/integral) ()
2021-09-02 16:41:09 +0200 <maerwald> https://www.haskell.org/onlinereport/standard-prelude.html
2021-09-02 16:41:17 +0200integral(sid296274@user/integral)
2021-09-02 16:41:23 +0200 <maerwald> doesn't contain a definition and doesn't say anything about pre-include
2021-09-02 16:41:42 +0200 <maerwald> so I'm assuming it means the english word 'Prelude'
2021-09-02 16:43:04 +0200Topsi(~Tobias@dyndsl-095-033-094-080.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
2021-09-02 16:44:05 +0200 <maerwald> also, winning an argument aginst your teacher is a good cause
2021-09-02 16:45:05 +0200 <ruifengx> ok, thanks lol
2021-09-02 16:45:20 +0200 <merijn> ruifengx: I'm fairly sure it's just the standard English meaning, yes
2021-09-02 16:46:11 +0200 <merijn> pre-include seems silly, since there's no "include" notion in Haskell
2021-09-02 16:48:15 +0200 <ruifengx> Yeah, I argued in Haskell we "import" instead of "include", but he seemed not convinced at all :)
2021-09-02 16:48:53 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-09-02 16:49:55 +0200dextaa(~DV@user/dextaa) (Ping timeout: 252 seconds)
2021-09-02 16:50:00 +0200 <lortabac> TBH winning an argument against your teacher is not always a good idea
2021-09-02 16:50:21 +0200 <lortabac> sometimes the best thing to do is to say yes and forget about it
2021-09-02 16:50:31 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-02 16:50:54 +0200 <gehmehgeh> lortabac, maerwald: Yes and no. It can be quite glorious if you're right about the Afghan war and get a bad grade in politcs class because of it
2021-09-02 16:51:06 +0200 <gehmehgeh> I agree that this has to be done in good measure
2021-09-02 16:51:08 +0200 <gehmehgeh> :D
2021-09-02 16:51:33 +0200 <gehmehgeh> (I mention Afghanistan because that's what happened to me 20 years ago in class)
2021-09-02 16:51:35 +0200 <gehmehgeh> :D
2021-09-02 16:51:45 +0200 <lortabac> I've seen too many people getting bad grades because they were right
2021-09-02 16:51:59 +0200 <gehmehgeh> ruifengx: He's your teacher in what context?
2021-09-02 16:52:06 +0200gonz__(sid304396@tooting.irccloud.com) ()
2021-09-02 16:52:17 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-02 16:52:24 +0200gonz__(sid304396@id-304396.lymington.irccloud.com)
2021-09-02 16:52:42 +0200dextaa(~DV@user/dextaa)
2021-09-02 16:52:46 +0200MQ-17J(~MQ-17J@2607:fb90:1d86:6272:b64e:2431:9a16:7a5b)
2021-09-02 16:53:01 +0200 <ruifengx> Actually we are working on a textbook, and I think it is a good idea to get things 100% correct for textbooks
2021-09-02 16:53:13 +0200 <ruifengx> I'm the TA for this course
2021-09-02 16:54:43 +0200 <kuribas> that changes things
2021-09-02 16:54:56 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Quit: Client closed)
2021-09-02 16:55:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 16:55:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 16:55:03 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 16:55:13 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-09-02 16:56:17 +0200enemeth79(sid309041@tooting.irccloud.com) ()
2021-09-02 16:56:24 +0200 <kuribas> prelude in music is a small piece that comes before the main work.
2021-09-02 16:56:29 +0200 <kuribas> Often improvised.
2021-09-02 16:56:34 +0200enemeth79(sid309041@id-309041.lymington.irccloud.com)
2021-09-02 16:56:44 +0200 <lortabac> if it can help: https://dictionary.cambridge.org/dictionary/english/prelude
2021-09-02 16:57:42 +0200 <lortabac> that said, only the person who came up with the name "Prelude" has the definitive answer :)
2021-09-02 16:57:59 +0200 <merijn> Well, presumably anyone on the committee has it
2021-09-02 16:58:10 +0200 <merijn> To bad augustss doesn't idle here anymore
2021-09-02 16:59:00 +0200 <lortabac> I've seen them on Reddit recently IIRC
2021-09-02 16:59:25 +0200 <merijn> Yeah, he still lurks there, I blame the bank lawyers for him disappearing from IRC :p
2021-09-02 16:59:27 +0200 <maerwald> I think it's irrelevant what they meant, unless it's in the haskell report
2021-09-02 16:59:37 +0200 <maerwald> but it isn't, so it's the standard english word
2021-09-02 17:00:01 +0200 <lortabac> fair point
2021-09-02 17:00:16 +0200 <ruifengx> We did check the dictionary and found this definition, and we both agreed a prelude for music is a great analogy for the standard library. He was just wondering whether it might come originally from "pre-include", being a pun...
2021-09-02 17:00:18 +0200 <kuribas> if it was a clever acronym, it should be written at least *somewhere*.
2021-09-02 17:00:35 +0200 <kuribas> People often invent clever acronyms, but then are vocal about it.
2021-09-02 17:01:07 +0200 <maerwald> Like schönfinkeln?
2021-09-02 17:01:10 +0200Pent(sid313808@tooting.irccloud.com) ()
2021-09-02 17:01:30 +0200Pent(sid313808@id-313808.lymington.irccloud.com)
2021-09-02 17:02:29 +0200 <kuribas> ruifengx: so I would ask him where he read that.
2021-09-02 17:02:36 +0200 <ruifengx> Anyway, I sent him a screenshot of this conversation, and he seems convinced now.
2021-09-02 17:02:39 +0200 <gehmehgeh> Also, there's more than one Prelude, isn't it? I mean there's the standard one and then there's also things like RIO...
2021-09-02 17:02:46 +0200 <gehmehgeh> So it can't possible be a "pre-include"
2021-09-02 17:03:05 +0200 <gehmehgeh> (well, ok, it could, but it seems odd)
2021-09-02 17:03:11 +0200 <maerwald> glad we won the argument
2021-09-02 17:03:17 +0200 <gehmehgeh> haha
2021-09-02 17:03:19 +0200 <gehmehgeh> :D
2021-09-02 17:03:30 +0200 <maerwald> btw: https://doc.rust-lang.org/std/prelude/index.html
2021-09-02 17:03:55 +0200 <ruifengx> He came up with this "pre-include" thing by himself, because "prelude" was not in his vocabulary :)
2021-09-02 17:04:31 +0200 <maerwald> in the rust documentation, I think it's even more clear, because prelude is written lowercase
2021-09-02 17:04:46 +0200 <maerwald> in the haskell report it's always uppercase
2021-09-02 17:05:01 +0200 <ruifengx> To be fair, "prelude" is not at all a common word for us, and a "pre-include" was a best guess I think
2021-09-02 17:05:36 +0200turlando(~turlando@user/turlando) (Read error: Connection reset by peer)
2021-09-02 17:05:37 +0200 <ruifengx> Yes, lowercase prelude is prehaps an evidence
2021-09-02 17:05:43 +0200 <maerwald> :D
2021-09-02 17:05:49 +0200turlando(~turlando@93-42-250-112.ip89.fastwebnet.it)
2021-09-02 17:05:49 +0200turlando(~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
2021-09-02 17:05:49 +0200turlando(~turlando@user/turlando)
2021-09-02 17:05:52 +0200rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-09-02 17:06:14 +0200 <maerwald> maybe need the HF board to vote on this issue
2021-09-02 17:08:46 +0200 <maerwald> we could fix it in the next haskell report
2021-09-02 17:08:46 +0200 <ruifengx> thanks again for your help
2021-09-02 17:09:43 +0200 <ruifengx> module names are uppercase in Haskell and lowercase in Rust, so I guess that's where this difference originiate
2021-09-02 17:09:52 +0200 <yushyin> maerwald: next haskell report, how funny you are :P
2021-09-02 17:10:25 +0200 <maerwald> ruifengx: this is getting way to deep :p
2021-09-02 17:11:24 +0200 <ruifengx> Speaking of the next haskell report ... How exactly is Haskell Prime going?
2021-09-02 17:12:05 +0200 <merijn> ruifengx: Funny joke :p
2021-09-02 17:12:19 +0200 <ruifengx> XD
2021-09-02 17:12:32 +0200 <maerwald> Haskell report is a job for the Haskell Foundation imo, but this might *just* be my opinion
2021-09-02 17:13:21 +0200 <kuribas> ruifengx: just out of curiosity, what is your language?
2021-09-02 17:13:23 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-09-02 17:13:48 +0200 <maerwald> I'm guessing german... deriving "pre-include" seems german
2021-09-02 17:14:04 +0200 <maerwald> we like to combine words
2021-09-02 17:14:09 +0200 <kuribas> but .. but ... Bach!
2021-09-02 17:14:18 +0200aegon(~mike@174.127.249.180)
2021-09-02 17:14:22 +0200 <kuribas> how can you be German and not know Bach?
2021-09-02 17:14:24 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.2)
2021-09-02 17:14:56 +0200tfeb(~tfb@88.98.95.237)
2021-09-02 17:15:12 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-02 17:15:35 +0200 <ruifengx> kuribas: Chinese, I'm in mainland China
2021-09-02 17:15:45 +0200 <maerwald> close enough
2021-09-02 17:16:22 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-09-02 17:16:55 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-09-02 17:17:14 +0200Akronymus(~Akronymus@85.31.8.180) (Quit: Client closed)
2021-09-02 17:17:28 +0200 <maerwald> ruifengx: sjtug?
2021-09-02 17:17:28 +0200Akronymus(~Akronymus@85.31.8.180)
2021-09-02 17:18:17 +0200 <maerwald> that's the only chinese university I know that does some haskell stuff I think
2021-09-02 17:18:40 +0200 <ruifengx> maerwald: no, I'm at Peking University
2021-09-02 17:19:36 +0200 <kuribas> ruifengx: you speak pretty well english
2021-09-02 17:20:11 +0200 <ruifengx> Prof. Zhenjiang Hu (previously at NII in Japan) came here ~2yrs ago, and he brings back some functional things here
2021-09-02 17:20:27 +0200 <maerwald> cool
2021-09-02 17:20:31 +0200 <dmj`> Peking is a great school
2021-09-02 17:20:32 +0200 <kuribas> nice to hear haskell made it to china :)
2021-09-02 17:20:42 +0200aria(sid380617@id-380617.tooting.irccloud.com) ()
2021-09-02 17:20:58 +0200aria(sid380617@id-380617.lymington.irccloud.com)
2021-09-02 17:21:35 +0200 <ruifengx> I believe it has always been here, just did not make it into universities
2021-09-02 17:21:37 +0200Akronymus(~Akronymus@85.31.8.180) (Client Quit)
2021-09-02 17:22:26 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-09-02 17:22:57 +0200 <maerwald> ruifengx: sjtug maintains a lot of mirrors for various things (including ghc bindists)... are there issues with accessing hackage or downloads.haskell.org from china?
2021-09-02 17:23:23 +0200max22-(~maxime@2a01cb0883359800b9a79637bda73194.ipv6.abo.wanadoo.fr)
2021-09-02 17:23:24 +0200 <gehmehgeh> ruifengx: Interesting that you say you're from "mainland China" instead just "China"
2021-09-02 17:23:58 +0200 <ruifengx> "mainland China" for addressing network issues :P
2021-09-02 17:24:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-02 17:25:09 +0200 <ruifengx> maerwald: sometimes we have trouble fetching files from raw.githubusercontents.com, and that should affect stack
2021-09-02 17:25:42 +0200danso(~danso@23.233.111.52)
2021-09-02 17:26:29 +0200 <ruifengx> most of the time it is just the speed being intolerably slow, so we have various mirror sites ...
2021-09-02 17:27:44 +0200 <ruifengx> FYI, students in Tsinghua University also maintained a mirror called TUNA: https://mirrors.tuna.tsinghua.edu.cn/
2021-09-02 17:28:39 +0200 <maerwald> I'm only aware of https://git.io/JEpTW
2021-09-02 17:30:19 +0200tfeb(~tfb@88.98.95.237) (Quit: died)
2021-09-02 17:30:40 +0200Pickchea(~private@user/pickchea) (Ping timeout: 252 seconds)
2021-09-02 17:31:33 +0200 <ruifengx> on TUNA there are mirrors for Hackage and Stackage
2021-09-02 17:31:34 +0200 <maerwald> https://github.com/tuna/issues/issues/587
2021-09-02 17:31:50 +0200 <maerwald> not sure what that ticket says
2021-09-02 17:31:51 +0200 <ruifengx> BTW git.io is blocked by GFW, a vivid example of *network issues*
2021-09-02 17:32:04 +0200 <maerwald> https://github.com/sjtug/portal/blob/master/content/post/mirror-help/ghcup.md
2021-09-02 17:32:38 +0200 <maerwald> hmm, dramforever is from tuna?
2021-09-02 17:32:55 +0200 <maerwald> wasn't that an IRC regular?
2021-09-02 17:33:22 +0200 <ruifengx> The ticket says the configuration for stack was outdated and needed an update (already fixed now)
2021-09-02 17:34:25 +0200micro(~micro@user/micro) (Ping timeout: 248 seconds)
2021-09-02 17:35:18 +0200micro(~micro@user/micro)
2021-09-02 17:35:19 +0200 <ruifengx> yep I guess dramforever is from THU
2021-09-02 17:36:26 +0200MQ-17J(~MQ-17J@2607:fb90:1d86:6272:b64e:2431:9a16:7a5b) (Read error: Connection reset by peer)
2021-09-02 17:36:43 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 17:37:43 +0200 <turlando> Is there a way to get a list of directories only inside a given directory using turtle (or stdlib functions)?
2021-09-02 17:38:14 +0200 <maerwald> atomically?
2021-09-02 17:38:22 +0200 <maerwald> I mean, as atomic as it gets
2021-09-02 17:38:34 +0200opac(~opac@ip-28-56.sn2.clouditalia.com)
2021-09-02 17:38:35 +0200 <turlando> As atomic as the POSIX allows...
2021-09-02 17:39:02 +0200 <maerwald> right, then `directory` won't help you with that
2021-09-02 17:39:28 +0200 <turlando> directory as in System.Directory?
2021-09-02 17:39:32 +0200 <maerwald> yeah
2021-09-02 17:40:00 +0200ruifengx(~ruifengx@111.43.122.32) ()
2021-09-02 17:40:06 +0200 <maerwald> turlando: https://hackage.haskell.org/package/hpath-posix-0.13.3/docs/System-Posix-RawFilePath-Directory-Tra…
2021-09-02 17:40:08 +0200 <maerwald> sth like that
2021-09-02 17:40:38 +0200 <maerwald> you just filter on it... that's the same you'd do in a manual loop
2021-09-02 17:40:40 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
2021-09-02 17:41:06 +0200 <turlando> Thanks maerwald, I will try that way
2021-09-02 17:42:03 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-09-02 17:42:20 +0200 <maerwald> I mean, readdir syscall doesn't allow flags
2021-09-02 17:42:44 +0200 <maerwald> it will always return both
2021-09-02 17:43:07 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 17:43:10 +0200 <turlando> I see, that's not a big issue if I can filter files out easily
2021-09-02 17:43:27 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
2021-09-02 17:43:31 +0200 <maerwald> yeah, and still better than running `doesDirectoryExist` on the result
2021-09-02 17:43:37 +0200 <maerwald> which is another syscall and non-atomic
2021-09-02 17:45:32 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-09-02 17:46:19 +0200jippiedoe(~david@2a02-a44c-e14e-1-4b6a-72bf-d881-3da7.fixed6.kpn.net) (Quit: Leaving)
2021-09-02 17:48:55 +0200 <maerwald> `filter ((==dtDir) . fst) <$> getDirectoryContents`
2021-09-02 17:49:06 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2021-09-02 17:49:06 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-09-02 17:49:31 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 17:49:32 +0200 <maerwald> or rather `fmap snd . filter ((==dtDir) . fst) <$> getDirectoryContents`
2021-09-02 17:52:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 17:54:41 +0200 <maerwald> I wonder if it's more efficient if you unsafeInterlaveIO it with `filter`, so the filter fuses with the loop?
2021-09-02 17:54:51 +0200 <maerwald> or unsafePerformIO
2021-09-02 17:55:20 +0200 <maerwald> (and then forcing and evaluating it and putting it back into IO)
2021-09-02 17:55:31 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-09-02 17:55:49 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-02 17:55:54 +0200 <turlando> Good question, I have no idea, and for now performance is not a concern
2021-09-02 17:56:06 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 17:56:27 +0200 <maerwald> right, just thinking what would happen in a directory with 10k files and 1 dir... it would probably build the entire list in memory before filtering
2021-09-02 17:57:21 +0200max22-(~maxime@2a01cb0883359800b9a79637bda73194.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-09-02 17:57:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-02 17:58:10 +0200 <maerwald> oh wait
2021-09-02 17:58:26 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-09-02 17:58:27 +0200 <maerwald> I forgot that I wrote this: https://hackage.haskell.org/package/streamly-posix-0.1.0.2/docs/Streamly-External-Posix-DirStream.…
2021-09-02 17:58:34 +0200 <maerwald> that's probably better
2021-09-02 17:59:09 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-02 17:59:33 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:e4f5:e96c:7308:8daf) (Quit: WeeChat 2.8)
2021-09-02 17:59:37 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-09-02 17:59:52 +0200 <maerwald> (if you're familiar with streamly)
2021-09-02 18:00:00 +0200 <turlando> I'm not unfortunately
2021-09-02 18:00:08 +0200 <maerwald> great way to get started
2021-09-02 18:00:25 +0200 <turlando> :)
2021-09-02 18:01:54 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 18:05:10 +0200max22-(~maxime@2a01cb08833598004d1bbe70867eb08c.ipv6.abo.wanadoo.fr)
2021-09-02 18:05:44 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 18:05:58 +0200lbseale(~lbseale@user/ep1ctetus)
2021-09-02 18:08:04 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 256 seconds)
2021-09-02 18:09:34 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-02 18:10:07 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-02 18:13:36 +0200nschoe(~quassel@178.251.84.79)
2021-09-02 18:13:40 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Ping timeout: 240 seconds)
2021-09-02 18:15:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 18:15:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 18:15:32 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 18:20:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Remote host closed the connection)
2021-09-02 18:20:32 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-09-02 18:21:01 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 18:25:38 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2021-09-02 18:25:55 +0200ephemient(uid407513@id-407513.tooting.irccloud.com) ()
2021-09-02 18:26:11 +0200ephemient(uid407513@id-407513.lymington.irccloud.com)
2021-09-02 18:28:07 +0200Adeon(sid418992@tooting.irccloud.com) ()
2021-09-02 18:28:22 +0200Adeon(sid418992@id-418992.lymington.irccloud.com)
2021-09-02 18:30:10 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 256 seconds)
2021-09-02 18:31:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-02 18:31:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 18:31:31 +0200teo(~teo@137.220.120.222) ()
2021-09-02 18:34:40 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds)
2021-09-02 18:36:49 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 18:39:29 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-02 18:39:46 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 18:41:00 +0200Boarders(sid425905@id-425905.tooting.irccloud.com) ()
2021-09-02 18:41:04 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-09-02 18:41:15 +0200Boarders(sid425905@id-425905.lymington.irccloud.com)
2021-09-02 18:44:56 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
2021-09-02 18:48:24 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
2021-09-02 18:48:33 +0200phma(~phma@host-67-44-209-33.hnremote.net) (Read error: Connection reset by peer)
2021-09-02 18:49:43 +0200phma(~phma@host-67-44-208-129.hnremote.net)
2021-09-02 18:57:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 18:57:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 18:57:09 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 18:59:21 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com) ()
2021-09-02 18:59:36 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2021-09-02 19:00:56 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2021-09-02 19:02:24 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 19:07:40 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-02 19:09:35 +0200hrnz(~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb)
2021-09-02 19:09:53 +0200hrnz(~ulli@irc.plumbing)
2021-09-02 19:16:41 +0200arjun(~Srain@user/arjun) (Leave.)
2021-09-02 19:20:23 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-02 19:22:53 +0200alx741(~alx741@186.178.109.154) (Quit: alx741)
2021-09-02 19:33:29 +0200elf_fortrez(~elf_fortr@adsl-72-50-7-12.prtc.net)
2021-09-02 19:34:11 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 19:36:21 +0200econo(uid147250@user/econo)
2021-09-02 19:37:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-02 19:37:10 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-09-02 19:37:27 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 19:37:46 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-02 19:38:27 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-02 19:40:00 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-02 19:45:48 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2)
2021-09-02 19:49:27 +0200elf_fortrez(~elf_fortr@adsl-72-50-7-12.prtc.net) (Ping timeout: 256 seconds)
2021-09-02 19:50:27 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 19:51:02 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-02 19:51:43 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 19:52:04 +0200jacks2(~bc8167eb@217.29.117.252)
2021-09-02 19:53:10 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 19:53:10 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 19:53:10 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 19:54:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 19:54:07 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-02 19:57:36 +0200koolazer(~koo@user/koolazer)
2021-09-02 19:57:40 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-09-02 20:00:09 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-09-02 20:01:23 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 20:05:51 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 20:07:09 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 20:07:10 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
2021-09-02 20:07:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Remote host closed the connection)
2021-09-02 20:08:50 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 20:08:50 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 20:08:50 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 20:09:37 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-09-02 20:09:43 +0200Guest8166(~lordgrenv@31.210.177.64)
2021-09-02 20:10:52 +0200Vooch(~iovoo@096-038-011-034.biz.spectrum.com) (Quit: Konversation terminated!)
2021-09-02 20:13:02 +0200 <jacks2> I use doesDirectoryExist/doesFileExist to check whether my program needs to create initial config file and directory structure to it. since everyone seem to hate those functions, what would be the proper way to do it?
2021-09-02 20:14:34 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-02 20:16:03 +0200Pickchea(~private@user/pickchea)
2021-09-02 20:17:40 +0200kuribas(~user@ptr-25vy0iagfpe8knotjos.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-09-02 20:21:08 +0200 <dmj`> jacks2: sounds good to me
2021-09-02 20:22:16 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-02 20:22:33 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 20:23:59 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 20:24:41 +0200lavaman(~lavaman@98.38.249.169)
2021-09-02 20:26:40 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-02 20:26:57 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 20:28:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-02 20:29:10 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-09-02 20:30:58 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 20:30:58 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 20:30:58 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 20:31:06 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-02 20:35:40 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-09-02 20:38:29 +0200chris(~chris@81.96.113.213)
2021-09-02 20:38:30 +0200chrisGuest73
2021-09-02 20:40:14 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-02 20:40:16 +0200acidjnk_new(~acidjnk@p200300d0c720308244f5798d54dcee82.dip0.t-ipconnect.de)
2021-09-02 20:40:48 +0200 <maerwald> jacks2: catching exceptions
2021-09-02 20:45:30 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 20:47:32 +0200 <maerwald> https://hackage.haskell.org/package/directory-1.3.6.2/docs/src/System.Directory.html#createDirecto…
2021-09-02 20:47:57 +0200 <maerwald> there directory actually does something right
2021-09-02 20:48:12 +0200mastarija(~mastarija@31.217.20.102)
2021-09-02 20:49:00 +0200 <maerwald> for reading config file sth like `handle (\e -> if isDoesNotExistError e then pure "initial config" else throw e) $ readFile "config-file"`
2021-09-02 20:49:10 +0200APic(apic@apic.name) (Ping timeout: 240 seconds)
2021-09-02 20:49:40 +0200 <maerwald> note that on windows you get different exceptions
2021-09-02 20:49:56 +0200Guest73(~chris@81.96.113.213) (Ping timeout: 244 seconds)
2021-09-02 20:50:44 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 20:51:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
2021-09-02 20:52:31 +0200chris(~chris@81.96.113.213)
2021-09-02 20:52:34 +0200chrisGuest846
2021-09-02 20:52:59 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 20:53:02 +0200rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
2021-09-02 20:57:12 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-02 21:05:39 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 21:07:01 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 21:08:44 +0200whez(sid470288@id-470288.tooting.irccloud.com) ()
2021-09-02 21:08:57 +0200whez(sid470288@id-470288.lymington.irccloud.com)
2021-09-02 21:10:28 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 21:11:33 +0200aman(~aman@user/aman) (Quit: aman)
2021-09-02 21:12:40 +0200benin0369323(~benin@183.82.25.23) (Remote host closed the connection)
2021-09-02 21:12:48 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-09-02 21:13:51 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 21:20:36 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 21:21:02 +0200hendi(sid489601@id-489601.tooting.irccloud.com) ()
2021-09-02 21:21:17 +0200hendi(sid489601@id-489601.lymington.irccloud.com)
2021-09-02 21:22:41 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 21:24:38 +0200Guest846(~chris@81.96.113.213) (Remote host closed the connection)
2021-09-02 21:25:15 +0200chris(~chris@81.96.113.213)
2021-09-02 21:25:16 +0200 <ski> @type handleJust (guard . System.IO.Error.isDoesNotExistError) (\() -> pure "initial config") (readFile "config-file")
2021-09-02 21:25:17 +0200 <lambdabot> IO [Char]
2021-09-02 21:25:17 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 21:25:18 +0200chrisGuest1692
2021-09-02 21:27:08 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2021-09-02 21:28:00 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
2021-09-02 21:29:42 +0200Guest1692(~chris@81.96.113.213) (Ping timeout: 245 seconds)
2021-09-02 21:37:11 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-02 21:38:28 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-09-02 21:51:09 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 21:52:17 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-09-02 21:55:26 +0200nvmd(~nvmd@user/nvmd)
2021-09-02 21:55:38 +0200nvmd(~nvmd@user/nvmd) (Client Quit)
2021-09-02 21:55:50 +0200nvmd(~nvmd@user/nvmd)
2021-09-02 21:56:00 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 21:58:02 +0200adam_(uid515807@id-515807.tooting.irccloud.com) ()
2021-09-02 21:58:16 +0200adam_(uid515807@id-515807.lymington.irccloud.com)
2021-09-02 22:01:58 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-09-02 22:04:56 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 256 seconds)
2021-09-02 22:05:31 +0200desantra(~skykanin@user/skykanin)
2021-09-02 22:07:03 +0200juhp(~juhp@128.106.188.220)
2021-09-02 22:08:35 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-02 22:08:42 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 22:09:26 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 22:09:31 +0200mei(~mei@user/mei) (Ping timeout: 252 seconds)
2021-09-02 22:10:37 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 22:12:52 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-09-02 22:13:52 +0200hrnz(~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb)
2021-09-02 22:14:11 +0200hrnz(~ulli@vegan.im.it)
2021-09-02 22:16:10 +0200 <_bin> How do I debug a `show` call giving `Prelude.read: no parse`?
2021-09-02 22:17:59 +0200 <sm> _bin: in your code ?
2021-09-02 22:19:21 +0200 <Hecate> _bin: spread a HasCallStack in all the functions that may contain `read`, or are the parents of such functions.
2021-09-02 22:19:42 +0200 <Hecate> Then have fun with the callstack functions to show the callstack
2021-09-02 22:19:50 +0200mastarija(~mastarija@31.217.20.102) (Quit: Leaving)
2021-09-02 22:20:02 +0200 <Hecate> I encourage you to use the version of read that returns a Maybe or an Either
2021-09-02 22:20:11 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-02 22:20:51 +0200 <sm> why would show give a read error ?
2021-09-02 22:21:13 +0200 <sm> if it's one of your types, check your Show instance
2021-09-02 22:24:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-02 22:28:13 +0200maerwald(~maerwald@user/maerwald) (Ping timeout: 250 seconds)
2021-09-02 22:29:03 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2021-09-02 22:30:35 +0200Unhammer(~Unhammer@user/unhammer) (Quit: WeeChat 1.6)
2021-09-02 22:32:23 +0200me_(~me@178.70.139.179)
2021-09-02 22:33:10 +0200ubert(~Thunderbi@91.141.75.40.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-09-02 22:34:23 +0200ubert(~Thunderbi@91.141.75.40.wireless.dyn.drei.com)
2021-09-02 22:35:03 +0200Topsi(~Tobias@dyndsl-095-033-094-080.ewe-ip-backbone.de)
2021-09-02 22:37:06 +0200max22-(~maxime@2a01cb08833598004d1bbe70867eb08c.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-09-02 22:37:18 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 22:38:05 +0200 <tomsmeding> or the value being shown forces some read somewhere that fails
2021-09-02 22:39:28 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 244 seconds)
2021-09-02 22:40:42 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 22:44:35 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-02 22:46:22 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-02 22:48:41 +0200Everything(~Everythin@128-124-169-247.mobile.vf-ua.net)
2021-09-02 22:48:55 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-09-02 22:49:46 +0200Guest71(~Guest71@adsl-72-50-5-53.prtc.net)
2021-09-02 22:50:49 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-02 22:51:42 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-09-02 22:52:10 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2021-09-02 22:54:17 +0200euandreh(~euandreh@2804:14c:33:9fe5:554e:b40c:516f:45c1) (Quit: WeeChat 3.2)
2021-09-02 22:54:24 +0200Lord_of_Life_Lord_of_Life
2021-09-02 22:56:11 +0200 <arahael> How does one deliberately return something like that? Is there a "raise exception from pure code" routine?
2021-09-02 22:56:54 +0200vysn(~vysn@user/vysn)
2021-09-02 22:58:20 +0200__monty__(~toonn@user/toonn)
2021-09-02 22:58:30 +0200michalz(~michalz@185.246.204.61) (Remote host closed the connection)
2021-09-02 22:59:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-02 23:02:33 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-09-02 23:03:13 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-02 23:03:13 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-02 23:03:13 +0200wroathe(~wroathe@user/wroathe)
2021-09-02 23:05:18 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 244 seconds)
2021-09-02 23:06:26 +0200 <sm> tomsmeding++
2021-09-02 23:06:40 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection)
2021-09-02 23:06:46 +0200 <sm> error, arahael ?
2021-09-02 23:07:24 +0200 <arahael> sm: too obvious! thanks.
2021-09-02 23:07:53 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2021-09-02 23:08:30 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 23:08:55 +0200Lycurgus(~juan@98.4.106.186)
2021-09-02 23:11:59 +0200haysh_
2021-09-02 23:12:20 +0200pavonia(~user@user/siracusa)
2021-09-02 23:13:29 +0200ec__(~ec@gateway/tor-sasl/ec)
2021-09-02 23:15:21 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-09-02 23:19:25 +0200Guest8166(~lordgrenv@31.210.177.64) (Read error: Connection reset by peer)
2021-09-02 23:20:10 +0200machinedgod(~machinedg@135.23.192.217) (Ping timeout: 240 seconds)
2021-09-02 23:24:01 +0200zebrag(~chris@user/zebrag)
2021-09-02 23:28:24 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Remote host closed the connection)
2021-09-02 23:31:09 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 23:35:32 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-02 23:36:29 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-09-02 23:36:53 +0200 <_bin> tomsmeding: You're right, that appears to be the cause. Still getting my head around laziness, I guess.
2021-09-02 23:38:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
2021-09-02 23:38:24 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-02 23:38:29 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-02 23:40:46 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-02 23:40:51 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
2021-09-02 23:41:00 +0200ec_ec
2021-09-02 23:43:34 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-09-02 23:46:14 +0200stampirl(~stampirl@195-154-112-77.rev.poneytelecom.eu)
2021-09-02 23:46:38 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-02 23:46:38 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 244 seconds)
2021-09-02 23:48:25 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-02 23:48:30 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-02 23:49:21 +0200fendor(~fendor@178.165.178.184.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-09-02 23:52:50 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2021-09-02 23:53:07 +0200Guest71(~Guest71@adsl-72-50-5-53.prtc.net) (Ping timeout: 256 seconds)
2021-09-02 23:55:53 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-09-02 23:56:45 +0200lavaman(~lavaman@98.38.249.169)