2020/10/13

2020-10-13 00:02:51 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-10-13 00:05:07 +0200Rudd0(~Rudd0@185.189.115.103)
2020-10-13 00:05:17 +0200polyrain(~polyrain@2001:8003:e501:6901:6879:a475:4735:6434)
2020-10-13 00:08:20 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-10-13 00:08:50 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-13 00:09:09 +0200 <dminuoso> I have the desire to write some `f :: proxy (s :: Symbol) -> T (TyFam s)`, but the ergonomics looks annoying. Is there something that lets me write `f "foo"` rather than `f (Proxy @"foo")`?
2020-10-13 00:09:50 +0200 <dminuoso> Maybe through some extension?
2020-10-13 00:10:59 +0200dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2020-10-13 00:11:20 +0200 <newhoggy> Axman6: Did you send me a message? I think can't find it anymore.
2020-10-13 00:13:20 +0200 <dminuoso> Mmm. I think OverloadedLabels is what Im after..
2020-10-13 00:14:55 +0200 <dolio> Oh, I wasn't aware of that.
2020-10-13 00:15:32 +0200ambiso(~ambiso@209.182.239.205) (Quit: Ping timeout (120 seconds))
2020-10-13 00:15:40 +0200ambiso9(~ambiso@209.182.239.205)
2020-10-13 00:15:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-13 00:16:32 +0200 <dolio> So that lets you write `f ?field`?
2020-10-13 00:16:46 +0200 <dminuoso> f #field
2020-10-13 00:16:47 +0200oisdk(~oisdk@2001:bb6:3329:d100:7c51:293a:6844:5080) (Quit: oisdk)
2020-10-13 00:17:05 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-13 00:17:16 +0200 <dminuoso> not sure how to deal with spaces or special characters
2020-10-13 00:17:24 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-13 00:17:24 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-13 00:17:24 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 00:17:27 +0200hackagelittle-rio 0.2.2 - When you need just the RIO monad https://hackage.haskell.org/package/little-rio-0.2.2 (ejconlon)
2020-10-13 00:17:38 +0200 <dolio> Oh yeah, I was reading the 'digression'.
2020-10-13 00:17:46 +0200 <dminuoso> Perhaps parens could be used?
2020-10-13 00:18:01 +0200 <dminuoso> % instance IsLabel "x y" Int where fromLabel = 42
2020-10-13 00:18:01 +0200 <yahb> dminuoso:
2020-10-13 00:18:08 +0200 <dminuoso> % (#x y)
2020-10-13 00:18:09 +0200 <yahb> dminuoso: ; <interactive>:114:6: error: parse error on input `)'
2020-10-13 00:18:11 +0200 <dminuoso> Mmm
2020-10-13 00:18:21 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 244 seconds)
2020-10-13 00:19:42 +0200 <dminuoso> Yeah, this is going to be a tough one. At the very least I need hyphens to be there.
2020-10-13 00:20:57 +0200 <dminuoso> Perhaps this is the point where replacing the Proxy with forall + TypeApplications is sensible
2020-10-13 00:21:07 +0200 <dminuoso> Then I could just say `f @"foo-bar" ...`
2020-10-13 00:21:21 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc)
2020-10-13 00:21:24 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 00:21:27 +0200revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 244 seconds)
2020-10-13 00:21:53 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 00:22:18 +0200revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-10-13 00:23:22 +0200mdunnio(~mdunnio@208.59.170.5) (Remote host closed the connection)
2020-10-13 00:25:24 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-13 00:26:01 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 246 seconds)
2020-10-13 00:26:08 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2020-10-13 00:26:20 +0200conal(~conal@64.71.133.70)
2020-10-13 00:27:40 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 00:30:54 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 256 seconds)
2020-10-13 00:32:54 +0200hekkaidekapus}hekkaidekapus
2020-10-13 00:35:23 +0200 <hekkaidekapus> <circa 20:30 UTC> dminuoso In particular, Im trying to understand how instance methods of classes with superclass constraints are type checked.
2020-10-13 00:35:43 +0200 <hekkaidekapus> dminuoso: I don’t have a quotation from the report/manual, but there is <https://www.microsoft.com/en-us/research/publication/type-inference-as-constraint-solving-how-ghcs…>.
2020-10-13 00:36:08 +0200Habib(~Habib@178.239.161.88) ()
2020-10-13 00:36:25 +0200 <hekkaidekapus> I managed to dig out the slides if you are not into videos: <https://drive.google.com/file/d/1NRkP0hz-0Yo49Rto70b2nUwxjPiGD9Ci/view>.
2020-10-13 00:37:06 +0200 <hekkaidekapus> In short, you might be interested in constraint generation and the solving after that.
2020-10-13 00:37:09 +0200 <dminuoso> hekkaidekapus: Ah I dived into parts of that video a while ago, sadly it was cut off right in the interesting part I cared about.
2020-10-13 00:37:31 +0200zaquest(~notzaques@5.128.210.178)
2020-10-13 00:37:57 +0200 <dminuoso> Thanks for the slides, this is really helpful for other reasons already. :)
2020-10-13 00:38:00 +0200 <hekkaidekapus> hmm… Did not check if the video is whole, but the slides are good.
2020-10-13 00:38:22 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-13 00:38:25 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 240 seconds)
2020-10-13 00:38:28 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 00:38:44 +0200 <hekkaidekapus> Enjoy!
2020-10-13 00:38:46 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 00:39:13 +0200 <dminuoso> Ill give the video a look from the beginning
2020-10-13 00:40:52 +0200 <hekkaidekapus> Yeah, better so rewatch to refresh your mind. There is also commentary pages on the ghc/wiki, there you can dive deeper into specific parts.
2020-10-13 00:41:16 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-10-13 00:41:24 +0200 <hekkaidekapus> (Which will eventually lead you into Notes.)
2020-10-13 00:42:15 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-10-13 00:45:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 00:48:22 +0200dcoutts_(~duncan@33.14.75.194.dyn.plus.net)
2020-10-13 00:50:55 +0200oisdk(~oisdk@2001:bb6:3329:d100:7c51:293a:6844:5080)
2020-10-13 00:51:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-10-13 00:52:25 +0200bliminse(~bliminse@host217-42-95-37.range217-42.btcentralplus.com) (Quit: leaving)
2020-10-13 00:53:14 +0200chaosmasttter(~chaosmast@p200300c4a72cce01992392edfb5baa55.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-10-13 00:54:28 +0200kelanu_(~kelanu@2600:1700:9750:cf20:84af:84e5:5767:cbf0) (Quit: Konversation terminated!)
2020-10-13 00:55:25 +0200ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-13 00:56:23 +0200sfvm(~sfvm@37.228.215.148)
2020-10-13 01:03:50 +0200mdunnio(~mdunnio@208.59.170.5)
2020-10-13 01:06:10 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:cbf:8681:88ff:8025) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 01:06:27 +0200polyrain(~polyrain@2001:8003:e501:6901:6879:a475:4735:6434) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 01:07:16 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:cbf:8681:88ff:8025)
2020-10-13 01:08:36 +0200wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-13 01:08:43 +0200mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 246 seconds)
2020-10-13 01:08:50 +0200untseac(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving)
2020-10-13 01:08:56 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-10-13 01:09:04 +0200polyrain(~polyrain@2001:8003:e501:6901:6879:a475:4735:6434)
2020-10-13 01:10:08 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-13 01:12:11 +0200 <Axman6> newhoggy: "If you haven't seen it, you might enjoy https://liuliu.me/eyes/loading-csv-file-at-the-speed-limit-of-the-nvme-storage/"
2020-10-13 01:12:44 +0200 <newhoggy> Thanks!
2020-10-13 01:12:45 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Quit: WeeChat 2.9)
2020-10-13 01:13:47 +0200jedws(~jedws@121.209.161.98)
2020-10-13 01:14:05 +0200wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-10-13 01:14:28 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-13 01:14:35 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-13 01:16:45 +0200Jeanne-Kamikaze(~Jeanne-Ka@68.235.43.110) (Ping timeout: 240 seconds)
2020-10-13 01:16:45 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Client Quit)
2020-10-13 01:18:38 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-13 01:20:10 +0200z0(~z0@bl15-161-239.dsl.telepac.pt) (Quit: Lost terminal)
2020-10-13 01:20:23 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-13 01:21:29 +0200ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
2020-10-13 01:21:37 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Client Quit)
2020-10-13 01:21:54 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 01:24:56 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Remote host closed the connection)
2020-10-13 01:25:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 01:25:28 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc)
2020-10-13 01:25:31 +0200ericsagnes(~ericsagne@2405:6580:0:5100:5cf1:c22d:8d13:ca36) (Ping timeout: 244 seconds)
2020-10-13 01:26:39 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-10-13 01:27:01 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-10-13 01:29:50 +0200dcoutts_(~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 272 seconds)
2020-10-13 01:30:47 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 01:31:30 +0200 <dminuoso> hekkaidekapus: Alright, the video didn't give me too many insights, and it was rather focused on the implementation of the constraint solver.
2020-10-13 01:31:37 +0200 <dminuoso> But it was a good refresher nevertheless.
2020-10-13 01:32:48 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:cbf:8681:88ff:8025) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 01:34:22 +0200 <hekkaidekapus> Right. It’s only a video after all. :)
2020-10-13 01:34:48 +0200 <hekkaidekapus> dminuoso: Are you familiar with OutsideIn(X)?
2020-10-13 01:34:49 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 244 seconds)
2020-10-13 01:35:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-13 01:35:17 +0200pera(~pera@unaffiliated/pera) (Quit: leaving)
2020-10-13 01:35:34 +0200darjeeli1(~darjeelin@122.245.210.138) (Ping timeout: 256 seconds)
2020-10-13 01:38:14 +0200darjeeli1(~darjeelin@122.245.210.138)
2020-10-13 01:38:28 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 01:38:29 +0200 <dminuoso> No, but Im looking at the paper right now
2020-10-13 01:38:33 +0200ericsagnes(~ericsagne@2405:6580:0:5100:fd7f:2256:81b3:b295)
2020-10-13 01:41:13 +0200 <hekkaidekapus> Okay. It is substantial and will be a long step further the Zurihac talk. I am not sure the current implementation is following it closely, still, but the exposition is really thorough.
2020-10-13 01:41:28 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds)
2020-10-13 01:42:08 +0200conal(~conal@64.71.133.70)
2020-10-13 01:42:50 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca)
2020-10-13 01:43:12 +0200m1000(~Boss@2a02:8108:96bf:b068:9dab:a091:4eab:df71)
2020-10-13 01:44:01 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)
2020-10-13 01:45:54 +0200polyrain_(~polyrain@2001:8003:e501:6901:39c5:19e3:cc60:4fe5)
2020-10-13 01:47:55 +0200polyrain(~polyrain@2001:8003:e501:6901:6879:a475:4735:6434) (Ping timeout: 240 seconds)
2020-10-13 01:48:35 +0200macrover(~macrover@ip70-189-231-35.lv.lv.cox.net)
2020-10-13 01:49:21 +0200Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-10-13 01:49:53 +0200 <Axman6> newhoggy: I'd be interested to hear if you find anything you could use in hw-dsv in there
2020-10-13 01:51:20 +0200 <newhoggy> Yep. I had a skim and would like to look into it in more detail later.
2020-10-13 01:51:23 +0200m1000(~Boss@2a02:8108:96bf:b068:9dab:a091:4eab:df71) ()
2020-10-13 01:51:45 +0200 <gentauro> .NET also have number separators like -> https://twitter.com/denicmarko/status/1314198060117884928
2020-10-13 01:51:54 +0200 <gentauro> will it ever come to Haskell for better readability?
2020-10-13 01:52:15 +0200 <Axman6> GHC already has that
2020-10-13 01:52:40 +0200 <gentauro> Axman6: `Use NumericUnderscores to allow underscores in integer literals` :o
2020-10-13 01:52:44 +0200 <gentauro> I didn't knew that
2020-10-13 01:52:48 +0200 <Axman6> yes
2020-10-13 01:53:21 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-10-13 01:53:31 +0200 <Axman6> not sure if Ada came up with that, but it's one of the features of Ada I always liked. great for binary literals: 0b1101_0101_1100_1010
2020-10-13 01:53:32 +0200 <gentauro> I like it !!!
2020-10-13 01:53:56 +0200 <gentauro> Axman6: `great for binary literals: 0b1101_0101_1100_1010` exactly
2020-10-13 01:54:01 +0200st8less(~st8less@2603:a060:11fd:0:9c66:9b18:c21:60c)
2020-10-13 01:54:08 +0200 <no-n> it's in perl and C# too
2020-10-13 01:54:10 +0200ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-13 01:54:10 +0200 <gentauro> but also big numbers: 42_000_000_000
2020-10-13 01:54:34 +0200 <Axman6> except when you confuse people by doing 42_000_000_0000 =)
2020-10-13 01:54:39 +0200 <newhoggy> Axman6: One of the design choices I made was to load the CVS via a lazy ByteString. I suspect there is a performance penalty for doing that and the method is not easily parrallelisable. There is an option to `mmap` to increase parallelism but in this case there is the down side the process will clock up a lot of memory usage which may not be suitable for some kinds of jobs.
2020-10-13 01:55:28 +0200 <Axman6> do you know if the chunks of the lazy bytestring are mmapped?
2020-10-13 01:55:34 +0200 <hekkaidekapus> dminuoso: “We do not discuss overlapping instances, implicit parameters, superclasses, or functional dependencies, although our implementation deals with all of these.” — (Emphasis is mine) Hmm… The paper may not be what you want if the implementation has changed in recent years. I would love to continue the digging, alas bed is calling. See you later.
2020-10-13 01:55:51 +0200 <gentauro> 01:54 < Axman6> except when you confuse people by doing 42_000_000_0000 =)
2020-10-13 01:55:56 +0200 <newhoggy> The kinds of jobs I'm thinking of are those that run in typical memory constrained VMs in where virtual memory is usually turned off (like in AWS)
2020-10-13 01:56:04 +0200 <gentauro> people doing that should loose at least a finger :)
2020-10-13 01:56:12 +0200 <int-e> Yeah with {-# LANGUAGE BinaryLiterals, NumericUnderscores #-} you can have 0b1000_000 or maybe 0b_1000_0000
2020-10-13 01:56:28 +0200 <Axman6> sine it is mmapped the memory usage isn't real memory usage right? the OS can page them out if needed since it's loaded read only
2020-10-13 01:56:56 +0200 <justsomeguy> gentauro: Seems like an easy typo to make. Maybe it should be checked by the compiler.
2020-10-13 01:57:21 +0200 <newhoggy> Swap gets turned off a lot on AWS because of the higher latency to disk of most machine types.
2020-10-13 01:57:22 +0200 <int-e> (Hmm, the first one came out short :) )
2020-10-13 01:57:28 +0200 <Axman6> newhoggy: I would be surprised if you can't mmap a huge file read only even if there isn't enough ram
2020-10-13 01:58:45 +0200 <newhoggy> I haven't tested it, but you may be right in that an mmapped file will function as expected even if swap is disabled.
2020-10-13 01:59:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-13 02:00:01 +0200CrystalNice(~CrystalNi@s91904426.blix.com) ()
2020-10-13 02:00:02 +0200 <newhoggy> I think the danger is if a page you're not done with gets evicted because you're aggressively pulling in new pages and you are forced to pay to reload it. On AWS, that's likely to be more expensive.
2020-10-13 02:00:50 +0200 <newhoggy> The other reason streaming is prefferrably is the CSV files *usually* come from S3 in compressed form rather than from local disk.
2020-10-13 02:00:58 +0200 <newhoggy> preferrable*
2020-10-13 02:01:16 +0200 <ski> % 0x10_10.10_10
2020-10-13 02:01:16 +0200 <yahb> ski: 4112.062744140625
2020-10-13 02:01:30 +0200 <ski> % 0b10_10.10_10
2020-10-13 02:01:31 +0200 <yahb> ski: ; <interactive>:151:1: error:; * Could not deduce (Num (b0 -> c)); (maybe you haven't applied a function to enough arguments?); from the context: (Num (b -> c), Num (a -> b)); bound by the inferred type for `it':; forall b c a. (Num (b -> c), Num (a -> b)) => a -> c; at <interactive>:151:1-13; The type variable `b0' is ambiguous; * In the ambig
2020-10-13 02:02:05 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
2020-10-13 02:02:24 +0200jedws(~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 02:03:31 +0200 <Axman6> newhoggy: sure, though my take on this is that if you _do_ have a single strict bytestring, you should be abble to process it efficiently
2020-10-13 02:03:38 +0200 <newhoggy> Most likely use case is outside the cloud. Either locally or custom hardware.
2020-10-13 02:03:57 +0200 <Axman6> I would be interested to see the benchmark comparing both
2020-10-13 02:04:21 +0200 <newhoggy> Yeah. `hw-dsv` does have a strict mode which uses `mmap`
2020-10-13 02:05:34 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6800:17f1:f8ae:fc06)
2020-10-13 02:05:35 +0200 <newhoggy> I think it ends up slower in general because it has to build a `cspoppy` index.
2020-10-13 02:05:36 +0200 <Axman6> great - I couldn't remember from looking at the code yesterday
2020-10-13 02:06:25 +0200 <newhoggy> I don't have a data parallel version of the index building code :D
2020-10-13 02:06:45 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-10-13 02:07:03 +0200 <newhoggy> I wonder if that is possible?
2020-10-13 02:07:21 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6800:17f1:f8ae:fc06) (Client Quit)
2020-10-13 02:07:33 +0200 <newhoggy> Definitely interested in what the article does.
2020-10-13 02:07:36 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 02:09:45 +0200ahab(483206cb@adsl-72-50-6-203.prtc.net)
2020-10-13 02:09:50 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 02:09:59 +0200conal(~conal@64.71.133.70)
2020-10-13 02:10:00 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd)
2020-10-13 02:11:27 +0200ahabmgs
2020-10-13 02:11:40 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-13 02:12:36 +0200sep2(49dc4892@c-73-220-72-146.hsd1.ca.comcast.net)
2020-10-13 02:14:43 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-10-13 02:15:52 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Ping timeout: 260 seconds)
2020-10-13 02:17:50 +0200 <sep2> https://dpaste.org/V12z I want to go through entire list and see if they are all proper. On union
2020-10-13 02:18:22 +0200 <sep2> From what you see here, how can I just get my list?
2020-10-13 02:21:39 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 02:22:03 +0200ccallahan1(~ccallahan@185.204.1.185)
2020-10-13 02:22:33 +0200jedws(~jedws@121.209.161.98)
2020-10-13 02:23:54 +0200recon_-(~quassel@2602:febc:0:b6::6ca2) (Ping timeout: 244 seconds)
2020-10-13 02:24:49 +0200st8less(~st8less@2603:a060:11fd:0:9c66:9b18:c21:60c) (Ping timeout: 272 seconds)
2020-10-13 02:26:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 02:28:19 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-10-13 02:28:27 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2020-10-13 02:30:32 +0200ystael(~ystael@209.6.50.55) (Ping timeout: 256 seconds)
2020-10-13 02:30:35 +0200jedws(~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 02:31:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-10-13 02:31:46 +0200Tario(~Tario@201.192.165.173)
2020-10-13 02:32:21 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 02:33:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 02:33:50 +0200jedws(~jedws@121.209.161.98)
2020-10-13 02:33:55 +0200 <lemmih_> sep2: That link is 404.
2020-10-13 02:34:27 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2020-10-13 02:34:30 +0200chenshen(~chenshen@2620:10d:c090:400::5:f7f9) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2020-10-13 02:34:34 +0200bjobjo(~bjobjo@2a01:79c:cebf:d688::9e6) (Ping timeout: 244 seconds)
2020-10-13 02:34:57 +0200sep2(49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-10-13 02:35:45 +0200hyiltiz(~quassel@2601:14d:4100:112c:cff4:7114:bc84:3722)
2020-10-13 02:35:45 +0200hyiltiz(~quassel@2601:14d:4100:112c:cff4:7114:bc84:3722) (Changing host)
2020-10-13 02:35:45 +0200hyiltiz(~quassel@unaffiliated/hyiltiz)
2020-10-13 02:35:59 +0200hyiltiz(~quassel@unaffiliated/hyiltiz) (Client Quit)
2020-10-13 02:37:19 +0200L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds)
2020-10-13 02:39:39 +0200L29Ah(~L29Ah@unaffiliated/l29ah)
2020-10-13 02:39:55 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 02:41:27 +0200bjobjo(~bjobjo@2a01:79c:cebf:d688::9e6)
2020-10-13 02:41:32 +0200mgs(483206cb@adsl-72-50-6-203.prtc.net) (Remote host closed the connection)
2020-10-13 02:42:13 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-13 02:42:47 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 02:44:55 +0200recon_-(~quassel@2602:febc:0:b6::6ca2)
2020-10-13 02:45:16 +0200chenshen(~chenshen@2620:10d:c090:400::5:f7f9)
2020-10-13 02:46:12 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 02:46:19 +0200hyiltiz(~quassel@82.118.227.47)
2020-10-13 02:46:20 +0200hyiltiz(~quassel@82.118.227.47) (Changing host)
2020-10-13 02:46:20 +0200hyiltiz(~quassel@unaffiliated/hyiltiz)
2020-10-13 02:47:02 +0200oisdk(~oisdk@2001:bb6:3329:d100:7c51:293a:6844:5080) (Quit: oisdk)
2020-10-13 02:47:42 +0200laxask(~lax@unaffiliated/laxask)
2020-10-13 02:50:52 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 02:51:32 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-10-13 02:54:29 +0200conal(~conal@64.71.133.70)
2020-10-13 02:55:55 +0200jedws(~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 02:59:05 +0200blacklight(~blackligh@d94186.upc-d.chello.nl)
2020-10-13 02:59:19 +0200blacklight(~blackligh@d94186.upc-d.chello.nl) ()
2020-10-13 03:00:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 03:00:41 +0200jedws(~jedws@121.209.161.98)
2020-10-13 03:01:28 +0200jedws(~jedws@121.209.161.98) (Client Quit)
2020-10-13 03:04:36 +0200Nolrai(4c1bcada@c-76-27-202-218.hsd1.or.comcast.net)
2020-10-13 03:04:58 +0200toorevitimirp(~tooreviti@117.182.180.0)
2020-10-13 03:05:35 +0200 <Nolrai> So whats the name for Functor like things where you need both `a -> b` and `b -> a` to get `f a -> f b`?
2020-10-13 03:06:18 +0200 <Nolrai> One second..I need to reboot.
2020-10-13 03:06:22 +0200Nolrai(4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) (Remote host closed the connection)
2020-10-13 03:07:55 +0200xff0x(~fox@2001:1a81:52ad:5800:a0c7:cc77:f7d4:2372) (Ping timeout: 240 seconds)
2020-10-13 03:10:09 +0200xff0x(~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372)
2020-10-13 03:10:51 +0200wei2912(~wei2912@unaffiliated/wei2912)
2020-10-13 03:10:58 +0200nolrai(4c1bcada@c-76-27-202-218.hsd1.or.comcast.net)
2020-10-13 03:10:59 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds)
2020-10-13 03:11:08 +0200 <nolrai> Sorry about that.
2020-10-13 03:11:33 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-13 03:13:00 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2020-10-13 03:13:46 +0200 <jackdk> nolrai: try the `invariant` package?
2020-10-13 03:18:38 +0200chenshen(~chenshen@2620:10d:c090:400::5:f7f9) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2020-10-13 03:22:51 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 03:23:32 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
2020-10-13 03:25:10 +0200nyaomi(~naomi@cpe-74-75-6-125.maine.res.rr.com) (Quit: meow)
2020-10-13 03:25:38 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-upzgdjixzxbjunfz) (Quit: Connection closed for inactivity)
2020-10-13 03:26:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-10-13 03:27:38 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
2020-10-13 03:27:58 +0200 <gentauro> justsomeguy: I guess that would be difficult to do
2020-10-13 03:28:29 +0200 <gentauro> in Axman6 example he uses four digits cos binary while I use three cos of thousand, million, billion, …
2020-10-13 03:30:56 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 03:34:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-10-13 03:35:43 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd)
2020-10-13 03:36:46 +0200darjeeli1(~darjeelin@122.245.210.138) (Ping timeout: 256 seconds)
2020-10-13 03:39:10 +0200jedws(~jedws@121.209.161.98)
2020-10-13 03:42:20 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 03:44:01 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-13 03:48:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-10-13 03:48:59 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Ping timeout: 240 seconds)
2020-10-13 03:52:24 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-13 03:54:28 +0200elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-10-13 03:57:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-10-13 03:57:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-13 03:58:01 +0200darjeeli1(~darjeelin@122.245.210.138)
2020-10-13 03:58:02 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 03:58:38 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 03:58:55 +0200 <ski> @type dimap -- nolrai
2020-10-13 03:58:56 +0200 <lambdabot> Profunctor p => (a -> b) -> (c -> d) -> p b c -> p a d
2020-10-13 03:59:16 +0200 <ski> oh, i suppose that's not quite what you were looking for
2020-10-13 04:00:55 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 240 seconds)
2020-10-13 04:01:35 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc)
2020-10-13 04:01:46 +0200nolrai(4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) (Quit: Ping timeout (120 seconds))
2020-10-13 04:02:43 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-10-13 04:04:05 +0200danso(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 04:04:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 04:04:55 +0200 <Buntspecht> It's like functor plus cofunctor
2020-10-13 04:06:29 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-10-13 04:07:47 +0200 <ski> (no such thing as "cofunctor". itym "contravariant functor")
2020-10-13 04:08:06 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds)
2020-10-13 04:08:38 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 04:08:38 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 04:08:38 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 04:08:46 +0200 <Buntspecht> Yeah
2020-10-13 04:09:12 +0200 <dolio> But it's also not a covariant nor contravariant functor.
2020-10-13 04:09:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-10-13 04:10:20 +0200 <dolio> Oh, well, profunctors are, but things that tie together both arguments aren't.
2020-10-13 04:10:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-13 04:11:55 +0200 <Buntspecht> Meh, they already left ...
2020-10-13 04:13:26 +0200mdunnio(~mdunnio@208.59.170.5)
2020-10-13 04:13:32 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2020-10-13 04:13:43 +0200lagothrixGuest26381
2020-10-13 04:13:43 +0200Guest26381(~lagothrix@unaffiliated/lagothrix) (Killed (barjavel.freenode.net (Nickname regained by services)))
2020-10-13 04:13:49 +0200lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-10-13 04:13:53 +0200aarvar(~foewfoiew@50.35.43.33) ()
2020-10-13 04:13:54 +0200bcmiller(~bm3719@66.42.95.185) (Ping timeout: 265 seconds)
2020-10-13 04:14:18 +0200dave_uy(~david@108.61.193.26) (Ping timeout: 260 seconds)
2020-10-13 04:14:23 +0200byorgey(~byorgey@155.138.238.211) (Ping timeout: 265 seconds)
2020-10-13 04:14:38 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-10-13 04:15:48 +0200 <fresheyeball> hey out there
2020-10-13 04:15:57 +0200 <fresheyeball> anyone know how to debug hie with vscode?
2020-10-13 04:16:06 +0200 <fresheyeball> I moved to vscode for hie, and it was working amazing
2020-10-13 04:16:11 +0200 <fresheyeball> but I still have some issues
2020-10-13 04:16:26 +0200 <fresheyeball> Failed to parse result of calling cabal
2020-10-13 04:16:28 +0200 <fresheyeball> Warning: cannot determine version of /run/user/1000/bios-wrapper29062-0 :
2020-10-13 04:16:30 +0200 <fresheyeball> ""
2020-10-13 04:16:32 +0200 <fresheyeball> cabal: The program 'ghc' version >=7.0.1 is required but the version of
2020-10-13 04:16:34 +0200 <fresheyeball> /run/user/1000/bios-wrapper29062-0 could not be determined.
2020-10-13 04:16:36 +0200 <fresheyeball> this is it right now
2020-10-13 04:17:45 +0200mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 240 seconds)
2020-10-13 04:19:03 +0200sand_dull(~theuser@104.140.53.43)
2020-10-13 04:19:49 +0200solonarv(~solonarv@adijon-655-1-70-207.w90-13.abo.wanadoo.fr) (Ping timeout: 246 seconds)
2020-10-13 04:21:17 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Ping timeout: 260 seconds)
2020-10-13 04:21:47 +0200solonarv(~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr)
2020-10-13 04:26:20 +0200Saukk(~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3)
2020-10-13 04:27:05 +0200theDon(~td@muedsl-82-207-238-192.citykom.de) (Ping timeout: 240 seconds)
2020-10-13 04:28:59 +0200vicfred_(~vicfred@unaffiliated/vicfred)
2020-10-13 04:29:02 +0200theDon(~td@muedsl-82-207-238-211.citykom.de)
2020-10-13 04:29:34 +0200solonarv(~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Ping timeout: 258 seconds)
2020-10-13 04:31:36 +0200vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 272 seconds)
2020-10-13 04:35:39 +0200dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
2020-10-13 04:36:24 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-10-13 04:36:29 +0200dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-10-13 04:39:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 04:46:07 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2020-10-13 04:46:25 +0200 <koz_> ski: I think they meant an invariant functor.
2020-10-13 04:47:38 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 04:48:22 +0200dyeplexer(~lol@unaffiliated/terpin)
2020-10-13 04:51:55 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-13 04:53:25 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
2020-10-13 04:53:57 +0200topos(sid467876@gateway/web/irccloud.com/x-gyqsqvcawuyxkhnv)
2020-10-13 05:00:01 +0200ccallahan1(~ccallahan@185.204.1.185) ()
2020-10-13 05:03:28 +0200darjeeli1(~darjeelin@122.245.210.138) (Ping timeout: 256 seconds)
2020-10-13 05:04:52 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-13 05:05:10 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Ping timeout: 272 seconds)
2020-10-13 05:05:14 +0200SupaYoshii(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-10-13 05:09:07 +0200 <Axman6> gentauro, justsomeguy: IIRC Indian numbers are often divided in a way similar to what I did, I don't remember the details but think it was something like four digits and then the rest are grouped by two digits
2020-10-13 05:10:33 +0200 <Axman6> looks like it's three, then twos
2020-10-13 05:11:50 +0200 <Axman6> Crore => 1,00,00,000, Lakh Crore => 10,00,00,00,00,000
2020-10-13 05:13:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-10-13 05:15:56 +0200nyaomi(~naomi@cpe-74-75-6-125.maine.res.rr.com)
2020-10-13 05:16:25 +0200darjeeli1(~darjeelin@122.245.216.36)
2020-10-13 05:21:09 +0200vincenz(~chris@104-1-91-5.lightspeed.sntcca.sbcglobal.net)
2020-10-13 05:21:15 +0200vincenzwaves
2020-10-13 05:23:20 +0200 <Axman6> o/
2020-10-13 05:23:37 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 05:25:23 +0200 <jackdk> Is there a library which provides a convenient function of this type: `HashMap k1 (HashMap k2 v) -> HashMap k2 (HashMap k1 v)`? It felt like `distributive`, but that package doesn't seem to do instances for things in `containers` and I may have misunderstood its theory
2020-10-13 05:25:53 +0200ericsagnes(~ericsagne@2405:6580:0:5100:fd7f:2256:81b3:b295) (Ping timeout: 246 seconds)
2020-10-13 05:26:10 +0200 <ski> yea, i realized, koz_
2020-10-13 05:26:22 +0200 <vincenz> Hi ski
2020-10-13 05:26:29 +0200 <ski> hello vincenz
2020-10-13 05:27:25 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2020-10-13 05:27:27 +0200 <ski> jackdk : looks like a kind of "transposition". perhaps you can find one that first goes to `HashMap (k1,k2) v' ?
2020-10-13 05:29:01 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 264 seconds)
2020-10-13 05:29:22 +0200dave_uy(~david@108.61.193.26)
2020-10-13 05:30:36 +0200bcmiller(~bm3719@66.42.95.185)
2020-10-13 05:30:40 +0200byorgey(~byorgey@155.138.238.211)
2020-10-13 05:34:15 +0200 <vincenz> ski been a while
2020-10-13 05:35:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-10-13 05:36:23 +0200 <jackdk> ski: well sure: I can `fmap toList`, then toList, then rebuild the table. But that might not be quite what you're asking?
2020-10-13 05:37:05 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 05:38:30 +0200ericsagnes(~ericsagne@2405:6580:0:5100:9db:d3a4:6a7a:3b95)
2020-10-13 05:38:54 +0200 <Axman6> :t Map.toList . fmap Map.toList
2020-10-13 05:38:55 +0200 <lambdabot> error:
2020-10-13 05:38:55 +0200 <lambdabot> Not in scope: ‘Map.toList’
2020-10-13 05:38:55 +0200 <lambdabot> Perhaps you meant one of these:
2020-10-13 05:39:01 +0200 <Axman6> :t M.toList . fmap M.toList
2020-10-13 05:39:03 +0200 <lambdabot> M.Map k1 (M.Map k2 a) -> [(k1, [(k2, a)])]
2020-10-13 05:39:20 +0200drbean(~drbean@TC210-63-209-59.static.apol.com.tw)
2020-10-13 05:40:39 +0200 <Axman6> jackdk: this feels like a thing that reflex would have implemented somewhere (with efficient observations n' stuff)
2020-10-13 05:41:04 +0200 <ski> vincenz : yep
2020-10-13 05:43:18 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc)
2020-10-13 05:43:30 +0200 <jackdk> so the reason we can't have Distributive and (and therefore not Representable either) is that you need an isomorphism to `(->) x` for some x. Which we don't have; we have like an isomorphism `HashMap k <-> Compose ((->) k) Maybe` or something
2020-10-13 05:47:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 05:49:54 +0200 <vincenz> Is there a type for a vector of N values?
2020-10-13 05:49:59 +0200 <vincenz> Where N is fixed
2020-10-13 05:50:17 +0200Tario(~Tario@201.192.165.173)
2020-10-13 05:51:33 +0200 <jackdk> https://hackage.haskell.org/package/vector-sized
2020-10-13 05:51:35 +0200 <jackdk> maybe?
2020-10-13 05:51:47 +0200polyrain_(~polyrain@2001:8003:e501:6901:39c5:19e3:cc60:4fe5) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 05:51:59 +0200 <jackdk> the `linear` package also has some short vectors useful for 3D sort of work
2020-10-13 05:52:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-10-13 05:52:57 +0200 <vincenz> I'm trying to define a partial order on a pareto space
2020-10-13 05:53:57 +0200 <vincenz> Thanks! jackdk, that seems better than the one I was looking ato
2020-10-13 05:56:58 +0200 <jackdk> I don't know those mathswords but good luck
2020-10-13 05:57:51 +0200 <Axman6> he's talking about the birds space pirates have
2020-10-13 05:57:53 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 05:59:21 +0200 <jackdk> rawk
2020-10-13 06:02:09 +0200 <jackdk> so there's not a map-specialised transposition function I'm aware of. Has anyone seen one like it for lists? `[(a,[(b,c)])] -> [(b,[(a,c)])]`?
2020-10-13 06:02:41 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 272 seconds)
2020-10-13 06:03:48 +0200Volt_(~Volt_@c-73-145-164-70.hsd1.mi.comcast.net)
2020-10-13 06:05:42 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Ping timeout: 260 seconds)
2020-10-13 06:08:37 +0200balbirs(~balbirs__@ozlabs.org) (Ping timeout: 260 seconds)
2020-10-13 06:10:38 +0200Jeanne-Kamikaze(~Jeanne-Ka@68.235.43.86)
2020-10-13 06:10:39 +0200 <Axman6> should be pretty simple with a list comprehension
2020-10-13 06:12:13 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds)
2020-10-13 06:14:08 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-13 06:14:40 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 06:15:08 +0200 <dibblego> https://github.com/qfpl/separated/blob/master/src/Data/Separated.hs#L902
2020-10-13 06:15:50 +0200 <Axman6> "[5,'x',6]" I beg your pardon what is this nonsense
2020-10-13 06:16:19 +0200 <jackdk> I do not understand what I am looking at
2020-10-13 06:16:29 +0200 <Axman6> :aliens:
2020-10-13 06:16:35 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 06:17:04 +0200 <dibblego> actually it's a bit different to what you wrote
2020-10-13 06:17:37 +0200conal(~conal@64.71.133.70)
2020-10-13 06:18:22 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-13 06:18:47 +0200 <Axman6> :t lef f mmp = fold [ (k2,M.singleton k1 v) | (k1,vs) <- M.toList mmp, (k2,v) <- M.toList vs in f
2020-10-13 06:18:49 +0200 <lambdabot> error: parse error on input ‘=’
2020-10-13 06:18:59 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Ping timeout: 260 seconds)
2020-10-13 06:19:05 +0200 <Axman6> :t let f mmp = fold [ (k2,M.singleton k1 v) | (k1,vs) <- M.toList mmp, (k2,v) <- M.toList vs] in f
2020-10-13 06:19:07 +0200 <lambdabot> (Monoid a1, Ord k) => M.Map k (M.Map a1 a2) -> (a1, M.Map k a2)
2020-10-13 06:19:37 +0200 <Axman6> :t let f mmp = M.fromListWith M.union [ (k2,M.singleton k1 v) | (k1,vs) <- M.toList mmp, (k2,v) <- M.toList vs] in f
2020-10-13 06:19:39 +0200 <lambdabot> (Ord k1, Ord k2) => M.Map k2 (M.Map k1 a) -> M.Map k1 (M.Map k2 a)
2020-10-13 06:19:40 +0200vicfred_(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-10-13 06:19:48 +0200chenshen(~chenshen@2620:10d:c090:400::5:80e8)
2020-10-13 06:20:26 +0200 <Axman6> technically there's optimisations to be had from the uniqueness of the keys but yolo
2020-10-13 06:20:38 +0200 <Axman6> jackdk: happy?
2020-10-13 06:20:38 +0200conal(~conal@64.71.133.70)
2020-10-13 06:22:45 +0200dyeplexer(~lol@unaffiliated/terpin) (Ping timeout: 240 seconds)
2020-10-13 06:23:08 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-13 06:24:48 +0200 <jackdk> axman6: I broke out the monoidal-containers hammer https://www.irccloud.com/pastebin/atKmxOH8/Transpose.hs
2020-10-13 06:24:50 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 06:24:51 +0200conal(~conal@64.71.133.70)
2020-10-13 06:25:01 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 06:25:02 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-13 06:25:21 +0200 <jackdk> I think I like yours better
2020-10-13 06:25:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 06:25:56 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc)
2020-10-13 06:26:17 +0200conal(~conal@64.71.133.70)
2020-10-13 06:26:37 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-13 06:27:00 +0200 <Axman6> :t let f mmp = M.fromListWith M.union $ do { (k1,vs) <- M.toList mmp; (k2,v) <- M.toList vs; pure (k2,M.singleton k1 v) } in f
2020-10-13 06:27:01 +0200 <lambdabot> (Ord k1, Ord k2) => M.Map k2 (M.Map k1 a) -> M.Map k1 (M.Map k2 a)
2020-10-13 06:28:03 +0200conal(~conal@64.71.133.70)
2020-10-13 06:28:14 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-13 06:28:15 +0200 <jackdk> yeah I thnk donotation is clearer
2020-10-13 06:30:09 +0200day_(~Unknown@unaffiliated/day)
2020-10-13 06:30:18 +0200dyeplexer(~lol@unaffiliated/terpin)
2020-10-13 06:30:49 +0200ironmarx(~ironmarx@184.75.221.179)
2020-10-13 06:31:15 +0200 <Axman6> @ :t let f mmp = M.fromListWith M.union $ do { (k1,vs) <- M.toList mmp; (k2,v) <- M.toList vs; [(k2,[(k1, v)])] } in f
2020-10-13 06:31:27 +0200 <Axman6> % :t let f mmp = M.fromListWith M.union $ do { (k1,vs) <- M.toList mmp; (k2,v) <- M.toList vs; [(k2,[(k1, v)])] } in f
2020-10-13 06:31:27 +0200 <yahb> Axman6: ; <interactive>:1:97: error:; * Couldn't match expected type `Map k3 a3' with actual type `[(a2, b1)]'; * In the expression: [(k1, v)]; In the expression: (k2, [(k1, v)]); In a stmt of a 'do' block: [(k2, [(k1, v)])]; * Relevant bindings include; v :: b1 (bound at <interactive>:1:73); vs :: Map k2 b1 (bound at <interactive>:1:48); k1 :: a2 (bound at <interact
2020-10-13 06:31:41 +0200 <Axman6> % :set -XOverloadedLists
2020-10-13 06:31:41 +0200 <yahb> Axman6:
2020-10-13 06:31:44 +0200 <Axman6> % :t let f mmp = M.fromListWith M.union $ do { (k1,vs) <- M.toList mmp; (k2,v) <- M.toList vs; [(k2,[(k1, v)])] } in f
2020-10-13 06:31:44 +0200 <yahb> Axman6: (Ord k1, Ord k2) => Map k2 (Map k1 a) -> Map k1 (Map k2 a)
2020-10-13 06:31:49 +0200 <Axman6> awww yiss
2020-10-13 06:32:45 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-10-13 06:32:48 +0200 <vincenz> How do I do something like:
2020-10-13 06:33:08 +0200 <vincenz> for all n: instance PartialOrd a => PartialOrd (Vector n a)
2020-10-13 06:33:10 +0200day(~Unknown@unaffiliated/day) (Ping timeout: 246 seconds)
2020-10-13 06:33:10 +0200day_day
2020-10-13 06:33:45 +0200Sanchayan(~Sanchayan@106.201.37.251)
2020-10-13 06:34:45 +0200macrover(~macrover@ip70-189-231-35.lv.lv.cox.net) (Ping timeout: 240 seconds)
2020-10-13 06:35:40 +0200dan64(~dan64@dannyadam.com)
2020-10-13 06:36:47 +0200 <Axman6> instance (KnownNat n, PartialOrd a) => PArtialOrd (Vector n a)?
2020-10-13 06:37:24 +0200 <vincenz> Thanks, I'll try tat!
2020-10-13 06:41:34 +0200ddellacosta(~dd@86.106.121.168) (Ping timeout: 256 seconds)
2020-10-13 06:41:44 +0200 <vincenz> I'll go without fixed size for now to simplify, then I can always add it later I guess
2020-10-13 06:42:25 +0200alp(~alp@2a01:e0a:58b:4920:2ccf:c5eb:4256:63a6)
2020-10-13 06:45:11 +0200danso(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-13 06:45:11 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-13 06:45:51 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 06:46:25 +0200danso(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 06:46:56 +0200 <vincenz> How do I qualify an operator in binding position?
2020-10-13 06:47:09 +0200 <vincenz> instnace ... where .... x PartialOrd.<= y = ...
2020-10-13 06:49:51 +0200 <vincenz> Found it, I import only what I want from prelude and thus mask the <= in prelude
2020-10-13 06:52:44 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2020-10-13 06:53:59 +0200aqd(~aqd@87-92-145-87.rev.dnainternet.fi)
2020-10-13 06:58:38 +0200balbirs(~balbirs__@ozlabs.org)
2020-10-13 06:59:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-10-13 07:00:59 +0200sand_dull(~theuser@104.140.53.43) (Ping timeout: 258 seconds)
2020-10-13 07:02:53 +0200toorevitimirp(~tooreviti@117.182.180.0) (Ping timeout: 260 seconds)
2020-10-13 07:04:25 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 264 seconds)
2020-10-13 07:06:31 +0200plutoniix(~q@node-unw.pool-125-24.dynamic.totinternet.net)
2020-10-13 07:09:22 +0200toorevitimirp(~tooreviti@117.182.180.0)
2020-10-13 07:09:25 +0200jespada(~jespada@90.254.245.15) (Ping timeout: 240 seconds)
2020-10-13 07:12:04 +0200jespada(~jespada@90.254.245.15)
2020-10-13 07:12:10 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2020-10-13 07:13:09 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 07:13:27 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 07:13:28 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 07:13:28 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 07:16:47 +0200alp(~alp@2a01:e0a:58b:4920:2ccf:c5eb:4256:63a6) (Ping timeout: 272 seconds)
2020-10-13 07:17:03 +0200bitmagie(~Thunderbi@200116b806cb540040a9783a9ea970a9.dip.versatel-1u1.de)
2020-10-13 07:17:14 +0200bitmagie(~Thunderbi@200116b806cb540040a9783a9ea970a9.dip.versatel-1u1.de) (Client Quit)
2020-10-13 07:18:23 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 07:18:37 +0200ironmarx(~ironmarx@184.75.221.179) (Remote host closed the connection)
2020-10-13 07:19:59 +0200darjeeli1(~darjeelin@122.245.216.36) (Ping timeout: 265 seconds)
2020-10-13 07:19:59 +0200ishutin_(~Ishutin@178-164-207-98.pool.digikabel.hu)
2020-10-13 07:21:25 +0200darjeeli1(~darjeelin@122.245.216.36)
2020-10-13 07:23:05 +0200ishutin(~Ishutin@193-110-63-54.cable-modem.hdsnet.hu) (Ping timeout: 240 seconds)
2020-10-13 07:23:18 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-10-13 07:24:28 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 07:28:47 +0200vicfred(~vicfred@unaffiliated/vicfred)
2020-10-13 07:29:21 +0200chenshen(~chenshen@2620:10d:c090:400::5:80e8) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2020-10-13 07:29:43 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
2020-10-13 07:30:57 +0200nyd(~lpy@unaffiliated/elysian)
2020-10-13 07:33:10 +0200chele(~chele@5.53.222.202)
2020-10-13 07:33:23 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 244 seconds)
2020-10-13 07:33:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 07:34:40 +0200romtam(~romtam@s91904426.blix.com)
2020-10-13 07:35:18 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 07:38:12 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 07:38:23 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-13 07:38:23 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-13 07:38:23 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 07:38:44 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-10-13 07:45:00 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-13 07:45:23 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 07:45:45 +0200vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 256 seconds)
2020-10-13 07:46:17 +0200bliminse(~bliminse@host217-42-95-37.range217-42.btcentralplus.com)
2020-10-13 07:47:16 +0200lep-deleteGuest88073
2020-10-13 07:49:05 +0200sapek(1812cc74@c-24-18-204-116.hsd1.wa.comcast.net)
2020-10-13 07:49:33 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
2020-10-13 07:51:28 +0200sapek(1812cc74@c-24-18-204-116.hsd1.wa.comcast.net) (Remote host closed the connection)
2020-10-13 07:54:47 +0200plutoniix(~q@node-unw.pool-125-24.dynamic.totinternet.net) (Ping timeout: 265 seconds)
2020-10-13 07:58:44 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 07:59:12 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 07:59:12 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 07:59:12 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-13 08:00:01 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds)
2020-10-13 08:00:01 +0200romtam(~romtam@s91904426.blix.com) ()
2020-10-13 08:00:40 +0200Jeanne-Kamikaze(~Jeanne-Ka@68.235.43.86) (Ping timeout: 246 seconds)
2020-10-13 08:03:10 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 244 seconds)
2020-10-13 08:08:57 +0200plutoniix(~q@ppp-27-55-89-214.revip3.asianet.co.th)
2020-10-13 08:09:21 +0200ericsagnes(~ericsagne@2405:6580:0:5100:9db:d3a4:6a7a:3b95) (Ping timeout: 272 seconds)
2020-10-13 08:12:02 +0200plutoniix(~q@ppp-27-55-89-214.revip3.asianet.co.th) (Excess Flood)
2020-10-13 08:12:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 08:12:36 +0200plutoniix(~q@ppp-27-55-89-214.revip3.asianet.co.th)
2020-10-13 08:18:11 +0200vonfry(~user@38.94.109.36)
2020-10-13 08:18:19 +0200plutoniix(~q@ppp-27-55-89-214.revip3.asianet.co.th) (Read error: Connection reset by peer)
2020-10-13 08:19:38 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-10-13 08:20:27 +0200Saukk(~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) (Ping timeout: 260 seconds)
2020-10-13 08:21:35 +0200ericsagnes(~ericsagne@2405:6580:0:5100:38c4:6bae:c9c7:c00b)
2020-10-13 08:21:48 +0200Wayno(~Wayno@185.163.110.116)
2020-10-13 08:22:57 +0200hackagehurl 1.4.2.0 - Haskell URL resolver https://hackage.haskell.org/package/hurl-1.4.2.0 (alcinnz)
2020-10-13 08:23:04 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 08:23:14 +0200GyroW(~GyroW@d54c03e98.access.telenet.be)
2020-10-13 08:23:14 +0200GyroW(~GyroW@d54c03e98.access.telenet.be) (Changing host)
2020-10-13 08:23:14 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 08:23:37 +0200sword865(uid208942@gateway/web/irccloud.com/x-sxotpuupdfwwcwxa)
2020-10-13 08:27:24 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 08:27:39 +0200lucid_0x80(~lucid_0x8@188.253.234.30)
2020-10-13 08:27:49 +0200sfvm(~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
2020-10-13 08:28:02 +0200ericsagnes(~ericsagne@2405:6580:0:5100:38c4:6bae:c9c7:c00b) (Ping timeout: 260 seconds)
2020-10-13 08:29:22 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 246 seconds)
2020-10-13 08:30:13 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 08:30:47 +0200mystfox(~myst@focks.pw) (Max SendQ exceeded)
2020-10-13 08:31:02 +0200mozzarella(~sam@unaffiliated/sam113101) (Remote host closed the connection)
2020-10-13 08:31:08 +0200mystfox(~myst@focks.pw)
2020-10-13 08:33:00 +0200mozzarella(~sam@unaffiliated/sam113101)
2020-10-13 08:33:00 +0200mozzarella(~sam@unaffiliated/sam113101) (Remote host closed the connection)
2020-10-13 08:34:22 +0200mozzarella(~sam@unaffiliated/sam113101)
2020-10-13 08:35:01 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 264 seconds)
2020-10-13 08:35:01 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2020-10-13 08:37:16 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-10-13 08:40:50 +0200ericsagnes(~ericsagne@2405:6580:0:5100:85d4:43d9:8dee:59a0)
2020-10-13 08:46:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-13 08:48:21 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 08:48:52 +0200kritzefitz(~kritzefit@fw-front.credativ.com)
2020-10-13 08:48:57 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 08:51:29 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds)
2020-10-13 08:52:18 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-13 08:52:18 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-13 08:52:18 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 08:53:42 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 08:54:05 +0200toorevitimirp(~tooreviti@117.182.180.0) (Remote host closed the connection)
2020-10-13 08:54:52 +0200falafel(~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Ping timeout: 260 seconds)
2020-10-13 08:55:47 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 08:55:47 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 08:55:47 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-13 08:56:37 +0200JordiGH(jordi@octave/developer/JordiGH) (Ping timeout: 260 seconds)
2020-10-13 08:57:09 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds)
2020-10-13 08:58:07 +0200 <gentauro> 05:11 < Axman6> Crore => 1,00,00,000, Lakh Crore => 10,00,00,00,00,000
2020-10-13 08:58:12 +0200 <gentauro> first time I see this :o
2020-10-13 08:59:49 +0200fbm(5ddb33d0@p5ddb33d0.dip0.t-ipconnect.de)
2020-10-13 09:02:18 +0200fbm(5ddb33d0@p5ddb33d0.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-13 09:04:34 +0200John20(~John@82.46.59.122)
2020-10-13 09:04:47 +0200xff0x(~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372) (Ping timeout: 260 seconds)
2020-10-13 09:06:20 +0200toorevitimirp(~tooreviti@117.182.180.0)
2020-10-13 09:08:19 +0200alp(~alp@2a01:e0a:58b:4920:e472:4844:3c7b:eb57)
2020-10-13 09:09:13 +0200cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 265 seconds)
2020-10-13 09:09:49 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-10-13 09:15:58 +0200danso(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-13 09:15:58 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-13 09:16:00 +0200coot(~coot@37.30.50.102.nat.umts.dynamic.t-mobile.pl)
2020-10-13 09:16:31 +0200akegalj(~akegalj@93-138-183-8.adsl.net.t-com.hr)
2020-10-13 09:16:44 +0200danso(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 09:16:49 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 09:16:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 09:17:15 +0200vonfry(~user@38.94.109.36) (Remote host closed the connection)
2020-10-13 09:17:39 +0200vonfry(~user@116.236.75.229)
2020-10-13 09:17:42 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-10-13 09:18:45 +0200vonfry`(~user@38.94.109.36)
2020-10-13 09:19:08 +0200howdoi(uid224@gateway/web/irccloud.com/x-yqmynplgqpklanea) (Quit: Connection closed for inactivity)
2020-10-13 09:20:59 +0200vonfry`(~user@38.94.109.36) (Remote host closed the connection)
2020-10-13 09:21:21 +0200vonfry``(~user@38.94.109.36)
2020-10-13 09:22:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-13 09:22:26 +0200vonfry(~user@116.236.75.229) (Ping timeout: 256 seconds)
2020-10-13 09:24:31 +0200thc202(~thc202@unaffiliated/thc202)
2020-10-13 09:28:58 +0200chaosmasttter(~chaosmast@p200300c4a711b00135524723c22b3f52.dip0.t-ipconnect.de)
2020-10-13 09:29:02 +0200danso(~dan@107-190-41-58.cpe.teksavvy.com) (Quit: WeeChat 2.9)
2020-10-13 09:30:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 09:33:09 +0200oxide(~lambda@unaffiliated/mclaren)
2020-10-13 09:37:58 +0200hackagepandoc-crossref 0.3.8.2 - Pandoc filter for cross-references https://hackage.haskell.org/package/pandoc-crossref-0.3.8.2 (lierdakil)
2020-10-13 09:38:20 +0200raichoo(~raichoo@213.240.178.58)
2020-10-13 09:38:20 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-10-13 09:38:21 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-10-13 09:39:00 +0200Volt_(~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) (Quit: )
2020-10-13 09:40:52 +0200vonfry``(~user@38.94.109.36) (Remote host closed the connection)
2020-10-13 09:41:07 +0200vonfry``(~user@116.236.75.229)
2020-10-13 09:44:15 +0200vonfry```(~user@38.94.109.36)
2020-10-13 09:45:00 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-13 09:45:21 +0200vonfry```(~user@38.94.109.36) ()
2020-10-13 09:46:41 +0200shafox(~shafox@106.51.234.111)
2020-10-13 09:48:04 +0200vonfry``(~user@116.236.75.229) (Ping timeout: 260 seconds)
2020-10-13 09:50:18 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2020-10-13 09:50:50 +0200dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
2020-10-13 09:52:07 +0200xff0x(~fox@217.110.198.158)
2020-10-13 09:54:23 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-13 09:55:31 +0200nyd(~lpy@unaffiliated/elysian) (Ping timeout: 256 seconds)
2020-10-13 09:55:56 +0200nyd(~lpy@unaffiliated/elysian)
2020-10-13 09:59:33 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 09:59:55 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-10-13 10:00:32 +0200ghoulguy(x@freenode/staff/haskell.developer.glguy) (Ping timeout: 615 seconds)
2020-10-13 10:02:11 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
2020-10-13 10:02:14 +0200carldd102(~carldd@90-224-49-113-no56.tbcn.telia.com)
2020-10-13 10:02:41 +0200toorevitimirp(~tooreviti@117.182.180.0) (Quit: Konversation terminated!)
2020-10-13 10:02:48 +0200carldd10(~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
2020-10-13 10:04:37 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 272 seconds)
2020-10-13 10:04:37 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 10:04:40 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-ycssaquegccjnbcx) (Quit: Connection closed for inactivity)
2020-10-13 10:05:00 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 10:06:56 +0200xerox_(~xerox@unaffiliated/xerox) (Read error: Connection reset by peer)
2020-10-13 10:06:56 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 10:08:23 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-10-13 10:08:57 +0200glguy(x@freenode/staff/haskell.developer.glguy)
2020-10-13 10:09:59 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 10:13:05 +0200 <gentauro> so it looks like I got `lsp` to work with `emacs`. But is there a way to disable the "clippy a like boxes"? I mean, as a colorblind person, they don't do anything for me :D https://postimg.cc/QBPhSSM9
2020-10-13 10:13:59 +0200akegalj(~akegalj@93-138-183-8.adsl.net.t-com.hr) (Ping timeout: 265 seconds)
2020-10-13 10:13:59 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 10:14:25 +0200 <gentauro> btw, this is how I got it to work -> https://pastebin.ubuntu.com/p/WTqKCSNJYS/
2020-10-13 10:14:34 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 10:14:42 +0200 <gentauro> it seems like the `install.hs` doesn't really play nice with stack :(
2020-10-13 10:14:58 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 10:15:15 +0200tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Quit: Off to see the wizard.)
2020-10-13 10:16:06 +0200Buntspecht(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-10-13 10:16:06 +0200gentauroI would <3 to update https://github.com/haskell/haskell-language-server/issues/171#issue-643008760 with this comment, but sadly I "wiped" my GH account when M$ overtook the platform …
2020-10-13 10:16:11 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-13 10:16:37 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net)
2020-10-13 10:16:38 +0200tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-10-13 10:18:17 +0200dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Ping timeout: 260 seconds)
2020-10-13 10:18:18 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 10:19:35 +0200 <gentauro> oh, so if I remove `lsp-ui` from `emacs`, then "clippy msgs" go away. Good to know :)
2020-10-13 10:19:59 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 10:21:27 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2020-10-13 10:23:16 +0200 <gentauro> I guess it's fair to say that `lsp-haskell` is pretty fast compared to `intero`. Hmmm
2020-10-13 10:23:29 +0200alp(~alp@2a01:e0a:58b:4920:e472:4844:3c7b:eb57) (Remote host closed the connection)
2020-10-13 10:23:46 +0200oxide(~lambda@unaffiliated/mclaren) (Ping timeout: 258 seconds)
2020-10-13 10:23:50 +0200alp(~alp@2a01:e0a:58b:4920:1dcd:3fff:5840:1f3a)
2020-10-13 10:24:41 +0200encod3(~encod3@45-154-157-94.ftth.glasoperator.nl)
2020-10-13 10:24:41 +0200Ariakenom(~Ariakenom@193.254.193.1)
2020-10-13 10:25:29 +0200oxide(~lambda@unaffiliated/mclaren)
2020-10-13 10:28:19 +0200kindaro(1f08ec14@h31-8-236-20.dyn.bashtel.ru)
2020-10-13 10:28:43 +0200 <kindaro> Is there an introduction to Object Oriented Programming for a functional programmer?
2020-10-13 10:30:27 +0200 <kindaro> I would like to have basic concepts and motivation explained to me, but so far I have not been able to locate a clear introduction.
2020-10-13 10:32:08 +0200 <gentauro> kindaro: at KU they teach the three paradigsm: imperative, FP and OO under the same umbrella (F#) for newcomers to CS
2020-10-13 10:32:18 +0200 <kindaro> KU?
2020-10-13 10:32:34 +0200drbean(~drbean@TC210-63-209-59.static.apol.com.tw) (Ping timeout: 246 seconds)
2020-10-13 10:32:39 +0200 <gentauro> that way it's easier to see the differences between these paradigms (same language/syntax) and not get lost in translation
2020-10-13 10:33:07 +0200 <gentauro> kindaro: KU = København Universitet (in English: University of Copenhagen)
2020-10-13 10:33:28 +0200 <gentauro> maybe the teaching material is available openly? You might reach out to Athas for that
2020-10-13 10:34:58 +0200 <kindaro> This looks like the thing: https://studier.ku.dk/bachelor/datalogi/faq/livet-paa-uddannelsen/Eksempel_p__en_tekst_fra_datalog…
2020-10-13 10:35:44 +0200encod3(~encod3@45-154-157-94.ftth.glasoperator.nl) ()
2020-10-13 10:38:43 +0200 <gentauro> kindaro: might be. I would have hoped for `Torben Ægidius Mogensen` material :)
2020-10-13 10:39:34 +0200glguy(x@freenode/staff/haskell.developer.glguy) (Ping timeout: 606 seconds)
2020-10-13 10:40:30 +0200 <gentauro> kindaro: I'm asking him on FB
2020-10-13 10:42:56 +0200eedgit2(~chat.free@95.179.237.21) (Remote host closed the connection)
2020-10-13 10:43:06 +0200cpressey(~cpressey@88.144.68.224)
2020-10-13 10:43:17 +0200eedgit2(~chat.free@95.179.237.21)
2020-10-13 10:47:56 +0200guest35(d537f42e@213.55.244.46)
2020-10-13 10:54:57 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 10:55:34 +0200polyrain(~polyrain@2001:8003:e501:6901:3d18:f8b0:5f22:3669)
2020-10-13 10:59:28 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-13 11:00:01 +0200glguy(x@freenode/staff/haskell.developer.glguy)
2020-10-13 11:00:02 +0200Wayno(~Wayno@185.163.110.116) ()
2020-10-13 11:02:45 +0200 <merijn> When (which GHC) did Monoid move to prelude?
2020-10-13 11:03:42 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 11:04:10 +0200polyrain_(~polyrain@2001:8003:e501:6901:8a4:c02:960d:e633)
2020-10-13 11:06:11 +0200lucid_0x80(~lucid_0x8@188.253.234.30) (Ping timeout: 265 seconds)
2020-10-13 11:06:22 +0200 <Taneb> merijn: 7.10
2020-10-13 11:06:35 +0200 <Taneb> base has a pretty useful changelog
2020-10-13 11:07:15 +0200 <kindaro> gentauro, I value your help. I have to go presently. If you have any more information about that F# teaching material, please write to me offline _(I can check the public log)_ or ask the bot to deliver a message.
2020-10-13 11:07:17 +0200polyrain(~polyrain@2001:8003:e501:6901:3d18:f8b0:5f22:3669) (Ping timeout: 260 seconds)
2020-10-13 11:07:27 +0200kindaro(1f08ec14@h31-8-236-20.dyn.bashtel.ru) (Remote host closed the connection)
2020-10-13 11:07:53 +0200perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
2020-10-13 11:08:24 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-10-13 11:10:49 +0200 <merijn> Taneb: Yeah, that just occurred to me
2020-10-13 11:11:07 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:fc55:7103:1b55:f700) (Ping timeout: 272 seconds)
2020-10-13 11:12:10 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2020-10-13 11:12:48 +0200 <jonathanx> So I want to create a typeable representation of a GADT tagged with datakind based phantom types. I run into issues which I think is due to datakind based types not having Typeable instances (as opposed to to ordinary types). This is a bit annoying, seeing as a typeable instance for datakind is a simple "demotion" from type->value. So my question is: is there a convenient way to create typeable instances for GADTs that have DataKinds
2020-10-13 11:12:49 +0200 <jonathanx> phantom types?
2020-10-13 11:14:27 +0200 <merijn> jonathanx: Eh, out of curiousity, why do you wanna do that?
2020-10-13 11:15:52 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
2020-10-13 11:16:55 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net)
2020-10-13 11:18:27 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:613f:c21f:11b3:bc2c)
2020-10-13 11:19:29 +0200ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net)
2020-10-13 11:19:40 +0200ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net) (Changing host)
2020-10-13 11:19:40 +0200ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-10-13 11:23:14 +0200 <jonathanx> I'm working with a domain similar to dataflow languages (such as labview), where the nodes have various invariants in the way they connect together/the outputs relate to the inputs. I'm prototyping encoding these invariant in GADTS decorated with datakind based phantom types. When constructing this/connecting the nodes together, I'm planning to first create a rose-tree representing all wanted connections, where the invariant-enforcing
2020-10-13 11:23:14 +0200 <jonathanx> phantom types are "boxed" into a GADT such as "data Any where Any :: Specific phantomType -> Any". Then I want to fold that tree, "unboxing" the data as I go, and connect all children to each tree-node with phantom type based type security. When "unboxing", I want to use typeReps to help the compiler validate that the type "boxed" can be used as a parameter to the node it's connecting to
2020-10-13 11:23:56 +0200__monty__(~toonn@unaffiliated/toonn)
2020-10-13 11:25:25 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 264 seconds)
2020-10-13 11:25:28 +0200 <merijn> eh, all I can say is "good luck" >.>
2020-10-13 11:27:00 +0200 <jonathanx> Thank you!
2020-10-13 11:29:37 +0200 <sshine> I'd probably go with JSON. :-D
2020-10-13 11:30:03 +0200 <dminuoso> JSON is webscale.
2020-10-13 11:30:12 +0200 <sshine> what does webscale mean?
2020-10-13 11:30:35 +0200 <dminuoso> sshine: https://www.youtube.com/watch?v=b2F-DItXtZs
2020-10-13 11:30:42 +0200 <sshine> I see JSON more like a common serializable format. short path between two command-line programs to share structured data.
2020-10-13 11:31:46 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-13 11:32:17 +0200 <dminuoso> Superficially, JSON only solves the "how do I serialize numbers (that's a funny bit, btw), strings, dictionaries, lists and bools" part.
2020-10-13 11:32:28 +0200dhouthoo_(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
2020-10-13 11:32:28 +0200 <sshine> dminuoso, it sounds like tacking "web scale" onto something means you disapprove of it because of premature scaling concerns. :)
2020-10-13 11:32:40 +0200 <sshine> s/only // and I'm with you.
2020-10-13 11:32:48 +0200 <dminuoso> sshine: There's a lot of tongue-in-cheek in the webscale remark, above.
2020-10-13 11:32:53 +0200 <sshine> yeah
2020-10-13 11:33:02 +0200 <sshine> I think JSON is quite unambitious, which is a good thing.
2020-10-13 11:33:16 +0200 <dminuoso> The thing is, when you're getting a deserialized JSON, you still have to parse the structure of it.
2020-10-13 11:33:28 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Ping timeout: 246 seconds)
2020-10-13 11:33:34 +0200 <dminuoso> Much of Python code is more adhoc, and destructures the data all over the place.
2020-10-13 11:34:14 +0200ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2020-10-13 11:34:26 +0200 <dminuoso> Since JSON types can be mapped into equally unstructured Python data.
2020-10-13 11:34:36 +0200 <sshine> so, my idea is, you have a bunch of ADTs, you derive Aeson encode/decode, and you save your configs to disk. if you need to interact with them in *any other way*, serialization is given. if not, you can post-pone deriving Aeson.
2020-10-13 11:34:54 +0200 <sshine> so no web scale ambition here. :)
2020-10-13 11:35:18 +0200L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds)
2020-10-13 11:36:50 +0200 <sshine> they're not as safe as GADTs with phantom types, but they serialize nicely, which is something I'd probably appreciate sooner. :)
2020-10-13 11:42:28 +0200karolus(~karolus@static.32.230.217.95.clients.your-server.de) (Ping timeout: 256 seconds)
2020-10-13 11:42:37 +0200 <gentauro> jonathanx: why not just to `show` / `read`?
2020-10-13 11:43:12 +0200 <gentauro> jonathanx: I have started to use that (with pretty-print) instead of `JSON`
2020-10-13 11:43:33 +0200 <gentauro> It's more readable and it's easily save/load -able
2020-10-13 11:43:34 +0200 <Uniaika> hey folks, I'm having a bit of an issue with Aeson. Do you know how I can write a `ToJSON MySumType` instance that would write the two members of the sum type as separate keys in the top-most object?
2020-10-13 11:43:44 +0200 <Uniaika> because I could write them in a sub-object
2020-10-13 11:44:01 +0200 <Uniaika> but due to reasons like backward compatibility, this is hardly an option :/
2020-10-13 11:44:30 +0200perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-10-13 11:46:09 +0200 <jonathanx> Well, if I were to use json, then I'd have to somehow serialize the phantom types (representing them in the json), and validate them on deserialization. This would leave me open to pretty mauch the same range of errors I'd get if I just enforced the invariants using runtime checks
2020-10-13 11:46:29 +0200 <gentauro> dminuoso: that `webscale` video made my day. It's actually a documentary, cos that moment (2:35) I had far to many times … (it's like they are "quoting me") :o
2020-10-13 11:48:08 +0200 <jonathanx> which would turn the entire phantom type based invariant forcing into just a piece of redundant bloat/an excessive roundtrip
2020-10-13 11:48:20 +0200 <gentauro> Uniaika: I tend to use `set <|> bin` (`Control.Applicative` Alternate) for that
2020-10-13 11:48:59 +0200 <gentauro> I can post code that does exactly what you are asking for, but I'm working on the proejct at this exact moment :)
2020-10-13 11:49:07 +0200 <gentauro> s/I can/I can't/
2020-10-13 11:51:27 +0200 <gentauro> kindaro: `please write to me offline` Roger that
2020-10-13 11:51:37 +0200acidjnk_new(~acidjnk@p200300d0c723782835a5fda97218b164.dip0.t-ipconnect.de)
2020-10-13 11:53:27 +0200 <Uniaika> gentauro: oh, thank you :)
2020-10-13 11:56:45 +0200shatriff_(~vitaliish@176.52.219.10)
2020-10-13 11:56:45 +0200shatriff(~vitaliish@176.52.219.10) (Read error: Connection reset by peer)
2020-10-13 11:56:46 +0200 <dminuoso> Uniaika: You could always just write the object out by hand `object ["foo" .= foo, "bar" .= bar]`, Ive grown quite fond of that.
2020-10-13 11:56:51 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-10-13 11:57:27 +0200 <dminuoso> Too often I found, relying on generics, generics with options, and things like the Alternative, is trying very hard to take indirect control over the encoder/decoder
2020-10-13 11:57:35 +0200 <kuribas> Uniaika: do you need to rewrite the Aeson?
2020-10-13 11:57:47 +0200 <kuribas> Uniaika: I actually just wrote code to do that.
2020-10-13 11:57:58 +0200 <kuribas> Uniaika: and you can still use generics after it.
2020-10-13 11:59:23 +0200 <dminuoso> Also, with generics you're tying external representation directly to your data types. To get around that, you might start having a separate data type, where you rename fields particularly to control the representation, and then you need a sort of `fromRep/toRep` functions, which is the exact boilerplate you tried to avoid in the first place..
2020-10-13 11:59:29 +0200 <kuribas> Uniaika: https://gist.github.com/kuribas/5c617ecf025ccb37467a23556cbe963e
2020-10-13 11:59:35 +0200 <dminuoso> Every time I stare at aeson, I dont think generics are a good idea. :(
2020-10-13 11:59:40 +0200 <dminuoso> Or typeclasses at all
2020-10-13 12:00:06 +0200 <kuribas> there are many times where generics are actually desirable.
2020-10-13 12:00:17 +0200 <Uniaika> thanks to you all :)
2020-10-13 12:00:24 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 12:00:30 +0200 <kuribas> because you know it will still be consistent when you add a field.
2020-10-13 12:00:41 +0200 <kuribas> while manual instance don't garantee that your instances are consistent.
2020-10-13 12:01:00 +0200 <Uniaika> kuribas: I have a roundtrip test for that
2020-10-13 12:01:11 +0200 <Uniaika> always with manual instances for Aeson and pg-simple
2020-10-13 12:01:14 +0200 <kuribas> Uniaika: with my code it is actually garanteed
2020-10-13 12:01:16 +0200akegalj(~akegalj@93-138-183-8.adsl.net.t-com.hr)
2020-10-13 12:01:34 +0200 <kuribas> Uniaika: as long as you use the same options of course.
2020-10-13 12:01:49 +0200 <Uniaika> kuribas: I'm waiting for a blog post to introduce that AesonTrans :)
2020-10-13 12:01:52 +0200dhouthoo_(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Ping timeout: 244 seconds)
2020-10-13 12:01:58 +0200 <Uniaika> it really looks interesting :)
2020-10-13 12:01:58 +0200 <kuribas> Uniaika: I should make a library for it...
2020-10-13 12:02:03 +0200 <Uniaika> also! :D
2020-10-13 12:03:09 +0200 <kuribas> Uniaika: the disadvantage is that it rewrites the Value, so it is less efficient than a direct toEncoding.
2020-10-13 12:04:27 +0200hackageZ-IO 0.1.5.1 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.1.5.1 (winterland)
2020-10-13 12:04:35 +0200dhouthoo_(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
2020-10-13 12:04:57 +0200 <kuribas> Uniaika: fromField (Proxy @"field") ["a", "b"] "c", pulls in field c, for example {"a": {"b": {"c" = 2 }}} => {"field" => 2}
2020-10-13 12:05:02 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 260 seconds)
2020-10-13 12:06:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-10-13 12:06:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 12:07:02 +0200 <kuribas> Uniaika: maybeFromField does the same, but can be empty.
2020-10-13 12:07:44 +0200 <kuribas> Uniaika: you can compose the AesonTrans with monoid, use postTransJSON and preTransJSON to translate the JSON. That's it basically.
2020-10-13 12:07:52 +0200guest35(d537f42e@213.55.244.46) (Remote host closed the connection)
2020-10-13 12:08:14 +0200 <kuribas> Uniaika: and don't forget to set the fieldModifier using transFieldModifier if you have one.
2020-10-13 12:09:06 +0200lemmih_(~lemmih@218.186.157.57) (Remote host closed the connection)
2020-10-13 12:09:34 +0200lemmih_(~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a)
2020-10-13 12:09:55 +0200 <Uniaika> kuribas: I doubt I'll be able to pull this off for the current project, but I will definitely think about it for any next project I'm bootstrapping
2020-10-13 12:10:08 +0200 <Uniaika> (but again, I'll need some kind of blog post to introduce the lib and its usage :P)
2020-10-13 12:10:33 +0200 <kuribas> Uniaika: yeah, a hackage library with some docs would be a good idea :)
2020-10-13 12:10:44 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-10-13 12:10:46 +0200 <Uniaika> <3
2020-10-13 12:13:18 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 272 seconds)
2020-10-13 12:13:53 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-13 12:15:30 +0200karolus(~karolus@static.32.230.217.95.clients.your-server.de)
2020-10-13 12:16:50 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
2020-10-13 12:17:50 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-10-13 12:18:49 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 264 seconds)
2020-10-13 12:21:27 +0200oisdk(~oisdk@2001:bb6:3329:d100:7c51:293a:6844:5080)
2020-10-13 12:21:47 +0200polyrain_(~polyrain@2001:8003:e501:6901:8a4:c02:960d:e633) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 12:22:15 +0200L29Ah(~L29Ah@unaffiliated/l29ah)
2020-10-13 12:22:52 +0200phillip(~phillip@178.162.204.214)
2020-10-13 12:23:46 +0200wei2912(~wei2912@unaffiliated/wei2912) (Quit: Lost terminal)
2020-10-13 12:24:06 +0200lemmih_(~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) (Remote host closed the connection)
2020-10-13 12:24:08 +0200iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-10-13 12:24:20 +0200iteratee(~kyle@162.211.154.4)
2020-10-13 12:24:31 +0200petersen(~petersen@redhat/juhp) (Remote host closed the connection)
2020-10-13 12:24:35 +0200alp(~alp@2a01:e0a:58b:4920:1dcd:3fff:5840:1f3a) (Ping timeout: 272 seconds)
2020-10-13 12:24:42 +0200lemmih_(~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a)
2020-10-13 12:24:53 +0200noctux(~noctux@unaffiliated/noctux) (Ping timeout: 260 seconds)
2020-10-13 12:25:27 +0200noctux(~noctux@unaffiliated/noctux)
2020-10-13 12:26:14 +0200petersen(~petersen@redhat/juhp)
2020-10-13 12:26:31 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-10-13 12:26:38 +0200L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds)
2020-10-13 12:27:45 +0200ericsagnes(~ericsagne@2405:6580:0:5100:85d4:43d9:8dee:59a0) (Ping timeout: 272 seconds)
2020-10-13 12:28:55 +0200berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 244 seconds)
2020-10-13 12:29:36 +0200berberman(~berberman@unaffiliated/berberman)
2020-10-13 12:30:10 +0200lucid_0x80(~lucid_0x8@85.132.73.6)
2020-10-13 12:32:57 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 258 seconds)
2020-10-13 12:33:52 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-13 12:33:54 +0200dcoutts_(~duncan@33.14.75.194.dyn.plus.net)
2020-10-13 12:35:34 +0200solonarv(~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr)
2020-10-13 12:37:57 +0200hackagematchable-th 0.1.1.1 - Generates Matchable instances using TemplateHaskell https://hackage.haskell.org/package/matchable-th-0.1.1.1 (viercc)
2020-10-13 12:38:19 +0200lucid_0x80(~lucid_0x8@85.132.73.6) (Ping timeout: 258 seconds)
2020-10-13 12:38:24 +0200ggole(~ggole@2001:8003:8119:7200:dcc4:683f:59f7:9d48)
2020-10-13 12:39:54 +0200ericsagnes(~ericsagne@2405:6580:0:5100:dca2:e278:5c94:78bf)
2020-10-13 12:41:58 +0200bliminse(~bliminse@host217-42-95-37.range217-42.btcentralplus.com) (Ping timeout: 256 seconds)
2020-10-13 12:42:17 +0200bliminse(~bliminse@host217-42-95-37.range217-42.btcentralplus.com)
2020-10-13 12:42:27 +0200L29Ah(~L29Ah@unaffiliated/l29ah)
2020-10-13 12:42:41 +0200 <Uniaika> god damnit
2020-10-13 12:43:34 +0200 <Uniaika> I'm having this JSON format to parse and I can't seem to make sense of what to do
2020-10-13 12:43:49 +0200 <Uniaika> I have *two* top-level field, that are to be unified in a sum type in Haskell-land
2020-10-13 12:45:44 +0200 <Uniaika> so naturally I'm writing such an instance https://ghostbin.co/paste/r64hne2
2020-10-13 12:46:30 +0200 <Uniaika> (surprise, doesn't compile)
2020-10-13 12:47:00 +0200bliminse(~bliminse@host217-42-95-37.range217-42.btcentralplus.com) (Ping timeout: 256 seconds)
2020-10-13 12:47:30 +0200L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 272 seconds)
2020-10-13 12:47:44 +0200bliminse(~bliminse@host217-42-95-37.range217-42.btcentralplus.com)
2020-10-13 12:49:13 +0200p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-10-13 12:49:25 +0200Stanley00(~stanley00@unaffiliated/stanley00) ()
2020-10-13 12:49:58 +0200p8m_(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds)
2020-10-13 12:50:25 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 12:52:43 +0200 <fendor> Uniaika, in the example, aren't you missing the unifying sum type?
2020-10-13 12:55:05 +0200 <Uniaika> >_> sorry, I'll edit the snippet
2020-10-13 12:55:12 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 12:55:40 +0200 <Uniaika> fendor: reload, it's been added
2020-10-13 12:55:54 +0200rprije(~rprije@203.214.95.251) (Ping timeout: 265 seconds)
2020-10-13 12:56:48 +0200 <fendor> Uniaika, and why doesn't it compile? Code-snippet looks roughly good to me
2020-10-13 12:58:38 +0200John20(~John@82.46.59.122) (Ping timeout: 258 seconds)
2020-10-13 13:01:08 +0200 <merijn> heh
2020-10-13 13:01:21 +0200 <Uniaika> fendor: https://ghostbin.co/paste/r64hne2
2020-10-13 13:01:24 +0200 <Uniaika> here is the error
2020-10-13 13:01:25 +0200 <merijn> "maybe" is exported from Prelude?
2020-10-13 13:01:31 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-10-13 13:01:38 +0200 <Uniaika> merijn: yes, I think so
2020-10-13 13:01:56 +0200 <Uniaika> fendor: also, I think I have a hard time expressing the fact that they may be null, but not at the same time?
2020-10-13 13:02:17 +0200xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2020-10-13 13:02:24 +0200 <Uniaika> I mean, if it were an object, I'd use (.:?)
2020-10-13 13:02:31 +0200 <nshepperd> this looks like a job for Alternative
2020-10-13 13:02:50 +0200xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-10-13 13:03:00 +0200 <Uniaika> hmm
2020-10-13 13:03:04 +0200 <Uniaika> sounds like it yeah
2020-10-13 13:03:30 +0200 <Uniaika> but every tutorial under the sun seems to be operating on an object, and not with top-level values, so I don't know how much they apply?
2020-10-13 13:03:33 +0200lemmih__(~lemmih@218.186.157.57)
2020-10-13 13:03:34 +0200 <Uniaika> hmm.
2020-10-13 13:03:41 +0200 <Uniaika> I'll try something
2020-10-13 13:03:58 +0200 <Uniaika> (thanks for being rubber ducks, it's incredibly helpful to be able to lay down my thoughts)
2020-10-13 13:04:28 +0200 <fendor> Uniaika, I think the type for field2 is wrong, too. Don't you need Data.UUID.fromText ?
2020-10-13 13:04:57 +0200 <Uniaika> fendor: well, since there is already a FromJSON instance for UUID, I thought it would work out-of-the-box?
2020-10-13 13:05:07 +0200chaosmasttter(~chaosmast@p200300c4a711b00135524723c22b3f52.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 13:05:13 +0200 <nshepperd> what exactly do you mean by a top level field
2020-10-13 13:05:37 +0200 <nshepperd> value, whatever
2020-10-13 13:05:41 +0200 <Uniaika> I'll add the desired JSON representation to the snippet
2020-10-13 13:05:55 +0200lemmih_(~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) (Ping timeout: 240 seconds)
2020-10-13 13:06:28 +0200hackagegit-mediate 1.0.8.1 - Tool to help resolving git conflicts https://hackage.haskell.org/package/git-mediate-1.0.8.1 (EyalLotem)
2020-10-13 13:06:32 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 265 seconds)
2020-10-13 13:06:34 +0200 <fendor> Uniaika, I don't think `withText` gives you a text and then you have to specify a value parser for that text. Doesnt use the instance automatically
2020-10-13 13:07:04 +0200 <nshepperd> that usage of withText doesn't look right anyhow
2020-10-13 13:07:12 +0200 <fendor> indeed
2020-10-13 13:07:27 +0200 <nshepperd> The first argument is only used for the error message
2020-10-13 13:08:50 +0200 <Uniaika> fendor, nshepperd : https://ghostbin.co/paste/r64hne2
2020-10-13 13:09:04 +0200 <merijn> Uniaika: I recommend using a different pastebin, that one is terrible
2020-10-13 13:09:09 +0200 <Uniaika> ah shit
2020-10-13 13:09:10 +0200 <Uniaika> sorry
2020-10-13 13:09:15 +0200 <Uniaika> dpaste?
2020-10-13 13:09:19 +0200 <merijn> It apparently requires me enabling cookies AND solving a captcha to read things
2020-10-13 13:09:21 +0200 <merijn> screw that
2020-10-13 13:09:23 +0200 <Uniaika> I think hpaste is dead now, right?
2020-10-13 13:09:25 +0200 <dminuoso> https://paste.tomsmeding.com/
2020-10-13 13:09:32 +0200 <dminuoso> Is the spiritual hpaste successor
2020-10-13 13:09:41 +0200 <Uniaika> https://paste.tomsmeding.com/QMFidUu1
2020-10-13 13:09:45 +0200 <Uniaika> dminuoso: thx
2020-10-13 13:09:49 +0200 <fendor> well, for Foo, it could be something like: `parseJSON v = Field1 <$> v .: "field1" <|> Field2 <$> v .: "field2"`
2020-10-13 13:09:52 +0200 <merijn> tomsmeding is the hero #haskell needed ;)
2020-10-13 13:10:04 +0200John20(~John@82.46.59.122)
2020-10-13 13:10:10 +0200 <merijn> He resurrected ircbrowse too, so now I can be self-concious about how much time I spend here :p
2020-10-13 13:10:18 +0200 <Uniaika> fendor: ooooh
2020-10-13 13:10:30 +0200 <merijn> tomsmeding: oh, maybe you should send a mail to Haskell Weekly to publicize those two?
2020-10-13 13:10:36 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-10-13 13:11:27 +0200hackagehttp-conduit-downloader 1.1.0 - HTTP downloader tailored for web-crawler needs. https://hackage.haskell.org/package/http-conduit-downloader-1.1.0 (VladimirShabanov)
2020-10-13 13:11:49 +0200mmohammadi981266(~mmohammad@188.210.103.147)
2020-10-13 13:12:04 +0200mmohammadi981266(~mmohammad@188.210.103.147) (Client Quit)
2020-10-13 13:12:14 +0200 <Uniaika> fendor: but (.:) is expecting a HashMap right?
2020-10-13 13:12:25 +0200 <tomsmeding> merijn: I'm not sure it would be a good idea to publicise ircbrowse that way, given that it's not my project... :p
2020-10-13 13:12:53 +0200 <dminuoso> Uniaika: No.
2020-10-13 13:12:56 +0200 <merijn> tomsmeding: It's open source, you just forked/maintained it
2020-10-13 13:13:05 +0200 <dminuoso> (.:) :: FromJSON a => Object -> Text -> Parser a
2020-10-13 13:13:06 +0200 <tomsmeding> true
2020-10-13 13:13:13 +0200 <merijn> tomsmeding: I don't think Chris would mind, but you could always ping him over email and ask
2020-10-13 13:13:13 +0200 <dminuoso> Uniaika: The interface is usually like this:
2020-10-13 13:13:18 +0200 <fendor> Uniaika, Then you would need: `parseJSON obj = withObject "TopLevel Object" $ \v -> Field1 <$> v .: "field1" <|> Field2 <$> v .: "field2"`
2020-10-13 13:13:36 +0200 <dminuoso> Uniaika: withObject "foo" $ \o -> F <$> o .: "some" <*> o .: "other"
2020-10-13 13:13:41 +0200guest35(d537f42e@213.55.244.46)
2020-10-13 13:13:58 +0200mmohammadi981266(~mmohammad@188.210.103.147)
2020-10-13 13:14:10 +0200 <dminuoso> Or, as I prefer, with RecordWildcards:
2020-10-13 13:14:27 +0200mmohammadi981266(~mmohammad@188.210.103.147) (Client Quit)
2020-10-13 13:14:43 +0200 <dminuoso> withObject "foo" $ \o -> do { field1 <- o .: "field1"; field2 <- o .: "field2"; pure F{..} }
2020-10-13 13:14:43 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 13:14:47 +0200 <fendor> Personally, I found my library to go now is aeson-combinators. Json decoders and encoders is one thing elm got right
2020-10-13 13:15:09 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 13:15:16 +0200 <cpressey> May I humbly propose replacing 'https://gist.github.com/' in the topic of this channel with 'https://paste.tomsmeding.com/'? :)
2020-10-13 13:15:23 +0200 <dminuoso> fendor: waargonaut addresses most issues well
2020-10-13 13:15:34 +0200 <dminuoso> it has a much better and flexible interface
2020-10-13 13:15:42 +0200 <Uniaika> dminuoso: but wouldn't that mean that the expected JSON has this "foo" sub-object then?
2020-10-13 13:15:42 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 13:15:59 +0200 <dminuoso> Uniaika: No, that's just a name that is used for debugging
2020-10-13 13:16:13 +0200 <dminuoso> Uniaika: So when the parser fail, it will call the object (it was looking for) "foo"
2020-10-13 13:16:13 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-13 13:16:23 +0200 <fendor> dminuoso, too complex for my taste
2020-10-13 13:16:33 +0200 <dminuoso> fendor: Dunno, I find it rather simple.
2020-10-13 13:16:38 +0200p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds)
2020-10-13 13:16:46 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 13:16:54 +0200 <dminuoso> Uniaika: https://hackage.haskell.org/package/aeson-1.5.4.1/docs/src/Data.Aeson.Types.FromJSON.html#withObject
2020-10-13 13:17:13 +0200 <merijn> dminuoso: waargonaut's API is a Lovecraftian mess I wouldn't wish upon my worst enemy
2020-10-13 13:17:41 +0200p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-10-13 13:18:02 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-10-13 13:18:25 +0200 <dminuoso> merijn: It's not any less offending than say megaparsec.
2020-10-13 13:18:48 +0200 <dminuoso> And zippers!
2020-10-13 13:19:05 +0200 <dminuoso> When you have to deal with other peoples formats, zippers are really a blessing.
2020-10-13 13:19:32 +0200lucid_0x80(~lucid_0x8@85.132.73.6)
2020-10-13 13:19:44 +0200jollygood2(~bc8165ab@217.29.117.252)
2020-10-13 13:19:49 +0200 <fendor> aeson-combinators is much less offending. But I have to admit, Currently I only have rather trivial json formats to maintain
2020-10-13 13:19:50 +0200 <dminuoso> And waargonaut handles JSON better, since it can deal with multiple "overlapping" attributes in objects
2020-10-13 13:19:54 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2020-10-13 13:19:59 +0200 <merijn> dminuoso: tbh, I think megaparsec has regressed *a lot* in that regard
2020-10-13 13:20:10 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 13:20:18 +0200 <merijn> And it's a bad thing for Haskell and the ability to promote megaparsec to beginners
2020-10-13 13:21:01 +0200 <dminuoso> merijn: The rudimentary interface of waargonaut is simpler than aeson by far.
2020-10-13 13:21:04 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 13:21:42 +0200 <merijn> dminuoso: Then they need to package/document it better to hide away the clutter from the "main" user facing UI
2020-10-13 13:21:53 +0200 <dminuoso> I agree, the documentation could be improved.
2020-10-13 13:22:05 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 13:23:07 +0200 <nshepperd> Uniaika: the top level json you're looking at there _is_ an object, that's what withObject is for
2020-10-13 13:23:15 +0200mmohammadi981266(~mmohammad@188.210.103.147)
2020-10-13 13:23:27 +0200 <nshepperd> field1 and field2 being text fields of it
2020-10-13 13:23:52 +0200 <Uniaika> nshepperd: okay, I was afraid that since I'm writing an instance for what is a secondary object, it would try and mimic that structure in the JSON, which is a flat object
2020-10-13 13:23:53 +0200mmohammadi981266(~mmohammad@188.210.103.147) (Client Quit)
2020-10-13 13:24:23 +0200 <dminuoso> merijn: https://github.com/qfpl/waargonaut#example if you consider these examples, the ergonomics is quite good. :)
2020-10-13 13:24:57 +0200 <merijn> dminuoso: the Haddocks are just 15 pages of type gobbledy-gook, though
2020-10-13 13:24:58 +0200hackageimm 2.0.0.0 - Execute arbitrary actions for each item from RSS/Atom feeds https://hackage.haskell.org/package/imm-2.0.0.0 (koral)
2020-10-13 13:25:50 +0200 <dminuoso> merijn: Bringing me back to my original point, we should get rid of all that JSON nonsense.
2020-10-13 13:25:57 +0200 <fendor> dminuoso, also, why are they using fromKey instead of atKey? atKey seems to be simpler
2020-10-13 13:26:07 +0200 <dminuoso> Just specify and write wire protocols, like programmers have done for the past 30 years.
2020-10-13 13:26:25 +0200 <dminuoso> a bit of `binary` works wonders
2020-10-13 13:26:28 +0200 <merijn> dminuoso: Or use dhall :)
2020-10-13 13:26:39 +0200 <dminuoso> Oh, for configuration sure.
2020-10-13 13:26:46 +0200lucid_0x80(~lucid_0x8@85.132.73.6) (Ping timeout: 272 seconds)
2020-10-13 13:27:00 +0200 <dminuoso> For data exchange, if I had to pick a premade serialization format again, I'd go cbor.
2020-10-13 13:27:07 +0200 <merijn> but yeah, a good BNF + wire protocol >> poorly implemented shit on top of JSON
2020-10-13 13:27:25 +0200 <dminuoso> Indeed.
2020-10-13 13:27:44 +0200 <nshepperd> @hackage serialize
2020-10-13 13:27:44 +0200 <lambdabot> https://hackage.haskell.org/package/serialize
2020-10-13 13:28:06 +0200 <dminuoso> nshepperd: I think you were looking for cereal?
2020-10-13 13:28:06 +0200 <merijn> binary has pretty much obsoleted serialise, tbh
2020-10-13 13:28:12 +0200 <nshepperd> oop misspelt
2020-10-13 13:28:14 +0200 <merijn> eh, yeah cereal I mean
2020-10-13 13:28:29 +0200 <nshepperd> @hackage serialise
2020-10-13 13:28:29 +0200 <lambdabot> https://hackage.haskell.org/package/serialise
2020-10-13 13:28:34 +0200 <dminuoso> I mean, cereal was made because binary was lacking support for strict bytestrings?
2020-10-13 13:28:43 +0200 <dminuoso> binary supports both lazy and strict bytestrings now
2020-10-13 13:28:53 +0200 <dminuoso> has good support for adding contexts
2020-10-13 13:29:04 +0200 <nshepperd> serialise is cbor based, very nice imo
2020-10-13 13:30:26 +0200 <dminuoso> nshepperd: serialise seems great if you want to do data exchange between two haskell systems over the network.
2020-10-13 13:30:52 +0200 <merijn> template-haskell versions are tied to specific GHCs, right?
2020-10-13 13:31:08 +0200 <dminuoso> https://hackage.haskell.org/package/template-haskell
2020-10-13 13:31:13 +0200 <dminuoso> merijn: Judging from the bounds, Id say now
2020-10-13 13:31:16 +0200 <dminuoso> *no
2020-10-13 13:31:21 +0200 <dminuoso> base (>=4.11 && <4.15), ghc-boot-th (==8.10.1), ghc-prim, pretty (==1.1.*) [details]
2020-10-13 13:31:25 +0200 <nshepperd> i also use it for serialising cached stuff to disk between runs of the same program
2020-10-13 13:33:06 +0200chele(~chele@5.53.222.202) (Ping timeout: 272 seconds)
2020-10-13 13:33:08 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 258 seconds)
2020-10-13 13:33:19 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 13:33:25 +0200Tario(~Tario@201.192.165.173)
2020-10-13 13:33:42 +0200 <tomjaguarpaw> I can't help thinking that what's important is the logical structure of the wire format rather than its concrete structure.
2020-10-13 13:34:56 +0200 <tomsmeding> merijn: https://github.com/haskellweekly/haskellweekly/pull/52
2020-10-13 13:37:01 +0200machinedgod(~machinedg@24.105.81.50)
2020-10-13 13:37:06 +0200polyrain(~polyrain@2001:8003:e501:6901:8a4:c02:960d:e633)
2020-10-13 13:38:17 +0200seanvert(~user@177.84.244.242)
2020-10-13 13:38:46 +0200alp(~alp@2a01:e0a:58b:4920:2586:865a:4e94:a66b)
2020-10-13 13:39:25 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-10-13 13:39:32 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-10-13 13:41:51 +0200 <kuribas> Uniaika: don't you need (.:?) ?
2020-10-13 13:42:07 +0200 <kuribas> Uniaika: it returns a Maybe for a field that can be possibly null.
2020-10-13 13:42:23 +0200 <Uniaika> I found a way, actually
2020-10-13 13:42:50 +0200 <Uniaika> solving the issue upstream, and not deriving the instance for the type, but taking care of serde in the upstream type
2020-10-13 13:43:00 +0200 <Uniaika> (it does work)
2020-10-13 13:43:02 +0200 <kuribas> that's even better :)
2020-10-13 13:43:16 +0200 <Uniaika> thank you all for your time, I love you all, you're incredible <3
2020-10-13 13:43:48 +0200 <kuribas> Uniaika: although I think your case match is a good way BTW...
2020-10-13 13:44:00 +0200 <kuribas> because it clearly shows you want exclusive or.
2020-10-13 13:44:05 +0200 <merijn> Anyone know how to avoid "redundant import" warnings for "Data.Monoid ((<>))" on GHC >8.2 in a way that doesn't break GHC 8.0-8.2
2020-10-13 13:44:22 +0200 <Uniaika> merijn: I'm going to say the bad word but…
2020-10-13 13:44:23 +0200 <Uniaika> CPP?
2020-10-13 13:44:30 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 272 seconds)
2020-10-13 13:45:28 +0200Buntspecht(~user@unaffiliated/siracusa)
2020-10-13 13:48:52 +0200hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus)
2020-10-13 13:49:02 +0200 <kuribas> CPP :)
2020-10-13 13:50:39 +0200cpressey(~cpressey@88.144.68.224) (Quit: wvw /o/ /o/ /o/)
2020-10-13 13:51:15 +0200hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-10-13 13:51:21 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-13 13:51:50 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Remote host closed the connection)
2020-10-13 13:54:51 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-10-13 14:00:01 +0200phillip(~phillip@178.162.204.214) ()
2020-10-13 14:00:27 +0200Wuzzy(~Wuzzy@p549c9d2d.dip0.t-ipconnect.de)
2020-10-13 14:01:14 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 14:02:59 +0200totbwf(sid402332@gateway/web/irccloud.com/x-auttreoigxuilyba) (Ping timeout: 240 seconds)
2020-10-13 14:03:37 +0200bradparker(sid262931@gateway/web/irccloud.com/x-dvycqqnustcjicgg) (Ping timeout: 246 seconds)
2020-10-13 14:03:39 +0200djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
2020-10-13 14:03:47 +0200ebutleriv(sid217783@gateway/web/irccloud.com/x-zcpyidnqxtmhuisv) (Ping timeout: 240 seconds)
2020-10-13 14:03:56 +0200bradparker(sid262931@gateway/web/irccloud.com/x-kzdpaybrmmwnrdgh)
2020-10-13 14:03:58 +0200ebutleriv(sid217783@gateway/web/irccloud.com/x-cvawhvfjdshsscgr)
2020-10-13 14:03:58 +0200totbwf(sid402332@gateway/web/irccloud.com/x-ymdhjktodciveoos)
2020-10-13 14:03:59 +0200lally_(sid388228@gateway/web/irccloud.com/x-gjvzovhllmqfgnqi)
2020-10-13 14:03:59 +0200wpcarro_(sid397589@gateway/web/irccloud.com/x-ycncefjlbxwjrjeb)
2020-10-13 14:04:01 +0200natim87_(sid286962@gateway/web/irccloud.com/x-hbpjyobuzuhwywke)
2020-10-13 14:04:07 +0200davetapley_(sid666@gateway/web/irccloud.com/x-cretwjqzdceozsvl)
2020-10-13 14:04:30 +0200urodna(~urodna@unaffiliated/urodna)
2020-10-13 14:04:57 +0200lally(sid388228@gateway/web/irccloud.com/x-lstpiuaiwaadwufc) (Ping timeout: 258 seconds)
2020-10-13 14:04:57 +0200lally_lally
2020-10-13 14:05:12 +0200davetapley(sid666@gateway/web/irccloud.com/x-djoktstvzubeecxm) (Ping timeout: 260 seconds)
2020-10-13 14:05:13 +0200wpcarro(sid397589@gateway/web/irccloud.com/x-dhrgdbgzbcfpxeys) (Ping timeout: 260 seconds)
2020-10-13 14:05:13 +0200natim87(sid286962@gateway/web/irccloud.com/x-uvpnvingawevahjl) (Ping timeout: 260 seconds)
2020-10-13 14:05:13 +0200davetapley_davetapley
2020-10-13 14:05:13 +0200natim87_natim87
2020-10-13 14:05:13 +0200wpcarro_wpcarro
2020-10-13 14:05:55 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 272 seconds)
2020-10-13 14:06:58 +0200hackagetermonad 4.0.1.1 - Terminal emulator configurable in Haskell https://hackage.haskell.org/package/termonad-4.0.1.1 (cdepillabout)
2020-10-13 14:06:59 +0200Shun131(sid377723@gateway/web/irccloud.com/x-qfflzmcznnjkrwrn) (Quit: Connection closed for inactivity)
2020-10-13 14:07:09 +0200drbean(~drbean@TC210-63-209-63.static.apol.com.tw)
2020-10-13 14:08:17 +0200Kaivo(~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com)
2020-10-13 14:09:20 +0200 <merijn> I just got rid of all the CPP :(
2020-10-13 14:10:47 +0200 <Uniaika> I know, I know…
2020-10-13 14:10:51 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 14:11:29 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-10-13 14:13:36 +0200lemmih__(~lemmih@218.186.157.57) (Remote host closed the connection)
2020-10-13 14:13:43 +0200 <merijn> hmm, a change in examples probably doesn't warrant a new release
2020-10-13 14:14:04 +0200lemmih__(~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a)
2020-10-13 14:14:20 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 256 seconds)
2020-10-13 14:15:24 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-13 14:15:46 +0200bitmagie(~Thunderbi@200116b806d3630091dfc145cf082aaa.dip.versatel-1u1.de)
2020-10-13 14:16:51 +0200 <kuribas> merijn: do you know a better way to deal with breaking changes?
2020-10-13 14:16:56 +0200 <kuribas> like the semigroup stuff
2020-10-13 14:17:08 +0200 <merijn> kuribas: There's usually a migration guide with GHC
2020-10-13 14:17:19 +0200 <kuribas> merijn: which recommends cpp...
2020-10-13 14:17:36 +0200 <merijn> And the rule is that backwards compat for 3 releases should be possible without CPP
2020-10-13 14:20:08 +0200John20(~John@82.46.59.122) (Ping timeout: 260 seconds)
2020-10-13 14:22:56 +0200 <hekkaidekapus> dminuoso: After some light sleuthing, the OutsideIn algorithm seems to be implemented as described in the paper, more or less. I would succinctly answer this to your original question: no matter how involved a method’s constraints are, the solving will boil down to generating implicits and using them as evidence.
2020-10-13 14:24:49 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-13 14:25:38 +0200 <dminuoso> hekkaidekapus: Fair enough, the reason Im asking is, Ive been staring at a mail on haskell-cafe for so long, Im starting to think there's a bug in the instance selection algorithm.
2020-10-13 14:26:19 +0200 <dminuoso> Where GHC selects an instance despite overlapping instances existing.
2020-10-13 14:26:53 +0200 <dminuoso> The video though I think helped, since it explained roughly how the constraint checking on instances with context works.
2020-10-13 14:27:00 +0200 <tomjaguarpaw> dminuoso: The Wrapper (Maybe a) mail?
2020-10-13 14:27:03 +0200 <dminuoso> tomjaguarpaw: Yeah.
2020-10-13 14:27:09 +0200 <tomjaguarpaw> I was also puzzled by that.
2020-10-13 14:27:27 +0200 <hekkaidekapus> dminuoso, tomjaguarpaw: link?
2020-10-13 14:28:21 +0200 <tomjaguarpaw> https://mail.haskell.org/pipermail/haskell-cafe/2020-October/132815.html
2020-10-13 14:28:28 +0200 <hekkaidekapus> Thanks.
2020-10-13 14:28:58 +0200hackagehwk 0.5 - Commandline text processing with Haskell functions https://hackage.haskell.org/package/hwk-0.5 (JensPetersen)
2020-10-13 14:29:17 +0200JordiGH(jordi@octave/developer/JordiGH)
2020-10-13 14:30:39 +0200st8less(~st8less@2603:a060:11fd:0:8a9:7e3f:adb9:77d2)
2020-10-13 14:31:43 +0200st8less(~st8less@2603:a060:11fd:0:8a9:7e3f:adb9:77d2) (Client Quit)
2020-10-13 14:32:02 +0200 <dminuoso> % newtype Foo = Foo Int; instance {-# OVERLAPS #-} Show (Maybe Foo) where show _ = "foo"
2020-10-13 14:32:03 +0200 <yahb> dminuoso:
2020-10-13 14:32:10 +0200 <dminuoso> % newtype W a = W (Maybe a); instance Show a => Show (W a) where show (W a) = show a
2020-10-13 14:32:11 +0200 <yahb> dminuoso:
2020-10-13 14:32:14 +0200 <dminuoso> % foo :: Show a => W a -> String; foo a = show a
2020-10-13 14:32:14 +0200 <yahb> dminuoso:
2020-10-13 14:32:16 +0200 <dminuoso> This should be rejected.
2020-10-13 14:32:28 +0200 <dminuoso> (Unless IncoherentInstances was enabled)
2020-10-13 14:32:49 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd)
2020-10-13 14:33:42 +0200 <dminuoso> % foo' :: Show a => Maybe a -> String; foo' a = show a
2020-10-13 14:33:43 +0200 <yahb> dminuoso: ; <interactive>:9:47: error:; * Overlapping instances for Show (Maybe a) arising from a use of `show'; Matching instances:; instance Show a => Show (Maybe a) -- Defined in `GHC.Show'; instance [overlap ok] [safe] Show (Maybe Foo) -- Defined at <interactive>:5:50; instance [overlap ok] [safe] Show (Maybe Ghci4.Foo) -- Defined at <interactive>:1:50; (The choice depen
2020-10-13 14:33:47 +0200JordiGH(jordi@octave/developer/JordiGH) ()
2020-10-13 14:34:01 +0200 <ClaudiusMaximus> % foo (W Nothing) -- just checking what happens at point of use
2020-10-13 14:34:01 +0200 <yahb> ClaudiusMaximus: "Nothing"
2020-10-13 14:35:37 +0200 <ClaudiusMaximus> % foo (W (Just (Foo 1))) -- just checking what happens at point of use
2020-10-13 14:35:38 +0200 <yahb> ClaudiusMaximus: ; <interactive>:11:1: error:; * No instance for (Show Foo) arising from a use of `foo'; * In the expression: foo (W (Just (Foo 1))); In an equation for `it': it = foo (W (Just (Foo 1)))
2020-10-13 14:35:45 +0200 <dminuoso> It seems, that the deferring the constraint `Show (Maybe a)` changes how instance is selected.
2020-10-13 14:36:32 +0200 <dminuoso> If that was the case, it could imply that GHC falsely generates incoherent code.
2020-10-13 14:37:12 +0200 <dminuoso> I tried debugging the type checker with a minimal program, but -ddump-tc-trace generated 5k lines of output..
2020-10-13 14:37:20 +0200 <dminuoso> The manual did *not* lie when it said it would be real chatty.
2020-10-13 14:37:35 +0200bitmagie(~Thunderbi@200116b806d3630091dfc145cf082aaa.dip.versatel-1u1.de) (Quit: bitmagie)
2020-10-13 14:37:42 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-10-13 14:38:23 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 14:38:30 +0200 <dminuoso> I think, if nobody else does it, Ill file a bug report. Either the GHC manual is incorrect, or GHC is buggy. One has to be the case here.
2020-10-13 14:38:57 +0200 <merijn> Time for everyone's daily reminder of the invaluable service of packdeps having an RSS feed when you need to bump your package bounds ;)
2020-10-13 14:39:38 +0200 <merijn> dminuoso: pfft, you're missing an alternative
2020-10-13 14:39:43 +0200 <merijn> dminuoso: They could *both* be wrong :p
2020-10-13 14:40:10 +0200 <dminuoso> merijn: Im confident that its not the case, the instance selection algorithm descriped in the overlapping instances section seems rather clear.
2020-10-13 14:40:29 +0200mmohammadi981266(~mmohammad@188.210.103.147)
2020-10-13 14:42:30 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 14:42:45 +0200 <hekkaidekapus> dminuoso: I’m looking at the corresponding Core before drawing conclusion. <https://paste.tomsmeding.com/aHILkhin>
2020-10-13 14:42:48 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 14:42:58 +0200 <hekkaidekapus> *conclusions
2020-10-13 14:43:40 +0200Amras(~Amras@unaffiliated/amras0000)
2020-10-13 14:43:42 +0200 <dminuoso> hekkaidekapus: Mind my asking, what is Core gonna tell you?
2020-10-13 14:44:00 +0200 <hekkaidekapus> The dictionary passing.
2020-10-13 14:44:52 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 14:45:16 +0200ralejs(~ralejs@163.114.131.1)
2020-10-13 14:45:40 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:8576:1536:5132:aae7)
2020-10-13 14:46:19 +0200mmohammadi981266(~mmohammad@188.210.103.147) (Quit: I quit (╯°□°)╯︵ ┻━┻)
2020-10-13 14:47:08 +0200 <dminuoso> $cshow1_rX8
2020-10-13 14:47:56 +0200 <dminuoso> Internally, it picked dShow2_aV5 = $fShowMaybe $dShow1_aUS
2020-10-13 14:49:02 +0200 <dminuoso> Despite another, equally good, dictionary, existing: $cshow_rWA
2020-10-13 14:49:10 +0200mmohammadi981266(~mmohammad@188.210.103.147)
2020-10-13 14:49:27 +0200perdent(~blah@101.175.82.233) (Ping timeout: 244 seconds)
2020-10-13 14:49:28 +0200 <hekkaidekapus> Yeah, file a bug report!
2020-10-13 14:50:01 +0200 <hekkaidekapus> Overlapping instances considered harmful anyway :0
2020-10-13 14:50:32 +0200perdent(~blah@101.175.147.239)
2020-10-13 14:52:07 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-nkhvkoypuffdqqdu) (Quit: Connection closed for inactivity)
2020-10-13 14:52:53 +0200oisdk(~oisdk@2001:bb6:3329:d100:7c51:293a:6844:5080) (Quit: oisdk)
2020-10-13 14:53:23 +0200sword865(uid208942@gateway/web/irccloud.com/x-sxotpuupdfwwcwxa) (Quit: Connection closed for inactivity)
2020-10-13 14:53:26 +0200chaosmasttter(~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de)
2020-10-13 14:53:36 +0200ralejs(~ralejs@163.114.131.1) (Read error: Connection reset by peer)
2020-10-13 14:53:58 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 14:55:27 +0200John20(~John@82.46.59.122)
2020-10-13 14:56:08 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-10-13 14:57:08 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-10-13 14:58:55 +0200 <dminuoso> hekkaidekapus: The one thing Im not quite sold on, is this:
2020-10-13 14:58:59 +0200 <dminuoso> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#instance-overlap
2020-10-13 14:59:25 +0200 <dminuoso> At the bottom it does mention that FlexibleInstances can lead to incoherent instance selection, but Im not immediately seeing whether this is related
2020-10-13 15:01:31 +0200solonarv(~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2020-10-13 15:06:31 +0200 <hekkaidekapus> dminuoso: The bulb seems pretty related, but I would file the report still. It might be a short-lived ticket but we will have an up-to-date explanation as to “An alternative possible behaviour, not currently implemented…”.
2020-10-13 15:07:01 +0200Rudd0(~Rudd0@185.189.115.103) (Remote host closed the connection)
2020-10-13 15:08:13 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
2020-10-13 15:08:30 +0200 <dminuoso> hekkaidekapus: Well, it's not really related because the incoherence arises from making a *more* specific instance in another module, and then run an instance selection in both modules.
2020-10-13 15:09:34 +0200 <dminuoso> But yeah, I filed a bug report. At the very least the GHC manual should be improved if this is not an instance selection bug.
2020-10-13 15:10:03 +0200 <hekkaidekapus> 👍
2020-10-13 15:10:13 +0200Nik05(~Nik05@85.150.134.175) (Quit: leaving)
2020-10-13 15:15:23 +0200ocaml427(506d8558@gateway/web/cgi-irc/kiwiirc.com/ip.80.109.133.88)
2020-10-13 15:15:32 +0200ocaml427(506d8558@gateway/web/cgi-irc/kiwiirc.com/ip.80.109.133.88) ()
2020-10-13 15:15:45 +0200xff0x(~fox@217.110.198.158) (Ping timeout: 240 seconds)
2020-10-13 15:16:40 +0200Nik05(~Nik05@85.150.134.175)
2020-10-13 15:19:50 +0200ruffy(~jonas@2a03:b0c0:3:d0::162e:a001)
2020-10-13 15:20:39 +0200mmohammadi981266(~mmohammad@188.210.103.147) (Quit: I quit (╯°□°)╯︵ ┻━┻)
2020-10-13 15:22:05 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 15:23:52 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 15:24:10 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 15:24:10 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 15:24:10 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 15:24:34 +0200rihards_(~rihards@vpnlv.tilde.com) (Remote host closed the connection)
2020-10-13 15:25:30 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-10-13 15:26:11 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-10-13 15:26:59 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 272 seconds)
2020-10-13 15:29:36 +0200Tops2(~Tobias@dyndsl-095-033-027-027.ewe-ip-backbone.de)
2020-10-13 15:30:01 +0200ruffyruffy_
2020-10-13 15:32:00 +0200Nik05(~Nik05@85.150.134.175) (Changing host)
2020-10-13 15:32:00 +0200Nik05(~Nik05@unaffiliated/nik05)
2020-10-13 15:32:37 +0200nomeata(~jojo@dslb-088-064-028-148.088.064.pools.vodafone-ip.de)
2020-10-13 15:33:42 +0200ruffy_(~jonas@2a03:b0c0:3:d0::162e:a001) (Quit: WeeChat 2.9)
2020-10-13 15:34:00 +0200ruffy(~jonas@2a03:b0c0:3:d0::162e:a001)
2020-10-13 15:34:15 +0200ruffyruffy_
2020-10-13 15:35:24 +0200ystael(~ystael@209.6.50.55)
2020-10-13 15:37:40 +0200lowryder(~djlowry@web603.webfaction.com)
2020-10-13 15:38:41 +0200ruffy_(~jonas@2a03:b0c0:3:d0::162e:a001) (Client Quit)
2020-10-13 15:40:55 +0200alp(~alp@2a01:e0a:58b:4920:2586:865a:4e94:a66b) (Ping timeout: 272 seconds)
2020-10-13 15:41:31 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 15:42:04 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 15:42:55 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 15:43:11 +0200knupfer(~Thunderbi@200116b82c814300c0110b68686b9a3e.dip.versatel-1u1.de)
2020-10-13 15:43:14 +0200Sanchayan(~Sanchayan@106.201.37.251) (Ping timeout: 256 seconds)
2020-10-13 15:43:43 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-10-13 15:43:50 +0200Sanchayan(~Sanchayan@106.201.37.251)
2020-10-13 15:44:29 +0200Sanchayan(~Sanchayan@106.201.37.251) (Max SendQ exceeded)
2020-10-13 15:45:08 +0200Sanchayan(~Sanchayan@106.201.37.251)
2020-10-13 15:45:44 +0200Sanchayan(~Sanchayan@106.201.37.251) (Max SendQ exceeded)
2020-10-13 15:46:10 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds)
2020-10-13 15:46:14 +0200Sanchayan(~Sanchayan@106.201.37.251)
2020-10-13 15:46:54 +0200Sanchayan(~Sanchayan@106.201.37.251) (Max SendQ exceeded)
2020-10-13 15:47:30 +0200Sanchayan(~Sanchayan@106.201.37.251)
2020-10-13 15:48:08 +0200lemmih__lemmih
2020-10-13 15:48:10 +0200Sanchayan(~Sanchayan@106.201.37.251) (Max SendQ exceeded)
2020-10-13 15:50:50 +0200mmohammadi981266(~mmohammad@188.210.103.147)
2020-10-13 15:51:56 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-10-13 15:52:27 +0200hackageZ-IO 0.1.5.2 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.1.5.2 (winterland)
2020-10-13 15:53:46 +0200ralejs_(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 15:53:46 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 15:55:20 +0200drbean(~drbean@TC210-63-209-63.static.apol.com.tw) (Ping timeout: 260 seconds)
2020-10-13 15:55:21 +0200ralejs_(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 15:55:22 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 15:55:34 +0200cpressey(~cpressey@88.144.70.115)
2020-10-13 15:57:15 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 15:57:31 +0200mdunnio(~mdunnio@208.59.170.5)
2020-10-13 15:59:45 +0200 <merijn> btw, does anyone know of any working human cloning programs? >.>
2020-10-13 15:59:46 +0200p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-10-13 16:01:44 +0200 <merijn> I was clicking through some dependencies and I'd like to order some backup phadej's ahead of time so the ecosystem doesn't grind to a halt without him >.>
2020-10-13 16:02:59 +0200 <dminuoso> merijn: Well, we should get an ekmett along side. They could grow up together.
2020-10-13 16:03:14 +0200 <phadej> dminuoso: ekmett is cloned already: RyanGlScott
2020-10-13 16:03:28 +0200 <dminuoso> Haha. :)
2020-10-13 16:03:29 +0200 <juri_> merijn: i've spent almost 7 years working on 3d printing in haskell. unfortunately, i'm falling apart faster than i can print.
2020-10-13 16:03:47 +0200 <dminuoso> juri_: Hold on, 3d printing in haskell?
2020-10-13 16:03:49 +0200 <dminuoso> tell me more.
2020-10-13 16:04:04 +0200 <merijn> Ah, but see, edwardk is just inventing cool new stuff, plenty of volunteers for that
2020-10-13 16:04:15 +0200 <phadej> merijn: order two copies (hopefully you can a discount) of hvr too
2020-10-13 16:04:29 +0200 <juri_> dminuoso: implicitcad. hslice. modeling and slicing natively in haskell. badly, because there is only one of me.
2020-10-13 16:04:29 +0200 <phadej> could get a discount*
2020-10-13 16:04:42 +0200 <merijn> Less volunteers for turning duct tape and string into semi-solid engineering foundations :p
2020-10-13 16:04:49 +0200 <dminuoso> juri_: How good is your slicing of human models?
2020-10-13 16:04:52 +0200 <juri_> I don't have hslice on hackage yet.
2020-10-13 16:05:07 +0200 <juri_> dminuoso: poor. i'm still working on simple geometric shapes.
2020-10-13 16:05:32 +0200 <merijn> phadej: And maybe an SPJ ;)
2020-10-13 16:05:39 +0200alp(~alp@2a01:e0a:58b:4920:e961:3e4f:cf0f:6182)
2020-10-13 16:05:43 +0200 <juri_> worse, i decided halfway through to change everything to projective geometric algebra, so hslice has a PGA engine embedded in it.
2020-10-13 16:06:05 +0200shafox(~shafox@106.51.234.111) (Ping timeout: 240 seconds)
2020-10-13 16:06:07 +0200xff0x(~fox@217.110.198.158)
2020-10-13 16:06:15 +0200 <dminuoso> merijn: Soon we're gonna need a clone of Stephanie Weirich as well to keep the cogs in dependent haskell going.
2020-10-13 16:06:31 +0200 <merijn> I'm not sure I'm happy with those cogs :p
2020-10-13 16:06:37 +0200 <phadej> isn't Richard kind of a mixture of both?
2020-10-13 16:07:07 +0200 <dminuoso> 16:05:32 merijn | phadej: And maybe an SPJ ;)
2020-10-13 16:07:18 +0200 <dminuoso> Luckily for us, SPJ did reproduce already.
2020-10-13 16:08:12 +0200 <dminuoso> juri_: What is PGA?
2020-10-13 16:08:15 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 16:08:33 +0200 <tomjaguarpaw> projective geometric algebra, presumably
2020-10-13 16:08:33 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 16:08:33 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 16:08:33 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 16:09:11 +0200 <akegalj> &quit
2020-10-13 16:09:18 +0200 <juri_> it's a high performance / high precision algebra system for doing geometry in. takes less operations to do stuff, and uses pure forms of objects, rather than approximations.
2020-10-13 16:09:53 +0200 <akegalj> ;'\[]
2020-10-13 16:09:58 +0200 <dminuoso> Does that require the input to be in some PGA format as well?
2020-10-13 16:10:07 +0200 <dminuoso> Or can an arbitrary CAD output be fed into that?
2020-10-13 16:10:10 +0200akegalj(~akegalj@93-138-183-8.adsl.net.t-com.hr) (Quit: leaving)
2020-10-13 16:11:02 +0200lemmih_(~lemmih@218.186.157.57)
2020-10-13 16:11:02 +0200mmohammadi981266(~mmohammad@188.210.103.147) (Quit: I quit (╯°□°)╯︵ ┻━┻)
2020-10-13 16:11:42 +0200 <juri_> it uses STLs.
2020-10-13 16:11:57 +0200 <juri_> which coincidentally are what implicitcad outputs.
2020-10-13 16:13:32 +0200lemmih(~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) (Ping timeout: 260 seconds)
2020-10-13 16:13:42 +0200mmohammadi981266(~mmohammad@188.210.103.147)
2020-10-13 16:15:40 +0200ruffy_(~jonas@2a03:b0c0:3:d0::162e:a001)
2020-10-13 16:17:47 +0200 <fendor> can I generate a module graph with some tool?
2020-10-13 16:17:48 +0200ddellacosta(~dd@86.106.121.168)
2020-10-13 16:17:48 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
2020-10-13 16:17:55 +0200 <merijn> "yes"
2020-10-13 16:18:04 +0200 <merijn> But now you're gonna ask which one, aren't you? >.>
2020-10-13 16:18:06 +0200 <dminuoso> fendor: `cabal-plan dot --tred`
2020-10-13 16:18:16 +0200knupfer(~Thunderbi@200116b82c814300c0110b68686b9a3e.dip.versatel-1u1.de) (Quit: knupfer)
2020-10-13 16:18:17 +0200 <dminuoso> (the --tred is not required, but probably desirable)
2020-10-13 16:18:26 +0200knupfer(~Thunderbi@200116b82c814300c0110b68686b9a3e.dip.versatel-1u1.de)
2020-10-13 16:18:30 +0200 <dminuoso> And then the usual graphviz tools. :)
2020-10-13 16:18:45 +0200 <dminuoso> Oh wait. module graph
2020-10-13 16:18:47 +0200 <dminuoso> mmm
2020-10-13 16:18:49 +0200Noldorin(~noldorin@unaffiliated/noldorin) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2020-10-13 16:18:57 +0200 <dminuoso> graphmod?
2020-10-13 16:19:15 +0200 <fendor> merijn, :P well, preferably
2020-10-13 16:19:40 +0200 <fendor> dminuoso, looks good
2020-10-13 16:21:19 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 265 seconds)
2020-10-13 16:21:43 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-10-13 16:22:28 +0200hackageeffet 0.3.0.0 - An Effect System based on Type Classes https://hackage.haskell.org/package/effet-0.3.0.0 (MichaelSzvetits)
2020-10-13 16:23:55 +0200 <fendor> dammit, I have multiple Types modules that almost everyone depends on
2020-10-13 16:24:09 +0200 <merijn> fendor: As always :p
2020-10-13 16:24:11 +0200 <fendor> dminuoso, thanks, beautiful tool!
2020-10-13 16:24:19 +0200 <merijn> I wish GHC would just get proper cyclic imports
2020-10-13 16:25:14 +0200 <dminuoso> merijn: I recall a length discussion at dinner with a few of the GHC folks.
2020-10-13 16:25:50 +0200 <dminuoso> Dont think it's ever gonna happen. :p
2020-10-13 16:26:00 +0200 <merijn> Which is a travesty!
2020-10-13 16:26:44 +0200mmohammadi981266(~mmohammad@188.210.103.147) (Quit: Ping timeout (120 seconds))
2020-10-13 16:27:06 +0200 <merijn> I demand my convenience! :(
2020-10-13 16:27:27 +0200mmohammadi981266(~mmohammad@188.210.103.147)
2020-10-13 16:28:34 +0200seawalk(~seawalk@185.163.110.116)
2020-10-13 16:30:28 +0200hackagegi-gtksheet 4.0.1 - GtkSheet bindings https://hackage.haskell.org/package/gi-gtksheet-4.0.1 (ivanbakel)
2020-10-13 16:34:36 +0200spew(uid195861@gateway/web/irccloud.com/x-fetxtksdzgfjvjwb)
2020-10-13 16:36:19 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-10-13 16:37:14 +0200kupi(uid212005@gateway/web/irccloud.com/x-zkqelsktmjuyhxgl)
2020-10-13 16:38:39 +0200lowryder(~djlowry@web603.webfaction.com) (Read error: Connection reset by peer)
2020-10-13 16:40:24 +0200nomeata(~jojo@dslb-088-064-028-148.088.064.pools.vodafone-ip.de) (Quit: Client exiting)
2020-10-13 16:42:14 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 16:42:19 +0200ralejs_(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 16:44:27 +0200ralejs_(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 16:44:51 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 16:44:53 +0200ericsagnes(~ericsagne@2405:6580:0:5100:dca2:e278:5c94:78bf) (Ping timeout: 272 seconds)
2020-10-13 16:45:05 +0200Gerula(~Gerula@unaffiliated/gerula) (Ping timeout: 240 seconds)
2020-10-13 16:45:16 +0200fendor(~fendor@77.119.130.38.wireless.dyn.drei.com) (Remote host closed the connection)
2020-10-13 16:45:35 +0200chaosmasttter(~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2020-10-13 16:46:49 +0200blip(58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158)
2020-10-13 16:47:45 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 16:48:52 +0200 <blip> Is it possible to have enum on the type level? data X = A | B | C | D; foo :: Proxy [A..D]
2020-10-13 16:49:03 +0200 <merijn> blip: Yes!
2020-10-13 16:49:23 +0200 <blip> I've got a quite large datatype and I'd like to avoid TH and copy pasting
2020-10-13 16:49:25 +0200 <merijn> blip: Although this is a path that *can* lead to incredibly painful code in the long term, so be warned :p
2020-10-13 16:49:33 +0200 <merijn> oh, wait
2020-10-13 16:49:37 +0200 <ocharles> Does anyone know if `build-tool-depends` should be putting executables in PATH for the relavant components when I use Cabal with Distribution.Simple.defaultMain? Because I'm not seeing that
2020-10-13 16:49:37 +0200 <merijn> You mean the syntax
2020-10-13 16:49:42 +0200mmohammadi981266(~mmohammad@188.210.103.147) (Read error: Connection reset by peer)
2020-10-13 16:49:58 +0200 <ocharles> The documentation for build-tool-depends writes: Cabal tries to make sure that all specified programs are atomically built and prepended on the $PATH shell variable before building the component in question, but can only do so for Nix-style builds
2020-10-13 16:50:09 +0200 <merijn> blip: You could write a type family that computes that list?
2020-10-13 16:50:10 +0200 <ocharles> But I don't know if a Setup.hs counts as Nix-style or old style
2020-10-13 16:50:23 +0200 <merijn> ocharles: Setup.hs is lower level
2020-10-13 16:50:33 +0200 <merijn> Setup.hs is Cabal (not cabal-install)
2020-10-13 16:50:50 +0200 <blip> merjin: how would that work without writing explicitly every inhabitant?
2020-10-13 16:51:04 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 16:51:14 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-13 16:51:14 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-13 16:51:14 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 16:51:15 +0200 <blip> my data has about ~100 promoted constructors
2020-10-13 16:51:22 +0200 <merijn> ocharles: And most likely no one knows the answer :p
2020-10-13 16:51:49 +0200chaosmasttter(~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de)
2020-10-13 16:51:51 +0200 <merijn> blip: eh...I'd probably recommend "not doing that", but that's not very constructive :)
2020-10-13 16:51:58 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 16:52:07 +0200 <merijn> blip: And now you know why the original paper was called Hasochism ;)
2020-10-13 16:52:17 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-10-13 16:52:22 +0200 <merijn> blip: Maybe you can do something horrific using singletons?
2020-10-13 16:52:33 +0200 <bahamas> ocharles: if I remember right, the nix builder for cabal relies on Setup.hs. but it's been a while
2020-10-13 16:52:50 +0200 <merijn> <MS Clippy>Did you mean to use Idris?</MS Clippy>
2020-10-13 16:53:15 +0200avdb(~avdb@ip-62-235-189-198.dsl.scarlet.be)
2020-10-13 16:53:22 +0200 <blip> merijn: I already contemplated screwing kind-safety and convert my constructors in a bunch of Symbol
2020-10-13 16:53:37 +0200Ariakenom(~Ariakenom@193.254.193.1) (Ping timeout: 264 seconds)
2020-10-13 16:53:52 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
2020-10-13 16:54:01 +0200 <merijn> blip: Once your type-safety involves "100s of type level constructors" I don't think it passes any sensible "cost-benefit analysis"
2020-10-13 16:54:14 +0200 <merijn> Compile times will be a massive pain, as will refactoring >.>
2020-10-13 16:54:14 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 16:55:05 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 16:55:23 +0200 <blip> merijn: Yeah, it's quite a bit excessive
2020-10-13 16:55:35 +0200 <blip> mirijn: 1000LOC type-level https://github.com/knupfer/type-of-html/blob/master/src/Html/Type/Internal.hs
2020-10-13 16:55:57 +0200 <merijn> For *HTML*? >.>
2020-10-13 16:55:57 +0200hackagead 4.4.1 - Automatic Differentiation https://hackage.haskell.org/package/ad-4.4.1 (ryanglscott)
2020-10-13 16:56:08 +0200 <blip> merijn: better safe than sorry :)
2020-10-13 16:56:14 +0200 <ocharles> merijn: I feared that might be the case >.<
2020-10-13 16:56:21 +0200 <merijn> Jesus Christ
2020-10-13 16:56:23 +0200 <ocharles> bahamas: well, it will write its own if there isn't one
2020-10-13 16:56:25 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-13 16:56:35 +0200 <merijn> That module probably takes 5 million years to compile
2020-10-13 16:56:48 +0200ericsagnes(~ericsagne@2405:6580:0:5100:cc83:1c32:310e:946e)
2020-10-13 16:57:03 +0200 <blip> It's actually not bad
2020-10-13 16:57:30 +0200 <blip> But using the library gives ghc a sweat
2020-10-13 16:57:39 +0200 <merijn> I wonder why >.>
2020-10-13 16:57:58 +0200 <blip> not because of the type checker
2020-10-13 16:58:09 +0200 <blip> the simplifier goes absolutely nuts
2020-10-13 16:59:44 +0200oisdk(~oisdk@2001:bb6:3329:d100:a9e4:32d1:231e:16a5)
2020-10-13 16:59:44 +0200 <blip> Or is there a type level function which does something like type family ToSymbol x where ToSymbol Banana = "Banana"
2020-10-13 16:59:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 17:00:01 +0200seawalk(~seawalk@185.163.110.116) ()
2020-10-13 17:00:16 +0200 <blip> Like show, but with symbols
2020-10-13 17:03:49 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-10-13 17:04:29 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-13 17:04:40 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-10-13 17:06:09 +0200macrover(~macrover@ip70-189-231-35.lv.lv.cox.net)
2020-10-13 17:08:20 +0200ralejs_(~ralejs@2620:10d:c093:400::5:c80)
2020-10-13 17:08:21 +0200ralejs(~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer)
2020-10-13 17:09:08 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-ezaxzpcxhniaxecp)
2020-10-13 17:09:23 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-10-13 17:09:46 +0200Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2020-10-13 17:09:54 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-aprzkzvsxxeylcyp)
2020-10-13 17:10:00 +0200 <blip> Perhaps it would be possible with generics? I'm recalling vaguely that it's possible to retrieve the constructors at the type level
2020-10-13 17:10:01 +0200aqd(~aqd@87-92-145-87.rev.dnainternet.fi) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 17:10:12 +0200 <blip> constructor names
2020-10-13 17:10:40 +0200 <merijn> blip: Out of curiosity, have you ever read any Lovecraft novels/stories?
2020-10-13 17:11:00 +0200 <blip> merijn: No, why do you ask?
2020-10-13 17:11:08 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 17:11:29 +0200 <merijn> Because this path will lead you to the same fate as any of his protoganists :p
2020-10-13 17:11:56 +0200 <merijn> i.e. gibberingly mad and insane after staring into the Eldritch horrors of the universe :)
2020-10-13 17:12:08 +0200 <Taneb> merijn: sometimes that can be very fun
2020-10-13 17:12:44 +0200 <blip> Well, considering that haskell is just a little hobby of mine I can only gibber mad and insane in my free time
2020-10-13 17:13:02 +0200 <blip> At work, I'm at the receiving end (music teacher)
2020-10-13 17:13:19 +0200conal(~conal@64.71.133.70)
2020-10-13 17:13:41 +0200 <merijn> Sounds like "The Music of Erich Zann" would be an appropriate recommendation :p
2020-10-13 17:14:11 +0200 <blip> I like Dr Faustus and The Expanse
2020-10-13 17:14:25 +0200acidjnk_new(~acidjnk@p200300d0c723782835a5fda97218b164.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-13 17:14:27 +0200CindyLinz(~cindy_utf@112.121.78.20) (Ping timeout: 240 seconds)
2020-10-13 17:14:27 +0200 <blip> And mediaeval treaties about music theory
2020-10-13 17:15:46 +0200 <blip> I.E. : (3/2)^12 /= 2^7 ==> modern music sucks
2020-10-13 17:16:32 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 17:17:24 +0200supaplex1(~supaplex1@185.163.110.116)
2020-10-13 17:17:26 +0200Bakun(~bakun@51.15.0.88)
2020-10-13 17:17:34 +0200cpressey(~cpressey@88.144.70.115) (Quit: WeeChat 1.9.1)
2020-10-13 17:17:43 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds)
2020-10-13 17:19:17 +0200 <c_wraith> of course, for m, n > 0, (3/2)^m /= 2^n
2020-10-13 17:19:38 +0200 <blip> yeah, but these numbers are quite special
2020-10-13 17:19:47 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 17:19:49 +0200 <c_wraith> You can't have perfect fifths and perfect octaves uniformly across the scale. You have to decide what to give up.
2020-10-13 17:20:17 +0200 <blip> yes, that's the point
2020-10-13 17:20:28 +0200 <c_wraith> that's not "modern music sucks" that's math.
2020-10-13 17:20:57 +0200CindyLinz(~cindy_utf@112.121.78.20)
2020-10-13 17:21:03 +0200 <blip> Well, Pythagoras at least claims that beautiful interval are simple rationals
2020-10-13 17:21:35 +0200 <blip> so the modern fith (2^(5/12)) wouldn't please him
2020-10-13 17:21:52 +0200 <merijn> But Pythagoras is dead, so we win!
2020-10-13 17:22:26 +0200 <blip> I don't claim that I use exclusively Pythagoras taste to determine my taste
2020-10-13 17:22:45 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-10-13 17:22:46 +0200 <blip> But it's interesting to change ones point of view
2020-10-13 17:22:56 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 17:22:58 +0200xff0x(~fox@217.110.198.158) (Ping timeout: 260 seconds)
2020-10-13 17:23:04 +0200Ariakenom(~Ariakenom@h-155-4-221-50.NA.cust.bahnhof.se)
2020-10-13 17:23:12 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-10-13 17:23:24 +0200 <blip> oops: not 2^(5/12), it's 2^(7/12)
2020-10-13 17:24:24 +0200jil(~user@45.86.162.6)
2020-10-13 17:24:26 +0200 <jil> hi
2020-10-13 17:24:43 +0200 <blip> hi jil
2020-10-13 17:25:18 +0200 <blip> jil: do you prefer perfect fiths or equidistant semitones?
2020-10-13 17:25:22 +0200 <blip> :)
2020-10-13 17:25:55 +0200 <monochrom> 2^(1/2) wouldn't please him either. It's still irrational.
2020-10-13 17:25:56 +0200 <jil> I'm learning Haskell with "Programming in Haskell" 2nd edition..
2020-10-13 17:26:16 +0200 <blip> Nice, can we help you?
2020-10-13 17:26:39 +0200 <blip> monochrom: Yes
2020-10-13 17:26:41 +0200 <monochrom> You know what, s/It's still/He's/ >:)
2020-10-13 17:26:42 +0200 <jil> what a perfect fith or an equidistant semitone ?
2020-10-13 17:26:43 +0200Bakun(~bakun@51.15.0.88) (Read error: Connection reset by peer)
2020-10-13 17:27:25 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 240 seconds)
2020-10-13 17:27:39 +0200 <jil> It would bother me If I was rational, not you ?
2020-10-13 17:27:49 +0200 <blip> monochrom: He'd use (3/2)^7 minus some octaves for a semitone
2020-10-13 17:29:28 +0200 <blip> jil: that is a quite modern stance
2020-10-13 17:30:19 +0200kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-10-13 17:30:35 +0200 <blip> jil: don't be confused, we're just smalltalking about historic music theory
2020-10-13 17:30:56 +0200 <gentauro> kindaro: Torben wrote back and it is Jon Sporing who currently is wrote/maintain the material. Torben say that you should write Jon an e-mail and ask (nicely) if you can have a copy :-)
2020-10-13 17:31:49 +0200Bakun(~bakun@51.15.0.88)
2020-10-13 17:32:08 +0200 <jil> blip: I was confused. Thank you.
2020-10-13 17:33:11 +0200 <blip> jil: So, can we help you on your journey to enlightenment?
2020-10-13 17:33:32 +0200 <blip> (regarding haskell)
2020-10-13 17:34:23 +0200 <blip> merijn: Thanks for the recommendation, that's quite intresting
2020-10-13 17:34:45 +0200CindyLinz(~cindy_utf@112.121.78.20) (Ping timeout: 240 seconds)
2020-10-13 17:34:49 +0200Bakun(~bakun@51.15.0.88) (Read error: Connection reset by peer)
2020-10-13 17:34:53 +0200 <blip> merijn: The descriptions of this literature reminds me of Kafka
2020-10-13 17:37:45 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 240 seconds)
2020-10-13 17:37:57 +0200mdunnio_(~mdunnio@208.59.170.5)
2020-10-13 17:38:17 +0200Bakun(~bakun@51.15.0.88)
2020-10-13 17:39:42 +0200fendor(~fendor@e237-037.eduroam.tuwien.ac.at)
2020-10-13 17:39:58 +0200jgt(~jgt@77-255-14-254.adsl.inetia.pl)
2020-10-13 17:40:16 +0200mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 246 seconds)
2020-10-13 17:40:27 +0200 <jil> I think listing your smalltalking is already helping me a lot. But I was also wondering if the construct `add x = x :: Int` with the type coercing at the end, was recent because I don't see it in my manual (from 2016) but it work in GHCi 8.6.5
2020-10-13 17:40:52 +0200kritzefitz(~kritzefit@212.86.56.80)
2020-10-13 17:40:56 +0200 <ski> it's not a coercion, but a type ascription
2020-10-13 17:41:10 +0200 <blip> Ah, yes. In the MetaData of Generic Rep are the constructor names as Symbols. All I need now, is a type level function which converts camel case Symbols into hyphenated lowercase Symbols. That's a challenge but possible :)
2020-10-13 17:41:13 +0200polyrain(~polyrain@2001:8003:e501:6901:8a4:c02:960d:e633) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 17:41:18 +0200 <ski> (it doesn't change the type of anything, it just specifies (pins down) what the type should be)
2020-10-13 17:41:18 +0200 <monochrom> It is not recent. Just unidiomatic.
2020-10-13 17:41:30 +0200 <ski> and yes, it's standard Haskell. was in Haskell98 already
2020-10-13 17:41:38 +0200 <jil> thank you for the correction ski I wasn't sure about the vocabulary indeed.
2020-10-13 17:42:22 +0200 <blip> jil: normally, you would write:
2020-10-13 17:42:30 +0200 <ski> no worry, clearing up terminological (and sometimes conceptual) misalignments can often be useful, when communicating
2020-10-13 17:42:37 +0200 <blip> `add x :: Int -> Int`
2020-10-13 17:42:47 +0200 <ski> (without the `x')
2020-10-13 17:42:58 +0200 <blip> oops
2020-10-13 17:43:28 +0200 <blip> and propably `add :: Int -> Int -> Int`, magmas are cool
2020-10-13 17:43:54 +0200 <jil> what are magmas ?
2020-10-13 17:44:04 +0200 <ski> jil : it can sometimes be useful to have them, if there's a type ambiguity problem (the system has trouble figuring out which specific type you intend, somewhere in your code)
2020-10-13 17:44:17 +0200 <blip> all functions which take two arguments of the same type and return something of that type
2020-10-13 17:44:25 +0200 <blip> `magma :: a -> a -> a`
2020-10-13 17:44:35 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 17:44:36 +0200 <blip> addition or multiplication for example
2020-10-13 17:44:41 +0200 <ski> "magma" is a concept in math (abstract algebra) for a binary operation on a set/type
2020-10-13 17:45:58 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-13 17:46:00 +0200 <ski> blip : why're they cool ?
2020-10-13 17:46:23 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Client Quit)
2020-10-13 17:46:50 +0200 <jil> I see.
2020-10-13 17:46:52 +0200 <blip> ski: I like them a lot; you can define nice operators and a lot of things are magmas
2020-10-13 17:47:08 +0200 <blip> ski: Or would you prefer them described as hot?
2020-10-13 17:47:14 +0200 <blip> :)
2020-10-13 17:47:15 +0200 <ski> usually you'd want a few laws, i think
2020-10-13 17:47:41 +0200LKoen(~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr)
2020-10-13 17:47:47 +0200 <ski> sure, if you have a magma, you automatically gets an operation taking a binary tree with leaves being elements in the magma, to an element in the magma
2020-10-13 17:47:49 +0200LKoen(~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) (Read error: Connection reset by peer)
2020-10-13 17:48:02 +0200 <blip> and that is nice
2020-10-13 17:48:10 +0200LKoen(~LKoen@81.255.219.130)
2020-10-13 17:48:49 +0200 <blip> for example (<>) is quite nice, obviously it's even a monoid, but a lot of the niceness comes from the magma part
2020-10-13 17:48:53 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2020-10-13 17:49:01 +0200 <blip> or semigroup
2020-10-13 17:50:10 +0200knupfer(~Thunderbi@200116b82c814300c0110b68686b9a3e.dip.versatel-1u1.de) (Quit: knupfer)
2020-10-13 17:50:18 +0200knupfer(~Thunderbi@200116b82c814300159e9cdeac30c350.dip.versatel-1u1.de)
2020-10-13 17:50:20 +0200blip(58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) (Quit: Connection closed)
2020-10-13 17:50:27 +0200Bakun(~bakun@51.15.0.88) (Read error: Connection reset by peer)
2020-10-13 17:50:38 +0200blip(58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158)
2020-10-13 17:50:44 +0200xff0x(~fox@217.110.198.158)
2020-10-13 17:50:58 +0200CindyLinz(~cindy_utf@112.121.78.20)
2020-10-13 17:51:09 +0200 <ski> with semigroup, you have associativity, so you can combine a sequence of elements into a single element, and get the same result, regardless of how you group the elements in the sequence
2020-10-13 17:51:46 +0200 <monochrom> That means magmas are freer than semigroups. :)
2020-10-13 17:52:10 +0200 <blip> jil: How would you implement this signature: `slurp :: (a, b) -> a`
2020-10-13 17:52:24 +0200 <blip> monochrom: :)
2020-10-13 17:52:34 +0200 <ski> i guess you have a free functor from magmas to semigroups
2020-10-13 17:52:36 +0200ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Quit: ubert)
2020-10-13 17:52:39 +0200alp(~alp@2a01:e0a:58b:4920:e961:3e4f:cf0f:6182) (Ping timeout: 272 seconds)
2020-10-13 17:54:21 +0200 <jil> as `slurp (x,y) = x` blip
2020-10-13 17:54:45 +0200 <blip> jil: cool, and what about: barf :: a -> (a, b)
2020-10-13 17:54:50 +0200Bakun(~bakun@51.15.0.88)
2020-10-13 17:55:11 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 17:55:19 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 17:55:20 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 17:55:20 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-13 17:56:34 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds)
2020-10-13 17:57:47 +0200 <jil> I'm looking for a definition with the flowing type `add :: Int -> Int -> Int -> Int` and I come up with this https://paste.debian.net/1166987 but I feel something is correct.
2020-10-13 17:57:53 +0200 <jil> or not necessary
2020-10-13 17:59:10 +0200 <ski> what do you mean by "flowing type" ?
2020-10-13 17:59:13 +0200knupfer(~Thunderbi@200116b82c814300159e9cdeac30c350.dip.versatel-1u1.de) (Read error: Connection reset by peer)
2020-10-13 17:59:16 +0200 <jil> more precisely I don't understand why removing the first `:: Int` make a fucntion returning `Num a` also I have x, y z Ints
2020-10-13 17:59:17 +0200 <ski> @type let add x y z = x+y+z::Int where x :: Int; y :: Int; z :: Int in add
2020-10-13 17:59:17 +0200 <monochrom> Write "add :: Int -> Int -> Int -> Int" instead of the "where x::Int etc" block. That block means something else.
2020-10-13 17:59:19 +0200 <lambdabot> error:
2020-10-13 17:59:19 +0200 <lambdabot> The type signature for ‘x’ lacks an accompanying binding
2020-10-13 17:59:19 +0200 <lambdabot> (The type signature must be given where ‘x’ is declared)
2020-10-13 17:59:20 +0200knupfer(~Thunderbi@200116b82c814300f1e41d34f9bff3a4.dip.versatel-1u1.de)
2020-10-13 17:59:22 +0200blip(58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) (Quit: Connection closed)
2020-10-13 17:59:29 +0200blip(58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158)
2020-10-13 17:59:40 +0200 <blip> jil: it's correct, albeit unusual
2020-10-13 17:59:45 +0200 <monochrom> ski, I think s/flowing/following/
2020-10-13 17:59:51 +0200 <ski> oh
2020-10-13 18:00:01 +0200skisometimes fails to read typo :/
2020-10-13 18:00:15 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2020-10-13 18:00:25 +0200 <blip> jil: you'd need only the top level type signature, all the other types are infered
2020-10-13 18:00:27 +0200chenshen(~chenshen@2620:10d:c090:400::5:1dbd)
2020-10-13 18:00:46 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Read error: Connection reset by peer)
2020-10-13 18:00:54 +0200 <ski> @let add x y z = (x :: Int) + (y :: Int) + (z :: Int) :: Int
2020-10-13 18:00:55 +0200 <jil> sorry ski, I'm unfortunately very good at writting typos.
2020-10-13 18:00:57 +0200 <lambdabot> Defined.
2020-10-13 18:01:08 +0200 <monochrom> I trained myself to guess meanings from very large contexts when I was a child. Because I was too lazy to look up a word in a dictionary, I would rather guess an approximation from context.
2020-10-13 18:01:18 +0200 <ski> is possible, if you really want to write it like that (but it's not idiomatic, as noted)
2020-10-13 18:01:18 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-13 18:01:21 +0200Rudd0(~Rudd0@185.189.115.103)
2020-10-13 18:01:34 +0200chenshen(~chenshen@2620:10d:c090:400::5:1dbd) (Client Quit)
2020-10-13 18:01:53 +0200 <jil> ok. Thank you.
2020-10-13 18:02:04 +0200chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-13 18:02:06 +0200 <ski> @let add (x :: Int) (y :: Int) (z :: Int) = x + y + z :: Int
2020-10-13 18:02:08 +0200 <lambdabot> Defined.
2020-10-13 18:02:09 +0200 <merijn> blip: Eh, the top level is inferred too
2020-10-13 18:02:13 +0200 <merijn> blip: Everything is inferred
2020-10-13 18:02:35 +0200 <merijn> You'll just get lynched by angry programmers if you don't annotate the top level :p
2020-10-13 18:02:40 +0200 <ski> is another, similar, way (imho looks better). but it's still unidiomatic. and this one requires a language extension (`ScopedTypeVariables')
2020-10-13 18:02:54 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-10-13 18:03:06 +0200 <ski> add :: Int -> Int -> Int -> Int
2020-10-13 18:03:10 +0200 <ski> add x y z = x + y + z
2020-10-13 18:03:12 +0200 <jil> @let add (x :: Int) (y :: Int) = x + y
2020-10-13 18:03:14 +0200 <lambdabot> .L.hs:157:1: error:
2020-10-13 18:03:14 +0200 <lambdabot> Equations for ‘add’ have different numbers of arguments
2020-10-13 18:03:14 +0200 <lambdabot> .L.hs:157:1-55
2020-10-13 18:03:15 +0200 <ski> is the usual way to write it
2020-10-13 18:03:26 +0200 <blip> @pl \x y z -> x + y + z
2020-10-13 18:03:26 +0200 <lambdabot> ((+) .) . (+)
2020-10-13 18:03:32 +0200 <dolio> If you don't annotate the top level you're probably going to end up hating yourself, eventually.
2020-10-13 18:03:33 +0200 <ski> sorry, let me remove the earlier definition for you
2020-10-13 18:03:36 +0200 <ski> @undefine
2020-10-13 18:03:37 +0200 <lambdabot> Undefined.
2020-10-13 18:03:45 +0200 <ski> @let add (x :: Int) (y :: Int) = x + y
2020-10-13 18:03:46 +0200 <lambdabot> Defined.
2020-10-13 18:03:48 +0200 <ski> @type add
2020-10-13 18:03:49 +0200 <lambdabot> Int -> Int -> Int
2020-10-13 18:04:14 +0200 <blip> add = ((+) .) . (+) :: Int -> Int -> Int -> Int
2020-10-13 18:04:16 +0200 <blip> :P
2020-10-13 18:04:17 +0200 <jil> I see. It's clearer like that. Thank you.
2020-10-13 18:04:38 +0200 <dolio> At least if you write anything non-trivial.
2020-10-13 18:04:45 +0200 <jil> :)
2020-10-13 18:05:28 +0200nyd(~lpy@unaffiliated/elysian) (Ping timeout: 256 seconds)
2020-10-13 18:06:01 +0200 <ski> @let add (x :: Int) (y :: Int) (z :: Int) :: Int = x + y + z -- too bad this doesn't work, anymore ..
2020-10-13 18:06:01 +0200 <lambdabot> Parse failed: Cannot give an explicit type signature to a function binding
2020-10-13 18:06:40 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-10-13 18:07:51 +0200 <ski> jil : "more precisely I don't understand why removing the first `:: Int` make a fucntion returning `Num a` also I have x, y z Ints" -- i suppose you mean the (first) `:: Int', in the paste
2020-10-13 18:09:00 +0200 <jil> yes
2020-10-13 18:09:04 +0200 <ski> if you just say `add x y z = x + y + z', then it infers that `x',`y',`z' (and the result `x+y+z') must be of "numeric type", meaning some type that supports `+' (and a few other operations). that is what the `Num a =>' part means : works for all types `a', provided that `a' supports the `Num' operations
2020-10-13 18:09:20 +0200 <ski> @src Num
2020-10-13 18:09:20 +0200 <lambdabot> class Num a where
2020-10-13 18:09:20 +0200 <lambdabot> (+), (-), (*) :: a -> a -> a
2020-10-13 18:09:20 +0200 <lambdabot> negate, abs, signum :: a -> a
2020-10-13 18:09:20 +0200 <lambdabot> fromInteger :: Integer -> a
2020-10-13 18:10:15 +0200aaaaaa(~ArthurStr@host-91-90-11-13.soborka.net)
2020-10-13 18:10:33 +0200 <jil> sure but I was understanding the `where x :: Int...` as a restriction or condition on my arguments' type
2020-10-13 18:10:34 +0200 <ski> (note that this doesn't include division. if you (also) want division, you'll have to say whether you want integral (with remainder) division, or fractional division. instead of `Num', you'd then use `Integral' or `Fractional')
2020-10-13 18:11:25 +0200 <blip> these arguments are restricted by the top level type signature
2020-10-13 18:11:37 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 264 seconds)
2020-10-13 18:11:38 +0200pera(~pera@unaffiliated/pera)
2020-10-13 18:11:54 +0200 <blip> or by the return type, because the (+) forces the same type on both sides and for the result
2020-10-13 18:11:54 +0200lucid_0x80(~lucid_0x8@188.253.234.40)
2020-10-13 18:12:15 +0200aaaaaa(~ArthurStr@host-91-90-11-13.soborka.net) ()
2020-10-13 18:12:18 +0200 <ski> jil : when i try the first section of code in the paste (inbetween the `{:' and the `:}'), i get errors for missing bindings (definitions) for `x',`y',`z'
2020-10-13 18:12:31 +0200glguyghoulguy
2020-10-13 18:12:37 +0200 <ski> (i'm not sure how you're trying this piece of code, without getting errors)
2020-10-13 18:13:22 +0200 <kuribas> is there an applicative for records? Positional arguments can be come quite unwieldy and unreadable...
2020-10-13 18:13:30 +0200 <jil> I evaluate in from org-mode in emacs that sends it to ghci
2020-10-13 18:13:38 +0200 <ski> jil : generally, if you put `someName :: SomeType', e.g. in a `where'-clause attaching to a definition, there should also be a definition of `someName' in there
2020-10-13 18:13:48 +0200 <kuribas> hmm, maybe applicative-do...
2020-10-13 18:13:49 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 18:14:01 +0200alp(~alp@2a01:e0a:58b:4920:c582:5c02:4169:5973)
2020-10-13 18:14:14 +0200 <blip> kuribas: perhaps you'd like to use lensesd
2020-10-13 18:14:17 +0200 <blip> lenses?
2020-10-13 18:14:29 +0200 <kuribas> blip: how do lenses help with applicative?
2020-10-13 18:14:39 +0200 <ski> so, i'm getting complaints, because there's no definition of `x',`y',`z', accompanying those type signatures for them, inside that `where'
2020-10-13 18:15:05 +0200 <blip> blip: to select which part of the record you'd like to act upon
2020-10-13 18:15:08 +0200 <ski> (since `x',`y',`z' are not bound in the `where', but rather in the patterns / formal parameters, to the left of the `=', in the defining equation)
2020-10-13 18:15:13 +0200geekosaur(82659a0e@host154-014.vpn.uakron.edu)
2020-10-13 18:15:26 +0200 <kuribas> blip: but I need to act on all parts
2020-10-13 18:15:36 +0200 <ski> jil : hm. maybe it does something unexpected, not sure
2020-10-13 18:15:50 +0200 <blip> kuribas: well, if they are all of the same type, you can derive a functor instance
2020-10-13 18:15:57 +0200 <ski> (it being `org-mode', or perhaps some more particular mechanism invoked by it)
2020-10-13 18:16:00 +0200 <kuribas> blip: like MyRecord <$> field1 <*> field2 <*> field3
2020-10-13 18:16:07 +0200 <kuribas> but with field names instead of positions
2020-10-13 18:16:18 +0200xff0x(~fox@217.110.198.158) (Ping timeout: 256 seconds)
2020-10-13 18:16:43 +0200 <blip> kuribas: well, what about record updates?
2020-10-13 18:16:53 +0200 <kuribas> perhaps applicative do: do a <- field1; b <- field2; c <- field3; MyRecord {..}
2020-10-13 18:17:15 +0200 <kuribas> blip: record updates aren't a problem
2020-10-13 18:17:37 +0200 <kuribas> blip: my question isn't about record updates.
2020-10-13 18:17:50 +0200 <kuribas> it's about doing an applicative on a record.
2020-10-13 18:18:01 +0200conal(~conal@64.71.133.70)
2020-10-13 18:18:25 +0200 <blip> well, what you propose would work (adding a pure to the last line)
2020-10-13 18:18:30 +0200 <kuribas> yeah
2020-10-13 18:18:34 +0200 <ski> jil : in any case, the normal way to specify the types of function arguments is to provide a type signature for the whole function (normally before the function definition), like `add :: Int -> Int -> Int -> Int' (also specifying the result type)
2020-10-13 18:18:48 +0200 <jil> also when I :load a script with `add (x :: Int) (y :: Int) (z :: Int) = x + y + z :: Int` directly from ghci I get an error. https://paste.debian.net/1166990/ illegal type signature 'Int'
2020-10-13 18:19:38 +0200 <geekosaur> because it's trying to do a pattern signature which is an extension (it should have said something about ScopedTypeVariables)
2020-10-13 18:19:39 +0200 <jil> why is that ?
2020-10-13 18:19:46 +0200 <blip> kuribas: but also quite dangerous, you can easily construct an incomplete record
2020-10-13 18:19:47 +0200 <ski> jil : yes. as i mentioned (in brief) above, using that style (having `:: Int' in the formal parameters / patterns) is a language extension. try placing the following line as the first line in your script :
2020-10-13 18:19:48 +0200 <jil> yes it does.
2020-10-13 18:19:56 +0200 <ski> {-# LANGUAGE ScopedTypeVariables #-}
2020-10-13 18:19:59 +0200 <geekosaur> ski just told you the correct way to specify a function signature
2020-10-13 18:20:10 +0200 <jil> ok.
2020-10-13 18:20:13 +0200 <kuribas> blip: wouldn't that generate a warning?
2020-10-13 18:20:36 +0200 <ski> (if you want to play around with this style of ascribing types also to patterns, not just to expressions, that is)
2020-10-13 18:20:40 +0200 <blip> kuribas: I think yes with -Wall
2020-10-13 18:21:20 +0200 <kuribas> blip: I can turn a warning in an error, can't I?
2020-10-13 18:21:20 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-13 18:21:34 +0200 <blip> kuribas: yes, -Werr
2020-10-13 18:21:47 +0200nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-13 18:22:15 +0200 <kuribas> ah -Werror=⟨wflag⟩
2020-10-13 18:22:27 +0200 <blip> yep
2020-10-13 18:22:30 +0200 <jil> ski geekosaur ok. I had not understood what you meant by `a language extension`. It's clear know and my script works.
2020-10-13 18:22:53 +0200 <kuribas> strange haskell is so loose with undefined fields
2020-10-13 18:23:00 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-10-13 18:23:02 +0200 <kuribas> IMO it should be an error
2020-10-13 18:23:24 +0200fendor_(~fendor@t204-126.demo.tuwien.ac.at)
2020-10-13 18:23:24 +0200 <ski> ditto for missing methods ?
2020-10-13 18:23:29 +0200 <blip> there is a lot of undefined
2020-10-13 18:23:35 +0200 <blip> what about head?
2020-10-13 18:23:39 +0200 <kuribas> ski: that's an error right?
2020-10-13 18:23:41 +0200nyd(~lpy@unaffiliated/elysian)
2020-10-13 18:23:46 +0200 <dolio> No.
2020-10-13 18:23:52 +0200 <ski> @let data Foo = MkFoo; instance Num Foo
2020-10-13 18:23:54 +0200 <lambdabot> .L.hs:160:10: error: [-Wmissing-methods, -Werror=missing-methods]
2020-10-13 18:23:54 +0200 <lambdabot> • No explicit implementation for
2020-10-13 18:23:54 +0200 <lambdabot> ‘+’, ‘*’, ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’
2020-10-13 18:24:06 +0200 <blip> :)
2020-10-13 18:24:07 +0200 <monochrom> missing methods and undefined values are dynamic errors, not static errors.
2020-10-13 18:24:16 +0200 <ski> lambdabot doesn't like it, since it has `-Werror=missing-methods'
2020-10-13 18:24:17 +0200 <kuribas> ah you mean missing instance methods...
2020-10-13 18:24:29 +0200 <kuribas> indeed, that should be an error IMO
2020-10-13 18:24:50 +0200 <blip> > head []
2020-10-13 18:24:52 +0200 <lambdabot> *Exception: Prelude.head: empty list
2020-10-13 18:25:48 +0200Reiser2(~0a2a0001@static.210.242.216.95.clients.your-server.de)
2020-10-13 18:25:52 +0200 <blip> we need `-Werror=undefined`
2020-10-13 18:25:57 +0200 <ski> jil : you understand how to "line up" the arguments in `add x y z = x + y + z' with the types in `add :: Int -> Int -> Int -> Int' (or even `add :: Num a => a -> a -> a -> a'), yes ?
2020-10-13 18:26:01 +0200dustinm-(~dustinm@static.38.6.217.95.clients.your-server.de) (Ping timeout: 264 seconds)
2020-10-13 18:26:23 +0200fendor(~fendor@e237-037.eduroam.tuwien.ac.at) (Ping timeout: 258 seconds)
2020-10-13 18:26:43 +0200 <kuribas> I find partial functions are always a mistake, because you don't get a good error message.
2020-10-13 18:26:49 +0200Reiser(~0a2a0001@unaffiliated/reisen) (Ping timeout: 246 seconds)
2020-10-13 18:26:55 +0200lowryder(~djlowry@web603.webfaction.com)
2020-10-13 18:26:59 +0200 <blip> like (/)
2020-10-13 18:27:25 +0200chrpape(~user@2a01:4f9:c010:632d::1) (Ping timeout: 240 seconds)
2020-10-13 18:27:28 +0200 <blip> :: Rational
2020-10-13 18:27:53 +0200noteness_(noteness@unaffiliated/nessessary129)
2020-10-13 18:27:59 +0200jhuizy3(~jhuizy@static.241.188.216.95.clients.your-server.de)
2020-10-13 18:28:02 +0200fl0_id(~fl0_id@2a01:4f8:171:4de::40:2) (Quit: ZNC)
2020-10-13 18:28:02 +0200 <kuribas> yeah
2020-10-13 18:28:03 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
2020-10-13 18:28:07 +0200M2tias(m2@seri.fi) (Ping timeout: 240 seconds)
2020-10-13 18:28:19 +0200uwap_(~uwap@genja.uwap.name)
2020-10-13 18:28:33 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2020-10-13 18:28:34 +0200fl0_id(~fl0_id@claudia.s7t.de)
2020-10-13 18:29:06 +0200 <monochrom> Perhaps you can accept a compromise? Partial functions/values with the HasCallStack constraint are not static errors; without, are static errors.
2020-10-13 18:29:12 +0200uwap(~uwap@genja.uwap.name) (Read error: Connection reset by peer)
2020-10-13 18:29:21 +0200M2tias(m2@seri.fi)
2020-10-13 18:29:47 +0200jhuizy(~jhuizy@static.241.188.216.95.clients.your-server.de) (Ping timeout: 260 seconds)
2020-10-13 18:29:47 +0200jhuizy3jhuizy
2020-10-13 18:29:55 +0200Lycurgus(~niemand@98.4.96.235)
2020-10-13 18:30:06 +0200 <blip> I have to go, the abyss of promoted constructors is calling my name
2020-10-13 18:30:29 +0200 <dolio> I write good errors in my partial functions. :)
2020-10-13 18:30:35 +0200noteness(~noteness@unaffiliated/nessessary129) (Ping timeout: 244 seconds)
2020-10-13 18:30:57 +0200dustinm(~dustinm@static.38.6.217.95.clients.your-server.de)
2020-10-13 18:32:00 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-10-13 18:32:05 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-10-13 18:34:20 +0200howdoi(uid224@gateway/web/irccloud.com/x-llljiaghhgnypdze)
2020-10-13 18:35:09 +0200blip(58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) (Quit: Connection closed)
2020-10-13 18:35:27 +0200hackageprolens 0.0.0.0 - Profunctor-based lightweight implementation of optics https://hackage.haskell.org/package/prolens-0.0.0.0 (shersh)
2020-10-13 18:40:43 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-10-13 18:41:22 +0200uwap_(~uwap@genja.uwap.name) (Remote host closed the connection)
2020-10-13 18:41:34 +0200uwap(~uwap@genja.uwap.name)
2020-10-13 18:42:05 +0200pgib(~textual@lmms/pgib) (Ping timeout: 240 seconds)
2020-10-13 18:43:51 +0200 <maerwald> A language with no partial functions seems like a pain in the *ss. You don't really care about partial functions, you care about your program being total.
2020-10-13 18:45:28 +0200ski. o O ( preconditions & postconditions )
2020-10-13 18:46:14 +0200 <monochrom> inb4 Sapir-Whorf
2020-10-13 18:46:16 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-10-13 18:47:09 +0200nineonin_(~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection)
2020-10-13 18:49:56 +0200jollygood2(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-10-13 18:51:17 +0200tzh(~tzh@2601:448:c500:5300::d90)
2020-10-13 18:53:58 +0200fendor_(~fendor@t204-126.demo.tuwien.ac.at) (Remote host closed the connection)
2020-10-13 18:54:45 +0200taurux(~taurux@net-109-115-33-170.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
2020-10-13 18:55:18 +0200taurux(~taurux@net-109-115-33-211.cust.vodafonedsl.it)
2020-10-13 18:56:34 +0200 <Cheery> bucklescript translates the partial functions away.
2020-10-13 18:57:48 +0200 <Cheery> I'm curious about that because it means that on partial parameters they're constructing a closure that fills in the partial.
2020-10-13 18:58:53 +0200 <Cheery> also if you have function like a → b, if the 'b' turns out to be a function, then the parameters cannot be fused anyway.
2020-10-13 18:59:42 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-13 18:59:54 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 272 seconds)
2020-10-13 19:00:45 +0200 <Cheery> nobody cares as long as they're not exposed in a library interface. That'd be interesting subject on its own.
2020-10-13 19:00:58 +0200Bakun(~bakun@51.15.0.88) (Ping timeout: 260 seconds)
2020-10-13 19:01:00 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-10-13 19:01:26 +0200nineonine(~nineonine@216.81.48.202)
2020-10-13 19:01:51 +0200nineonine(~nineonine@216.81.48.202) (Remote host closed the connection)
2020-10-13 19:02:03 +0200nineonine(~nineonine@216.81.48.202)
2020-10-13 19:02:54 +0200Bakun(~bakun@51.15.0.88)
2020-10-13 19:05:52 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 258 seconds)
2020-10-13 19:05:54 +0200guest35(d537f42e@213.55.244.46) (Remote host closed the connection)
2020-10-13 19:08:56 +0200 <monochrom> That sounds like you mistook partial function for partial application.
2020-10-13 19:09:29 +0200 <Cheery> you're right.
2020-10-13 19:12:08 +0200 <Cheery> But then got opinion on that as well. I think I like the approach where you tag the partial functions.
2020-10-13 19:12:31 +0200mdunnio(~mdunnio@208.59.170.5)
2020-10-13 19:14:33 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 19:14:46 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 19:14:46 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 19:14:46 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 19:15:05 +0200mdunnio_(~mdunnio@208.59.170.5) (Ping timeout: 240 seconds)
2020-10-13 19:15:38 +0200Gerula(~Gerula@unaffiliated/gerula)
2020-10-13 19:16:04 +0200 <Cheery> I might also do that for recursive functions.
2020-10-13 19:16:32 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 19:16:52 +0200xff0x(~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372)
2020-10-13 19:18:11 +0200GyroW_(~GyroW@d54C03E98.access.telenet.be)
2020-10-13 19:18:11 +0200GyroW_(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-13 19:18:11 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-13 19:19:25 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-13 19:20:38 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Ping timeout: 265 seconds)
2020-10-13 19:21:31 +0200mdunnio_(~mdunnio@208.59.170.5)
2020-10-13 19:22:24 +0200 <Cheery> fix :: Fix a => (a → a) → a
2020-10-13 19:22:32 +0200xff0x(~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372) (Ping timeout: 260 seconds)
2020-10-13 19:22:48 +0200raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-10-13 19:23:49 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 19:24:24 +0200xff0x(~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372)
2020-10-13 19:24:45 +0200mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 240 seconds)
2020-10-13 19:24:47 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-10-13 19:25:51 +0200p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
2020-10-13 19:26:07 +0200conal(~conal@64.71.133.70)
2020-10-13 19:26:20 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 19:27:21 +0200dopplergange(~dop@titan.pathogen.is)
2020-10-13 19:27:53 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-10-13 19:28:22 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 260 seconds)
2020-10-13 19:29:07 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 19:29:17 +0200oisdk(~oisdk@2001:bb6:3329:d100:a9e4:32d1:231e:16a5) (Quit: oisdk)
2020-10-13 19:32:21 +0200chenshen(~chenshen@2620:10d:c090:400::5:1dbd)
2020-10-13 19:32:35 +0200amx(amx@percival.namespace.at)
2020-10-13 19:34:16 +0200sand_dull(~theuser@104.140.53.43)
2020-10-13 19:34:52 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2020-10-13 19:35:27 +0200hackagematterhorn 50200.10.3 - Terminal client for the Mattermost chat system https://hackage.haskell.org/package/matterhorn-50200.10.3 (JonathanDaugherty)
2020-10-13 19:35:47 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-10-13 19:38:07 +0200pera(~pera@unaffiliated/pera) (Quit: leaving)
2020-10-13 19:38:48 +0200isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com)
2020-10-13 19:44:00 +0200winircuser-559(~winircuse@208.65.191.38)
2020-10-13 19:44:30 +0200leungbk(~user@2605:e000:1315:706:cc8c:f2b3:1a5a:360)
2020-10-13 19:46:10 +0200kupi(uid212005@gateway/web/irccloud.com/x-zkqelsktmjuyhxgl) (Quit: Connection closed for inactivity)
2020-10-13 19:48:16 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-13 19:48:32 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 19:49:58 +0200John20(~John@82.46.59.122) (Ping timeout: 260 seconds)
2020-10-13 19:52:52 +0200chenshen(~chenshen@2620:10d:c090:400::5:1dbd) (Ping timeout: 260 seconds)
2020-10-13 19:53:05 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2020-10-13 19:53:44 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 272 seconds)
2020-10-13 19:56:20 +0200L29Ah(~L29Ah@unaffiliated/l29ah)
2020-10-13 19:58:52 +0200elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-13 19:59:14 +0200ashbreeze(~mark@72-161-254-60.dyn.centurytel.net)
2020-10-13 20:00:01 +0200supaplex1(~supaplex1@185.163.110.116) ()
2020-10-13 20:00:04 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-10-13 20:00:07 +0200dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2020-10-13 20:00:15 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 20:00:25 +0200L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 240 seconds)
2020-10-13 20:00:25 +0200knupfer(~Thunderbi@200116b82c814300f1e41d34f9bff3a4.dip.versatel-1u1.de) (Remote host closed the connection)
2020-10-13 20:00:34 +0200knupfer(~Thunderbi@200116b82c81430000cc9ce4231ed805.dip.versatel-1u1.de)
2020-10-13 20:00:52 +0200avdb(~avdb@ip-62-235-189-198.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-10-13 20:01:31 +0200Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-10-13 20:01:42 +0200_ashbreeze_(~mark@72-161-254-60.dyn.centurytel.net) (Ping timeout: 256 seconds)
2020-10-13 20:02:09 +0200lowryder(~djlowry@web603.webfaction.com) (Remote host closed the connection)
2020-10-13 20:02:27 +0200hackagerescue 0.3.0 - More understandable exceptions https://hackage.haskell.org/package/rescue-0.3.0 (expede)
2020-10-13 20:03:49 +0200geekosaur(82659a0e@host154-014.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-10-13 20:04:24 +0200L29Ah(~L29Ah@unaffiliated/l29ah)
2020-10-13 20:05:08 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-13 20:08:37 +0200chaosmasttter(~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 20:08:40 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-10-13 20:08:52 +0200mdickens(~mdickens@2600:1700:100:6510:a0bd:f978:b47f:a64d)
2020-10-13 20:09:23 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 20:10:23 +0200elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-10-13 20:11:47 +0200alp(~alp@2a01:e0a:58b:4920:c582:5c02:4169:5973) (Remote host closed the connection)
2020-10-13 20:12:25 +0200alp(~alp@2a01:e0a:58b:4920:5926:20e4:5d7e:7879)
2020-10-13 20:13:27 +0200alp(~alp@2a01:e0a:58b:4920:5926:20e4:5d7e:7879) (Remote host closed the connection)
2020-10-13 20:14:03 +0200alp(~alp@2a01:e0a:58b:4920:ed0b:3d12:34d1:634d)
2020-10-13 20:15:08 +0200alp(~alp@2a01:e0a:58b:4920:ed0b:3d12:34d1:634d) (Remote host closed the connection)
2020-10-13 20:15:28 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 20:15:45 +0200alp(~alp@2a01:e0a:58b:4920:8d39:25bb:b9fc:ab4b)
2020-10-13 20:16:32 +0200sand_dull(~theuser@104.140.53.43) (Ping timeout: 272 seconds)
2020-10-13 20:16:48 +0200alp(~alp@2a01:e0a:58b:4920:8d39:25bb:b9fc:ab4b) (Remote host closed the connection)
2020-10-13 20:17:26 +0200alp(~alp@2a01:e0a:58b:4920:b0eb:85d7:8e70:cf02)
2020-10-13 20:17:35 +0200pera(~pera@unaffiliated/pera)
2020-10-13 20:17:36 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-13 20:18:07 +0200Mouse34(8137c814@LLPROXY.LL.MIT.EDU)
2020-10-13 20:18:29 +0200alp(~alp@2a01:e0a:58b:4920:b0eb:85d7:8e70:cf02) (Remote host closed the connection)
2020-10-13 20:19:04 +0200alp(~alp@2a01:e0a:58b:4920:8c3b:f2ef:189e:7b1f)
2020-10-13 20:19:51 +0200_ashbreeze_(~mark@72-161-254-60.dyn.centurytel.net)
2020-10-13 20:20:10 +0200Ahmuck(~Ahmuck@178.162.204.214)
2020-10-13 20:20:43 +0200alp(~alp@2a01:e0a:58b:4920:8c3b:f2ef:189e:7b1f) (Remote host closed the connection)
2020-10-13 20:21:07 +0200ashbreeze(~mark@72-161-254-60.dyn.centurytel.net) (Ping timeout: 256 seconds)
2020-10-13 20:22:20 +0200alp(~alp@2a01:e0a:58b:4920:6ddd:c2d0:4761:63bc)
2020-10-13 20:23:00 +0200romildo(~Romildo@ip-187-73-5-249.isp.valenet.com.br)
2020-10-13 20:23:59 +0200elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-13 20:24:02 +0200 <romildo> Is there an irc channel for haskell-mode/lsp-haskell with emacs?
2020-10-13 20:24:04 +0200alp(~alp@2a01:e0a:58b:4920:6ddd:c2d0:4761:63bc) (Remote host closed the connection)
2020-10-13 20:24:04 +0200geekosaur(82659a0e@host154-014.vpn.uakron.edu)
2020-10-13 20:24:39 +0200alp(~alp@2a01:e0a:58b:4920:45ee:7400:a0c1:b755)
2020-10-13 20:25:59 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-10-13 20:26:13 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2020-10-13 20:26:18 +0200alp(~alp@2a01:e0a:58b:4920:45ee:7400:a0c1:b755) (Remote host closed the connection)
2020-10-13 20:26:34 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Remote host closed the connection)
2020-10-13 20:26:47 +0200Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 256 seconds)
2020-10-13 20:26:56 +0200alp(~alp@2a01:e0a:58b:4920:2979:fa8:1325:3fdc)
2020-10-13 20:27:34 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-10-13 20:27:45 +0200Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-10-13 20:28:29 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-13 20:28:32 +0200alp(~alp@2a01:e0a:58b:4920:2979:fa8:1325:3fdc) (Remote host closed the connection)
2020-10-13 20:28:48 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-10-13 20:29:13 +0200alp(~alp@2a01:e0a:58b:4920:b89e:6fed:34a9:922c)
2020-10-13 20:29:49 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-10-13 20:30:01 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 20:30:07 +0200chaosmasttter(~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de)
2020-10-13 20:30:46 +0200alp(~alp@2a01:e0a:58b:4920:b89e:6fed:34a9:922c) (Remote host closed the connection)
2020-10-13 20:31:04 +0200alp(~alp@2a01:e0a:58b:4920:e5d4:e452:52c9:d16a)
2020-10-13 20:31:35 +0200 <ski> romildo : try here or maybe in #emacs ?
2020-10-13 20:32:18 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-10-13 20:32:42 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-13 20:33:26 +0200 <romildo> Is there a key binding to insert in the text the inferred type of a variable in a equation?
2020-10-13 20:34:16 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection)
2020-10-13 20:34:25 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-13 20:34:37 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com)
2020-10-13 20:36:30 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 20:36:33 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 20:36:33 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 20:36:41 +0200alp(~alp@2a01:e0a:58b:4920:e5d4:e452:52c9:d16a) (Ping timeout: 272 seconds)
2020-10-13 20:37:26 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds)
2020-10-13 20:38:16 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-13 20:41:53 +0200jespada(~jespada@90.254.245.15) (Ping timeout: 260 seconds)
2020-10-13 20:43:35 +0200jespada(~jespada@90.254.245.15)
2020-10-13 20:44:45 +0200sand_dull(~theuser@104.140.53.43)
2020-10-13 20:46:38 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-10-13 20:47:45 +0200clog(~nef@bespin.org) (Ping timeout: 240 seconds)
2020-10-13 20:51:09 +0200sand_dull(~theuser@104.140.53.43) (Ping timeout: 256 seconds)
2020-10-13 20:52:39 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye)
2020-10-13 20:54:24 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 265 seconds)
2020-10-13 20:56:12 +0200mdickens(~mdickens@2600:1700:100:6510:a0bd:f978:b47f:a64d) ()
2020-10-13 20:56:39 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 258 seconds)
2020-10-13 20:56:41 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 20:59:15 +0200 <koz_> Am I right in that the kind of f here is Type -> Type? https://hackage.haskell.org/package/free-5.1.4/docs/Control-Monad-Free-Church.html#t:F
2020-10-13 20:59:44 +0200Lycurgus(~niemand@98.4.96.235) (Quit: Exeunt)
2020-10-13 21:00:00 +0200 <ghoulguy> koz_: no
2020-10-13 21:00:02 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 21:00:08 +0200 <ghoulguy> Look at runF :: forall r. (a -> r) -> (f r -> r) -> r
2020-10-13 21:00:19 +0200 <koz_> Ah, so k -> Type?
2020-10-13 21:00:21 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-13 21:00:21 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-13 21:00:21 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 21:00:25 +0200 <ghoulguy> nuh uh
2020-10-13 21:00:28 +0200winircuser-559(~winircuse@208.65.191.38) (Read error: Connection reset by peer)
2020-10-13 21:00:35 +0200 <ghoulguy> OOH,
2020-10-13 21:00:40 +0200 <ghoulguy> sorry, let me reassess
2020-10-13 21:00:41 +0200 <ski> `f' vs. `F' ?
2020-10-13 21:00:44 +0200 <ghoulguy> I thought you asked the kind of F
2020-10-13 21:00:53 +0200 <koz_> ski: I meant the type parameter 'f'.
2020-10-13 21:00:58 +0200 <ski> yes, i assumed so
2020-10-13 21:01:03 +0200 <ghoulguy> yeah, Type -> Type then
2020-10-13 21:01:11 +0200 <koz_> OK, good to know.
2020-10-13 21:01:13 +0200 <ghoulguy> f is applied to r, and r has to have kind Type
2020-10-13 21:02:21 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-13 21:03:33 +0200berberman_(~berberman@unaffiliated/berberman)
2020-10-13 21:03:59 +0200lowryder(~djlowry@web603.webfaction.com)
2020-10-13 21:04:02 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-10-13 21:05:13 +0200ggole(~ggole@2001:8003:8119:7200:dcc4:683f:59f7:9d48) (Quit: Leaving)
2020-10-13 21:06:14 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Ping timeout: 258 seconds)
2020-10-13 21:06:27 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 21:07:13 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667)
2020-10-13 21:08:45 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-10-13 21:08:58 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 21:09:13 +0200lucid_0x80(~lucid_0x8@188.253.234.40) (Ping timeout: 264 seconds)
2020-10-13 21:09:20 +0200macrover(~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection)
2020-10-13 21:10:21 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-10-13 21:12:20 +0200romildo(~Romildo@ip-187-73-5-249.isp.valenet.com.br) (Quit: Leaving)
2020-10-13 21:13:32 +0200conal(~conal@64.71.133.70)
2020-10-13 21:14:40 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-13 21:15:07 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 21:16:03 +0200oisdk(~oisdk@2001:bb6:3329:d100:a9e4:32d1:231e:16a5)
2020-10-13 21:23:46 +0200conal(~conal@64.71.133.70)
2020-10-13 21:24:39 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 21:24:45 +0200acidjnk_new(~acidjnk@p200300d0c723782849be01692612d250.dip0.t-ipconnect.de)
2020-10-13 21:26:34 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 21:27:36 +0200xerox_(~xerox@unaffiliated/xerox) (Quit: leaving)
2020-10-13 21:28:39 +0200 <Zetagon> Is there a difference between algebraic effects and extensible effects?
2020-10-13 21:29:41 +0200 <dolio> Maybe.
2020-10-13 21:29:42 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 260 seconds)
2020-10-13 21:29:56 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-10-13 21:30:15 +0200 <monochrom> :)
2020-10-13 21:30:25 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-13 21:30:58 +0200styledash(~styledash@157.230.173.136) (Quit: The Lounge - https://thelounge.chat)
2020-10-13 21:31:34 +0200styledash(~styledash@157.230.173.136)
2020-10-13 21:32:30 +0200 <Zetagon> I guess they are similar enough that I can say they are basically the same
2020-10-13 21:33:22 +0200Bakun(~bakun@51.15.0.88) (Ping timeout: 246 seconds)
2020-10-13 21:33:32 +0200 <dminuoso> Zetagon: You'd have to say what the terms precisely refer to.
2020-10-13 21:33:42 +0200 <dminuoso> Or, where you picked them up.
2020-10-13 21:34:16 +0200 <dolio> Well, I would technically say they are two different things. "Algebraic" is about what things count as 'effects', and "extensible" is about tracking and combining individual effect specifications.
2020-10-13 21:35:31 +0200Bakun(~bakun@51.15.0.88)
2020-10-13 21:35:38 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-13 21:35:39 +0200 <dolio> However, any effect system that isn't "extensible" will probably be rejected immediately as not being practical.
2020-10-13 21:36:20 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 21:36:46 +0200 <Zetagon> Things like polysemy and fused effects, or things like Microsoft Research's Koka
2020-10-13 21:37:10 +0200 <Zetagon> I just stumbled upon these stuff and thought they sound very interesting but don't know what to call them
2020-10-13 21:37:13 +0200bahamas(~lucian@188.24.181.166)
2020-10-13 21:37:13 +0200bahamas(~lucian@188.24.181.166) (Changing host)
2020-10-13 21:37:13 +0200bahamas(~lucian@unaffiliated/bahamas)
2020-10-13 21:37:20 +0200 <dolio> Because you'd have to manually write the State effect and the State+Exception effect, and the Exception effect and mediate between them by hand.
2020-10-13 21:37:43 +0200conal(~conal@64.71.133.70)
2020-10-13 21:41:59 +0200untseac(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2020-10-13 21:42:30 +0200 <untseac> regarding yesterday questions, looks like mongodb yesod template is the one that is archaic. the default sqlite is okay.
2020-10-13 21:42:50 +0200 <dolio> I guess I could be wrong about that, though, because people actually work that way in Haskell sometimes.
2020-10-13 21:43:24 +0200 <dolio> Although not to quite that extreme a degree.
2020-10-13 21:46:23 +0200Bakun(~bakun@51.15.0.88) (Read error: Connection reset by peer)
2020-10-13 21:47:09 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-10-13 21:49:26 +0200dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
2020-10-13 21:49:40 +0200dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e)
2020-10-13 21:51:06 +0200Bakun(~bakun@51.15.0.88)
2020-10-13 21:51:53 +0200oxide(~lambda@unaffiliated/mclaren) (Ping timeout: 260 seconds)
2020-10-13 21:52:39 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.7.1)
2020-10-13 21:52:48 +0200nyd(~lpy@unaffiliated/elysian) (Ping timeout: 260 seconds)
2020-10-13 21:53:24 +0200oxide(~lambda@unaffiliated/mclaren)
2020-10-13 21:58:22 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 256 seconds)
2020-10-13 22:05:13 +0200winircuser-559(~winircuse@208.65.191.38)
2020-10-13 22:05:18 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-10-13 22:06:47 +0200winircuser-559(~winircuse@208.65.191.38) (Client Quit)
2020-10-13 22:06:52 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-10-13 22:08:15 +0200aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net)
2020-10-13 22:09:36 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Quit: leaving)
2020-10-13 22:18:08 +0200aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net) ()
2020-10-13 22:18:13 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-13 22:18:23 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-13 22:18:23 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-13 22:18:23 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 22:18:37 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 22:19:16 +0200conal(~conal@64.71.133.70)
2020-10-13 22:21:21 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-13 22:23:55 +0200conal(~conal@64.71.133.70)
2020-10-13 22:25:05 +0200elliott_(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-10-13 22:27:14 +0200conal(~conal@64.71.133.70) (Client Quit)
2020-10-13 22:27:23 +0200rprije(~rprije@203.214.95.251)
2020-10-13 22:29:32 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2020-10-13 22:29:54 +0200cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-13 22:30:36 +0200Bakun(~bakun@51.15.0.88) (Read error: Connection reset by peer)
2020-10-13 22:30:37 +0200daenth(~daenth@136.36.157.210)
2020-10-13 22:31:07 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 22:34:27 +0200knupfer(~Thunderbi@200116b82c81430000cc9ce4231ed805.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-10-13 22:35:37 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 22:36:50 +0200conal(~conal@64.71.133.70)
2020-10-13 22:37:29 +0200geekosaur(82659a0e@host154-014.vpn.uakron.edu) (Remote host closed the connection)
2020-10-13 22:39:42 +0200ashbreeze(~mark@72-161-254-60.dyn.centurytel.net)
2020-10-13 22:41:58 +0200_ashbreeze_(~mark@72-161-254-60.dyn.centurytel.net) (Ping timeout: 246 seconds)
2020-10-13 22:42:02 +0200leungbk(~user@2605:e000:1315:706:cc8c:f2b3:1a5a:360) (Ping timeout: 260 seconds)
2020-10-13 22:43:16 +0200machinedgod(~machinedg@24.105.81.50)
2020-10-13 22:43:25 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 264 seconds)
2020-10-13 22:43:33 +0200GyroW_(~GyroW@d54C03E98.access.telenet.be)
2020-10-13 22:43:33 +0200GyroW_(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-13 22:43:33 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-13 22:44:29 +0200aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net)
2020-10-13 22:45:08 +0200ashbreeze(~mark@72-161-254-60.dyn.centurytel.net) (Ping timeout: 258 seconds)
2020-10-13 22:46:26 +0200aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net) ()
2020-10-13 22:53:33 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-10-13 22:55:12 +0200lowryder(~djlowry@web603.webfaction.com) (Remote host closed the connection)
2020-10-13 22:58:47 +0200kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2020-10-13 23:00:01 +0200Ahmuck(~Ahmuck@178.162.204.214) ()
2020-10-13 23:00:17 +0200ensyde(~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253)
2020-10-13 23:00:53 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-10-13 23:02:42 +0200coot(~coot@37.30.50.102.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-10-13 23:02:58 +0200hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-10-13 23:03:46 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-10-13 23:05:03 +0200hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-10-13 23:05:40 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de)
2020-10-13 23:06:18 +0200hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
2020-10-13 23:06:43 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-10-13 23:06:44 +0200hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-10-13 23:07:39 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-13 23:09:33 +0200conal(~conal@64.71.133.70)
2020-10-13 23:10:02 +0200thir(~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-13 23:11:31 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-10-13 23:12:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-13 23:17:44 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-10-13 23:18:16 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-10-13 23:19:02 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-13 23:19:02 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-13 23:19:02 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-13 23:19:20 +0200solonarv(~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr)
2020-10-13 23:19:34 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds)
2020-10-13 23:21:24 +0200BusError1(~BusError@185.163.110.116)
2020-10-13 23:24:52 +0200chaosmasttter(~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-10-13 23:26:42 +0200proofofme(~proofofme@184-96-74-65.hlrn.qwest.net)
2020-10-13 23:30:36 +0200LKoen(~LKoen@81.255.219.130) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-10-13 23:30:37 +0200 <proofofme> Can you define types from operations done on other types? For example, there's `data Financial = Financial double -- units in '$'`, `data Rate = Rate double --units in '$/lb'`, and `data Weight = Weight double -- units in lbs`. Can you do something like `amount (a Financial type) = rate * weight`? I am getting some mismatched type errors from this.
2020-10-13 23:33:13 +0200 <ski> the normal `*' only takes two things of the same type
2020-10-13 23:38:04 +0200snakemas1(~snakemast@213.100.206.23)
2020-10-13 23:38:25 +0200hseg(~gesh@185.120.126.55)
2020-10-13 23:38:50 +0200 <monochrom> If you bothered to use types to distinguish between money, weight, and money-per-weight, it stands to reason to also define your own Rate -> Weight -> Financial so you don't accidentally do "multiply money money-per-weight"
2020-10-13 23:39:03 +0200 <hseg> is there a way to use @-patterns along with view patterns to bind intermediate values?
2020-10-13 23:39:23 +0200 <hseg> i.e. would like sth like (map Just -> ls@(pad n -> pls))
2020-10-13 23:39:49 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
2020-10-13 23:41:57 +0200 <ski> > let (negate -> x@((^ 2) -> y)) = 2 in (x,y)
2020-10-13 23:42:00 +0200 <lambdabot> (-2,4)
2020-10-13 23:42:17 +0200 <hseg> huh. it works
2020-10-13 23:42:26 +0200 <hseg> happy surprise
2020-10-13 23:42:56 +0200snakemas1(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-10-13 23:43:22 +0200Gerula(~Gerula@unaffiliated/gerula) (Remote host closed the connection)
2020-10-13 23:43:35 +0200xintron(~xintron@unaffiliated/xintron) (Quit: Ping timeout (120 seconds))
2020-10-13 23:43:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-13 23:44:01 +0200xintron(~xintron@unaffiliated/xintron)
2020-10-13 23:44:37 +0200Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection)
2020-10-13 23:45:23 +0200 <hseg> hrmph. unfortunately, i can't use where-bound variables in view patterns.
2020-10-13 23:45:31 +0200 <hseg> meh. was a bit of golfing anyway
2020-10-13 23:45:46 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-ufuazzkmfwuyelkh)
2020-10-13 23:46:28 +0200 <hseg> (use case was c (map Just -> ls@(pad n -> pls)) (map Just -> ms@(pad n -> pms)) (map Just -> sort -> ns) = ... where n = length ns)
2020-10-13 23:49:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-13 23:49:17 +0200mdunnio(~mdunnio@208.59.170.5)
2020-10-13 23:49:30 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:8576:1536:5132:aae7) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-13 23:52:21 +0200eedgit2(~chat.free@95.179.237.21) (Remote host closed the connection)
2020-10-13 23:52:41 +0200eedgit2(~chat.free@95.179.237.21)
2020-10-13 23:52:45 +0200mdunnio_(~mdunnio@208.59.170.5) (Ping timeout: 240 seconds)
2020-10-13 23:56:00 +0200mdunnio(~mdunnio@208.59.170.5) (Read error: Connection reset by peer)
2020-10-13 23:56:37 +0200mdunnio(~mdunnio@208.59.170.5)
2020-10-13 23:57:13 +0200mav1(~mav@ipservice-092-217-043-250.092.217.pools.vodafone-ip.de)
2020-10-13 23:58:20 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2020-10-13 23:58:44 +0200mav1(~mav@ipservice-092-217-043-250.092.217.pools.vodafone-ip.de) (Client Quit)