2022/07/29

2022-07-29 00:02:37 +0200dcoutts_(~duncan@host86-149-51-106.range86-149.btcentralplus.com)
2022-07-29 00:03:05 +0200JannisO(~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 252 seconds)
2022-07-29 00:04:11 +0200dcoutts(~duncan@host86-167-90-210.range86-167.btcentralplus.com) (Ping timeout: 252 seconds)
2022-07-29 00:04:13 +0200 <hpc> the precursor paper to that is even cooler, they had to figure out how to get the system to oscillate between states over time without losing energy
2022-07-29 00:18:54 +0200onosendi(sid552923@user/onosendi)
2022-07-29 00:19:12 +0200sonologico(~raphael@dhcp-077-251-118-129.chello.nl) (Ping timeout: 245 seconds)
2022-07-29 00:19:55 +0200 <onosendi> Is there linting in Haskell, like JavaScript's ESLint? Style guide? I'm just using haskell-language-server as of now.
2022-07-29 00:20:40 +0200 <geekosaur> you may want to install hlint
2022-07-29 00:20:46 +0200 <maralorn> onosendi: There are formaters and there is hlint. Both should be enabled by default when using hls.
2022-07-29 00:20:47 +0200 <geekosaur> HLS will use it if it finds it
2022-07-29 00:21:28 +0200 <maralorn> hls doesn‘t look for it. hls is either linked against it or it isn‘t. The default binaries you get via ghcup are.
2022-07-29 00:21:39 +0200 <geekosaur> (actually I think hlint is still disabled by default if you are using ghc 9.2.x?)
2022-07-29 00:21:53 +0200 <maralorn> That’s true.
2022-07-29 00:22:23 +0200 <onosendi> Hmm, so `brew install hlint` ?
2022-07-29 00:22:36 +0200 <geekosaur> wonder if that's because it will recommend eta reduction when that can cause problems with simplified subsumption?
2022-07-29 00:22:58 +0200 <maralorn> No clue about mac. But if it finds something, then that will probaly work.
2022-07-29 00:23:11 +0200 <maralorn> Then you do `hlint **/*.hs`
2022-07-29 00:24:28 +0200k8yun__(~k8yun@user/k8yun)
2022-07-29 00:24:59 +0200jargon(~jargon@184.101.188.251)
2022-07-29 00:25:25 +0200 <maralorn> Hm, at least on master hlint is supposed to support all support ghc versions and is enabled for all of them in the cabal file.
2022-07-29 00:25:40 +0200 <onosendi> Anyone using nvim by any chance?
2022-07-29 00:26:28 +0200 <maralorn> I did for a long time.
2022-07-29 00:26:38 +0200 <maralorn> Others certainly do.
2022-07-29 00:27:29 +0200 <onosendi> maralorn: do you happen to have your old dots on github, that used hls?
2022-07-29 00:27:57 +0200k8yun_(~k8yun@user/k8yun) (Ping timeout: 245 seconds)
2022-07-29 00:30:04 +0200 <maralorn> onosendi: I use nixos + home-manager, so yeah, but the syntax might annoy you a lot: https://git.maralorn.de/nixos-config/tree/home-manager/roles/neovim/default.nix
2022-07-29 00:30:54 +0200 <maralorn> I use hls with coc, which is probably not the best solution if you start from scratch today. I configured this when nvim had no builtin lsp support.
2022-07-29 00:31:12 +0200 <maralorn> Really I shouldn‘t even have posted this, it’s a bad example.^^
2022-07-29 00:31:51 +0200 <maralorn> onosendi: Have you had a look at this? https://haskell-language-server.readthedocs.io/en/latest/configuration.html?highlight=neovim#vim-o…
2022-07-29 00:31:51 +0200 <onosendi> Yeah, I'm using lsp.
2022-07-29 00:31:59 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 00:32:00 +0200yin(~yin@user/zero) (Ping timeout: 268 seconds)
2022-07-29 00:32:15 +0200 <onosendi> maralorn: Yeah, I was just looking at that.
2022-07-29 00:32:57 +0200coco(~coco@212-51-146-199.fiber7.init7.net) (Ping timeout: 245 seconds)
2022-07-29 00:33:16 +0200younder(~younder@33.51-174-155.customer.lyse.net) (Quit: Connection closed)
2022-07-29 00:34:37 +0200dcoutts(~duncan@host86-149-51-106.range86-149.btcentralplus.com)
2022-07-29 00:36:27 +0200dcoutts_(~duncan@host86-149-51-106.range86-149.btcentralplus.com) (Ping timeout: 252 seconds)
2022-07-29 00:36:28 +0200 <onosendi> I'm a JavaScript dev, and I've been studying FP for a few months. I've learned basic stuff, like functors, monads, monoids, semigroups, etc. However, there isn't any realworld FP JS code to look at, to see how each of these things are actually implemented. So, I figured the best way is to learn Haskell, to learn how to think more declaratively. Do you guys have any advice on where to start? I'm
2022-07-29 00:36:30 +0200 <onosendi> literally brand new to this.
2022-07-29 00:37:07 +0200dcoutts_(~duncan@host86-149-51-106.range86-149.btcentralplus.com)
2022-07-29 00:38:43 +0200 <geekosaur> possibly you want to look at purescript, which uses many of the same idioms (minus laziness) and compiles to JS
2022-07-29 00:39:12 +0200dcoutts(~duncan@host86-149-51-106.range86-149.btcentralplus.com) (Ping timeout: 245 seconds)
2022-07-29 00:39:53 +0200son0p(~ff@181.136.122.143)
2022-07-29 00:41:57 +0200dcoutts_(~duncan@host86-149-51-106.range86-149.btcentralplus.com) (Ping timeout: 252 seconds)
2022-07-29 00:44:56 +0200dcoutts(~duncan@host86-171-59-92.range86-171.btcentralplus.com)
2022-07-29 00:45:09 +0200 <sm> read code of a bunch of haskell projects ?
2022-07-29 00:45:58 +0200 <sm> https://wiki.haskell.org/How_to_read_Haskell, https://wiki.haskell.org/Learn_Haskell_in_10_minutes
2022-07-29 00:46:09 +0200yin(~yin@user/zero)
2022-07-29 00:47:09 +0200 <sm> or of https://hackage.haskell.org/package/base-4.16.3.0/docs/Prelude.html
2022-07-29 00:48:07 +0200coco(~coco@212-51-146-199.fiber7.init7.net)
2022-07-29 00:48:52 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net)
2022-07-29 00:50:37 +0200dcoutts_(~duncan@host86-150-41-142.range86-150.btcentralplus.com)
2022-07-29 00:51:07 +0200dcoutts(~duncan@host86-171-59-92.range86-171.btcentralplus.com) (Ping timeout: 252 seconds)
2022-07-29 00:52:19 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 00:52:26 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host)
2022-07-29 00:52:26 +0200Guest3(~textual@user/polo)
2022-07-29 00:52:31 +0200Guest3Gambino
2022-07-29 00:53:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 00:55:52 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-07-29 00:57:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 255 seconds)
2022-07-29 00:59:33 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
2022-07-29 01:01:22 +0200coco(~coco@212-51-146-199.fiber7.init7.net) (Quit: WeeChat 3.5)
2022-07-29 01:04:38 +0200dcoutts__(~duncan@host86-150-41-142.range86-150.btcentralplus.com)
2022-07-29 01:06:31 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-07-29 01:07:15 +0200dcoutts_(~duncan@host86-150-41-142.range86-150.btcentralplus.com) (Ping timeout: 252 seconds)
2022-07-29 01:07:49 +0200jumper149(~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.5)
2022-07-29 01:08:20 +0200yvan-sraka(uid419690@id-419690.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-29 01:10:16 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 01:16:25 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2022-07-29 01:16:55 +0200enemeth79(uid309041@id-309041.lymington.irccloud.com)
2022-07-29 01:17:59 +0200yin(~yin@user/zero)
2022-07-29 01:18:16 +0200Gambino(~textual@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-07-29 01:18:21 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-07-29 01:19:28 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2022-07-29 01:20:34 +0200inversed(~inversed@0545c13e.skybroadband.com) (Ping timeout: 244 seconds)
2022-07-29 01:20:43 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds)
2022-07-29 01:21:55 +0200alp_(~alp@user/alp)
2022-07-29 01:22:03 +0200alp__(~alp@user/alp) (Remote host closed the connection)
2022-07-29 01:22:03 +0200Luj(~Luj@2a01:e0a:5f9:9681:7a1a:a15b:364:89d8) (Quit: Ping timeout (120 seconds))
2022-07-29 01:22:15 +0200Luj(~Luj@2a01:e0a:5f9:9681:abed:9db1:6133:89ac)
2022-07-29 01:22:56 +0200Kaiepi(~Kaiepi@156.34.47.253) (Read error: Connection reset by peer)
2022-07-29 01:23:21 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-07-29 01:33:22 +0200k8yun__(~k8yun@user/k8yun) (Ping timeout: 245 seconds)
2022-07-29 01:40:56 +0200Sgeo(~Sgeo@user/sgeo)
2022-07-29 01:41:17 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 245 seconds)
2022-07-29 01:42:03 +0200dcoutts(~duncan@host86-150-41-142.range86-150.btcentralplus.com)
2022-07-29 01:43:17 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-07-29 01:44:07 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 01:44:08 +0200bilegeek(~bilegeek@2600:1008:b009:a40a:238d:fd4d:a133:b04d)
2022-07-29 01:44:47 +0200naso(~naso@193-116-244-197.tpgi.com.au)
2022-07-29 01:58:05 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-07-29 01:58:05 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-07-29 01:58:05 +0200wroathe(~wroathe@user/wroathe)
2022-07-29 02:00:40 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 02:02:00 +0200califax(~califax@user/califx)
2022-07-29 02:03:35 +0200 <slack1256> geekosaur: After convincing stack to build using ghc-9.2.3 I discovered the leak. I did not sleep yesterday because today I had a demo. But atleast I can finally present this. Thank you soo much for you advice, I am literally weeping :'-)
2022-07-29 02:03:44 +0200mvk(~mvk@2607:fea8:5ce3:8500::311d)
2022-07-29 02:05:20 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
2022-07-29 02:05:36 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 02:05:57 +0200jinsun__(~jinsun@user/jinsun)
2022-07-29 02:05:57 +0200jinsunGuest123
2022-07-29 02:05:57 +0200jinsun__jinsun
2022-07-29 02:09:39 +0200Guest123(~jinsun@user/jinsun) (Ping timeout: 244 seconds)
2022-07-29 02:10:02 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-07-29 02:12:47 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-29 02:12:50 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
2022-07-29 02:15:45 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Ping timeout (120 seconds))
2022-07-29 02:17:56 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 02:18:58 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
2022-07-29 02:19:06 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-07-29 02:20:02 +0200dvdrw(~dvdrw@user/dvdrw) (Ping timeout: 245 seconds)
2022-07-29 02:22:03 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 02:22:44 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-07-29 02:24:10 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-07-29 02:24:38 +0200slack1256(~slack1256@191.126.99.71) (Remote host closed the connection)
2022-07-29 02:26:02 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 02:26:39 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-07-29 02:28:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-29 02:29:20 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-07-29 02:30:38 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 02:34:38 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-07-29 02:35:06 +0200k8yun__(~k8yun@user/k8yun)
2022-07-29 02:35:12 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2022-07-29 02:37:32 +0200qhong(~qhong@rescomp-21-400677.stanford.edu) (Read error: Connection reset by peer)
2022-07-29 02:37:38 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-07-29 02:37:41 +0200qhong(~qhong@rescomp-21-400677.stanford.edu)
2022-07-29 02:39:39 +0200k8yun__(~k8yun@user/k8yun) (Ping timeout: 268 seconds)
2022-07-29 02:39:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-29 02:40:41 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-07-29 02:43:07 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net)
2022-07-29 02:45:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2022-07-29 02:46:36 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-07-29 02:47:08 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
2022-07-29 02:50:17 +0200 <albet70> joinCont :: ((a->b) -> (a->b)->c) -> (a->b)->c, is that joinCont == const?
2022-07-29 02:51:05 +0200 <Axman6> :t const `asTypeOf` (undefined :: ((a->b) -> (a->b)->c) -> (a->b)->c)
2022-07-29 02:51:07 +0200 <lambdabot> error:
2022-07-29 02:51:07 +0200 <lambdabot> • Occurs check: cannot construct the infinite type:
2022-07-29 02:51:07 +0200 <lambdabot> c ~ (a -> b) -> (a -> b) -> c
2022-07-29 02:51:40 +0200 <Axman6> making it const seems like it would be pretty useless
2022-07-29 02:52:10 +0200 <Axman6> try to write joinCont f k = ??? using both f and k
2022-07-29 02:53:25 +0200 <albet70> I don't know how...
2022-07-29 02:53:35 +0200 <albet70> :t const
2022-07-29 02:53:36 +0200 <lambdabot> a -> b -> a
2022-07-29 02:53:49 +0200 <Axman6> what is the type of f?
2022-07-29 02:54:36 +0200 <albet70> f :: a->b; k :: (a->b)->c
2022-07-29 02:54:54 +0200 <Axman6> no
2022-07-29 02:55:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 02:55:11 +0200 <Axman6> look at the type again, and pay attention to the brackets
2022-07-29 02:56:12 +0200 <albet70> f :: ((a->b) -> (a->b)->c); k:: a->b
2022-07-29 02:56:20 +0200 <Axman6> correct
2022-07-29 02:56:39 +0200 <Axman6> so, what is the type of the (first) argument to f? do you have something of that type?
2022-07-29 02:57:08 +0200 <albet70> joinCont f k = f k k?
2022-07-29 02:57:16 +0200 <Axman6> does that type check?
2022-07-29 02:57:57 +0200 <Axman6> :t let joinCont :: ((a->b) -> (a->b)->c) -> (a->b)->c; joinCont f k = f k k in joinCont
2022-07-29 02:57:58 +0200 <lambdabot> ((a -> b) -> (a -> b) -> c) -> (a -> b) -> c
2022-07-29 02:58:04 +0200 <Axman6> looks pretty good to me
2022-07-29 02:58:09 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds)
2022-07-29 02:59:36 +0200 <albet70> @djinn ((a -> b) -> (a -> b) -> c) -> (a -> b) -> c
2022-07-29 02:59:36 +0200 <lambdabot> f a b = a b b
2022-07-29 03:00:13 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 272 seconds)
2022-07-29 03:00:23 +0200 <Axman6> :t join @((->) a)
2022-07-29 03:00:25 +0200 <lambdabot> error: parse error on input ‘->’
2022-07-29 03:00:29 +0200 <Axman6> % :t join @((->) a)
2022-07-29 03:00:34 +0200 <Axman6> % :t join @((->) Int)
2022-07-29 03:00:34 +0200 <yahb2> <interactive>:1:1: error: Variable not in scope: join
2022-07-29 03:00:44 +0200Axman6glares
2022-07-29 03:05:33 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-07-29 03:07:03 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-29 03:07:03 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 03:07:03 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-29 03:07:03 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-07-29 03:07:03 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-07-29 03:07:03 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-07-29 03:07:04 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-07-29 03:07:40 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 03:07:51 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-07-29 03:07:52 +0200noteness(~noteness@user/noteness)
2022-07-29 03:07:54 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-29 03:07:54 +0200califax(~califax@user/califx)
2022-07-29 03:08:08 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-29 03:08:12 +0200gmg(~user@user/gehmehgeh)
2022-07-29 03:08:48 +0200 <albet70> join : (w -> (w -> a)) -> w -> a
2022-07-29 03:09:15 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-07-29 03:09:26 +0200 <Axman6> if you look closely, you should see those are the same function,. but joinCont has a slightly more specific type, where w ~ a -> b
2022-07-29 03:10:25 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-07-29 03:10:50 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-29 03:11:06 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-07-29 03:13:47 +0200xff0x(~xff0x@ae129043.dynamic.ppp.asahi-net.or.jp) (Ping timeout: 245 seconds)
2022-07-29 03:14:37 +0200 <hasbae> I'm exploring the ghc source repo, and trying to find the file(s) that contain the code for readFile https://hackage.haskell.org/package/base-4.16.3.0/docs/src/System.IO.html#readFile. I've got the latest commit fc23b5ed0f7924308040bf4163fc0a6da176feed from https://gitlab.haskell.org/ghc/ghc.git, but I can't find where readFile is defined.
2022-07-29 03:14:54 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
2022-07-29 03:14:59 +0200nerdypepper(~nerdypepp@user/nerdypepper) (Quit: bye)
2022-07-29 03:15:31 +0200 <hasbae> am i looking in the right place?
2022-07-29 03:16:14 +0200nerdypepper(~nerdypepp@user/nerdypepper)
2022-07-29 03:17:14 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-07-29 03:21:30 +0200jinsun__(~jinsun@user/jinsun)
2022-07-29 03:21:30 +0200jinsunGuest9702
2022-07-29 03:21:30 +0200jinsun__jinsun
2022-07-29 03:23:29 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 03:23:50 +0200naso(~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
2022-07-29 03:24:03 +0200Guest9702(~jinsun@user/jinsun) (Ping timeout: 244 seconds)
2022-07-29 03:24:40 +0200naso(~naso@193-116-244-197.tpgi.com.au)
2022-07-29 03:24:45 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
2022-07-29 03:25:16 +0200 <albet70> > join (*) fmap [1..6]
2022-07-29 03:25:18 +0200 <lambdabot> error:
2022-07-29 03:25:18 +0200 <lambdabot> • Couldn't match type ‘[a0]’ with ‘a -> b’
2022-07-29 03:25:18 +0200 <lambdabot> Expected type: ((a -> b) -> f a -> f b) -> [a0] -> f a -> f b
2022-07-29 03:25:57 +0200 <albet70> > join fmap (*) [1..6]
2022-07-29 03:25:59 +0200 <lambdabot> error:
2022-07-29 03:25:59 +0200 <lambdabot> • Couldn't match type ‘[a]’ with ‘[a] -> [a]’
2022-07-29 03:25:59 +0200 <lambdabot> Expected type: ([a] -> [a] -> [a]) -> [a] -> [a]
2022-07-29 03:26:01 +0200 <byorgey> hasbae: I think there is a separate repo for the base package somewhere
2022-07-29 03:26:25 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 03:26:41 +0200 <byorgey> oh, never mind, https://hackage.haskell.org/package/base suggests it is in that repo under libraries/base
2022-07-29 03:26:49 +0200califax(~califax@user/califx)
2022-07-29 03:27:24 +0200 <byorgey> hasbae: https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/base/System/IO.hs#L340
2022-07-29 03:27:43 +0200 <albet70> what's the scenario join used for?
2022-07-29 03:27:45 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-07-29 03:29:12 +0200naso(~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 245 seconds)
2022-07-29 03:29:31 +0200dknite(~dknite@49.37.45.188) (Read error: Connection reset by peer)
2022-07-29 03:29:44 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-29 03:30:00 +0200naso(~naso@193-116-244-197.tpgi.com.au)
2022-07-29 03:30:41 +0200 <hasbae> byorgey: now i've found it, thanks!
2022-07-29 03:32:27 +0200dknite(~dknite@223.191.52.173)
2022-07-29 03:32:50 +0200 <byorgey> happy to help!
2022-07-29 03:33:36 +0200 <albet70> > join (fmap (+)) [1..6]
2022-07-29 03:33:38 +0200 <lambdabot> error:
2022-07-29 03:33:38 +0200 <lambdabot> • Couldn't match type ‘[a0]’ with ‘[a0] -> a’
2022-07-29 03:33:38 +0200 <lambdabot> Expected type: [a0] -> [a0] -> a -> a
2022-07-29 03:34:37 +0200 <Haskelytic> albet70: what are you trying to do?
2022-07-29 03:35:05 +0200k8yun__(~k8yun@user/k8yun)
2022-07-29 03:35:10 +0200 <albet70> I'd like to which scenario join would use for
2022-07-29 03:35:30 +0200 <albet70> please help
2022-07-29 03:35:45 +0200 <Axman6> > join ["hello",", world!"
2022-07-29 03:35:47 +0200 <lambdabot> <hint>:1:25: error:
2022-07-29 03:35:47 +0200 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
2022-07-29 03:35:47 +0200 <hasbae> when there's an import like "import Data.ByteString.Lazy", does the name with the dots between it correspond to some directory path like <some dir>/Data/ByteString/Lazy?
2022-07-29 03:35:52 +0200 <Axman6> > join (+) 7
2022-07-29 03:35:54 +0200 <lambdabot> 14
2022-07-29 03:35:57 +0200 <Axman6> > join ["hello",", world!']
2022-07-29 03:35:59 +0200 <lambdabot> <hint>:1:26: error:
2022-07-29 03:35:59 +0200 <lambdabot> lexical error in string/character literal at end of input
2022-07-29 03:36:03 +0200 <Axman6> > join ["hello",", world!"]
2022-07-29 03:36:05 +0200 <lambdabot> "hello, world!"
2022-07-29 03:36:05 +0200k8yun__(~k8yun@user/k8yun) (Remote host closed the connection)
2022-07-29 03:36:10 +0200 <Haskelytic> :t join
2022-07-29 03:36:11 +0200 <lambdabot> Monad m => m (m a) -> m a
2022-07-29 03:36:17 +0200 <Axman6> > join (Just (Just 7))
2022-07-29 03:36:19 +0200 <lambdabot> Just 7
2022-07-29 03:36:24 +0200 <Axman6> > join (Just Nothing)
2022-07-29 03:36:26 +0200 <lambdabot> Nothing
2022-07-29 03:36:42 +0200 <Haskelytic> join combines monadic contexts
2022-07-29 03:36:54 +0200 <Haskelytic> `m (m a)` goes to `m a`
2022-07-29 03:37:13 +0200 <Haskelytic> so for list it takes `[[a]]` to `[a]
2022-07-29 03:37:32 +0200king_gs(~Thunderbi@2806:103e:29:a1b3:d33d:90f:3255:af90)
2022-07-29 03:37:33 +0200 <Haskelytic> i.e. concatentation
2022-07-29 03:37:56 +0200 <Haskelytic> for `Maybe` it takes `Maybe (Maybe a)` to `Maybe a`
2022-07-29 03:38:14 +0200 <Axman6> for functions, it takes a -> a -> b to a -> b
2022-07-29 03:38:34 +0200 <jackdk> hasbae: `Data/ByteString/Lazy.hs`. If you want the ancient source: http://web.archive.org/web/20100703071858/http://www.haskell.org/hierarchical-modules/hier.pdf
2022-07-29 03:39:18 +0200 <albet70> > join (*) <$> [1..6]
2022-07-29 03:39:19 +0200 <lambdabot> [1,4,9,16,25,36]
2022-07-29 03:40:28 +0200 <albet70> join (*) <$> x == join ((*) <$>) x?
2022-07-29 03:40:40 +0200lys(~lys@user/lys)
2022-07-29 03:40:56 +0200 <albet70> i don't understand the syntax here
2022-07-29 03:41:05 +0200 <hasbae> jackdk: are you implying that it's deprecated, ie no longer part of Base?
2022-07-29 03:41:18 +0200 <Haskelytic> @albet
2022-07-29 03:41:18 +0200 <lambdabot> Maybe you meant: let leet
2022-07-29 03:41:25 +0200 <hasbae> as in why do I need to look at ancient source to find it
2022-07-29 03:41:26 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 03:41:38 +0200 <Haskelytic> albet70: the first one creates a squaring function basically
2022-07-29 03:41:43 +0200 <Haskelytic> :t (*)
2022-07-29 03:41:44 +0200 <lambdabot> Num a => a -> a -> a
2022-07-29 03:41:47 +0200 <Haskelytic> :t join (*)
2022-07-29 03:41:48 +0200 <lambdabot> Num a => a -> a
2022-07-29 03:42:04 +0200 <Haskelytic> the monad here is `(->) a`
2022-07-29 03:42:39 +0200 <Haskelytic> so `(*)` can be seen as `(->) a ( (->) a a )`
2022-07-29 03:43:06 +0200 <Haskelytic> running `join (*)` collapses the monad `m = (->) a` part
2022-07-29 03:44:45 +0200 <hasbae> if so, that's a good explanation for why I can't find it in the current repo. Possibly a hidden danger of reading blog posts from 2014
2022-07-29 03:45:15 +0200 <jackdk> hasbae: It's been this way for so long (e.g., GHC5) that nobody keeps the spec around anymore except wayback, apparently
2022-07-29 03:45:18 +0200 <Axman6> base IIRC has been split into several smaller packages these days
2022-07-29 03:45:39 +0200 <jackdk> to be clear, this is the layout that we still use.
2022-07-29 03:46:25 +0200 <albet70> join (*) <$> x == ( join (*)) <$> x == liftM2 (*) x x?
2022-07-29 03:47:29 +0200cirilla(sid194105@user/lys)
2022-07-29 03:47:44 +0200king_gs(~Thunderbi@2806:103e:29:a1b3:d33d:90f:3255:af90) (Quit: king_gs)
2022-07-29 03:50:17 +0200 <hasbae> > import Data.ByteString.Lazy
2022-07-29 03:50:19 +0200 <lambdabot> <hint>:1:1: error: parse error on input ‘import’
2022-07-29 03:50:25 +0200 <hasbae> import Data.ByteString.Lazy
2022-07-29 03:50:31 +0200 <hasbae> :i readFile
2022-07-29 03:52:52 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 03:53:13 +0200califax(~califax@user/califx)
2022-07-29 03:53:32 +0200 <Haskelytic> albet70: `liftM2 (*) x x` lifts `(*)` into the list `[]` monad, so you don't get the same behavior as `join (*) <$> x`, which is using the function monad
2022-07-29 03:53:49 +0200 <hasbae> I don't understand how readFile is defined in System.IO, yet I can import it with Data.ByteString.Lazy
2022-07-29 03:54:30 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-07-29 03:55:37 +0200 <jackdk> because there's also a readFile defined in that module.
2022-07-29 03:56:54 +0200 <hasbae> ok, different readFiles
2022-07-29 03:57:19 +0200 <hasbae> where is the module Data.ByteString.Lazy defined?
2022-07-29 03:58:53 +0200 <hasbae> is it not part of Base, and that's why I don't see it in the Base repo?
2022-07-29 03:59:42 +0200 <hasbae> must be it, it has its own repo https://github.com/haskell/bytestring
2022-07-29 04:00:13 +0200dcoutts__(~duncan@host86-150-41-142.range86-150.btcentralplus.com) (Remote host closed the connection)
2022-07-29 04:00:21 +0200dcoutts(~duncan@host86-150-41-142.range86-150.btcentralplus.com) (Remote host closed the connection)
2022-07-29 04:00:37 +0200dcoutts__(~duncan@host86-150-41-142.range86-150.btcentralplus.com)
2022-07-29 04:00:43 +0200dcoutts(~duncan@host86-150-41-142.range86-150.btcentralplus.com)
2022-07-29 04:01:43 +0200 <hasbae> note to self: next time just read the hackage page
2022-07-29 04:01:45 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
2022-07-29 04:02:58 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 04:03:26 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-07-29 04:05:17 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net)
2022-07-29 04:06:35 +0200enemeth79(uid309041@id-309041.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-29 04:07:21 +0200enemeth79(uid309041@id-309041.lymington.irccloud.com)
2022-07-29 04:07:30 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-07-29 04:08:27 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2022-07-29 04:12:59 +0200gurkenglas(~gurkengla@p548ac71b.dip0.t-ipconnect.de)
2022-07-29 04:13:33 +0200naso(~naso@193-116-244-197.tpgi.com.au) ()
2022-07-29 04:14:49 +0200[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-07-29 04:16:27 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 252 seconds)
2022-07-29 04:17:51 +0200lys(~lys@user/lys) (Ping timeout: 276 seconds)
2022-07-29 04:21:56 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 04:23:32 +0200califax(~califax@user/califx)
2022-07-29 04:23:33 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-07-29 04:23:33 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-07-29 04:23:33 +0200finn_elijaFinnElija
2022-07-29 04:28:21 +0200_xor(~xor@74.215.182.83)
2022-07-29 04:33:07 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-07-29 04:34:18 +0200alp_(~alp@user/alp) (Ping timeout: 244 seconds)
2022-07-29 04:35:54 +0200zaquest(~notzaques@5.130.79.72)
2022-07-29 04:37:36 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 04:38:00 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net)
2022-07-29 04:43:37 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 04:46:17 +0200td_(~td@muedsl-82-207-238-045.citykom.de) (Ping timeout: 245 seconds)
2022-07-29 04:46:53 +0200gurkenglas(~gurkengla@p548ac71b.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-07-29 04:48:06 +0200td_(~td@muedsl-82-207-238-203.citykom.de)
2022-07-29 04:48:30 +0200hasbae(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (WeeChat 3.5)
2022-07-29 04:50:55 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
2022-07-29 04:51:04 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 04:52:10 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-07-29 04:52:10 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-07-29 04:52:10 +0200wroathe(~wroathe@user/wroathe)
2022-07-29 04:52:19 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2022-07-29 04:53:19 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-29 04:57:51 +0200 <albet70> I see, join (*) == \x -> (*) x x
2022-07-29 04:58:43 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 04:58:47 +0200 <albet70> join (*) <$> xs == fmap (\x -> (*) x x) xs
2022-07-29 05:00:27 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-07-29 05:07:03 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 252 seconds)
2022-07-29 05:07:07 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2022-07-29 05:09:10 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net)
2022-07-29 05:11:19 +0200 <Haskelytic> yep
2022-07-29 05:11:59 +0200 <albet70> @djinn ((_1 -> _2) -> a) -> (a -> (_1 -> _2) -> b) -> (_1 -> _2) -> b
2022-07-29 05:12:00 +0200 <lambdabot> Cannot parse command
2022-07-29 05:12:03 +0200 <Haskelytic> it's easier to see why `join (*)` gives you a squaring function if you understand the `(->) a` monad
2022-07-29 05:12:43 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 05:12:50 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 05:12:57 +0200yin(~yin@user/zero) (Ping timeout: 245 seconds)
2022-07-29 05:14:05 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 05:14:37 +0200yin(~yin@user/zero)
2022-07-29 05:14:57 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 05:23:59 +0200Vajb(~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2022-07-29 05:24:44 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-07-29 05:28:22 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-07-29 05:30:06 +0200 <albet70> that (->) _ is Reader, (->) (_ -> _) is Cont, so I wonder is that all monads can be expressed by (->) form?
2022-07-29 05:32:56 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-07-29 05:37:17 +0200cirilla(sid194105@user/lys) ()
2022-07-29 05:42:39 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 05:42:53 +0200zebrag(~chris@user/zebrag) (Read error: Connection reset by peer)
2022-07-29 05:50:09 +0200jargon(~jargon@184.101.188.251) (Remote host closed the connection)
2022-07-29 05:50:47 +0200mvk(~mvk@2607:fea8:5ce3:8500::311d) (Ping timeout: 244 seconds)
2022-07-29 05:52:14 +0200 <qrpnxz> type NotCont a = (? -> ?) -> a
2022-07-29 05:52:34 +0200 <qrpnxz> type Cont r a = (a -> r) -> r
2022-07-29 05:58:44 +0200yin(~yin@user/zero) (Quit: Lost terminal)
2022-07-29 06:02:57 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-07-29 06:03:38 +0200Vajb(~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi)
2022-07-29 06:04:23 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-29 06:06:20 +0200 <Axman6> albet70: http://blog.sigfpe.com/2008/12/mother-of-all-monads.html?m=0
2022-07-29 06:07:57 +0200mvk(~mvk@2607:fea8:5ce3:8500::311d)
2022-07-29 06:08:10 +0200califax(~califax@user/califx) (Ping timeout: 268 seconds)
2022-07-29 06:08:43 +0200califax(~califax@user/califx)
2022-07-29 06:16:35 +0200enemeth79(uid309041@id-309041.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-29 06:28:40 +0200irfan(~irfan@user/irfan)
2022-07-29 06:33:34 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 06:35:12 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net)
2022-07-29 06:40:48 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 06:41:33 +0200califax(~califax@user/califx)
2022-07-29 06:45:02 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-29 06:48:10 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-07-29 06:51:55 +0200mncheck-m(~mncheck@193.224.205.254) (Read error: Connection reset by peer)
2022-07-29 06:51:58 +0200Haskelytic(~Haskelyti@118.179.211.17) (Ping timeout: 252 seconds)
2022-07-29 06:52:39 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 252 seconds)
2022-07-29 06:55:34 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds)
2022-07-29 06:57:16 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 07:01:11 +0200Gambino(~textual@user/polo)
2022-07-29 07:01:41 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-29 07:04:13 +0200raym(~raym@user/raym)
2022-07-29 07:07:07 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2022-07-29 07:09:23 +0200cyphase(~cyphase@user/cyphase)
2022-07-29 07:15:20 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 07:16:43 +0200Gambino(~textual@user/polo) (Ping timeout: 272 seconds)
2022-07-29 07:18:38 +0200yin(~yin@user/zero)
2022-07-29 07:20:31 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-07-29 07:22:10 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
2022-07-29 07:24:34 +0200 <Haskelytic> `type ReaderT r m a = r -> m a` whereas `type MaybeT m a = m (Maybe a)`
2022-07-29 07:25:49 +0200 <Haskelytic> interesting that ReaderT composes `(->) r` after `m`
2022-07-29 07:26:15 +0200 <Haskelytic> but MaybeT composes `m` after `Maybe`
2022-07-29 07:26:32 +0200bilegeek(~bilegeek@2600:1008:b009:a40a:238d:fd4d:a133:b04d) (Quit: Leaving)
2022-07-29 07:29:55 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-29 07:30:43 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-29 07:32:19 +0200gmg(~user@user/gehmehgeh)
2022-07-29 07:35:13 +0200inversed(~inversed@90.209.137.56)
2022-07-29 07:35:47 +0200Guest3_(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 07:36:28 +0200jese(~nikola@178-221-253-164.dynamic.isp.telekom.rs)
2022-07-29 07:38:34 +0200 <jese> i have a wrapper function around a C function, and where the C function accepts const char* the wrapper accepts String. how can i pass NULL to this function through wrapper?
2022-07-29 07:39:09 +0200 <c_wraith> You can't.
2022-07-29 07:39:16 +0200 <c_wraith> You'd need a different wrapper.
2022-07-29 07:40:21 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-29 07:42:53 +0200Guest3_(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-07-29 07:44:38 +0200MajorBiscuit(~MajorBisc@c-001-028-058.client.tudelft.eduvpn.nl)
2022-07-29 07:55:23 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net)
2022-07-29 07:56:03 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 07:56:34 +0200califax(~califax@user/califx)
2022-07-29 08:03:20 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 08:04:04 +0200califax(~califax@user/califx)
2022-07-29 08:04:39 +0200 <Christoph[m]> <c_wraith> "You'd need a different wrapper." <- Like a wrapper that takes a `Maybe String` and translates `Nothing` into `NULL`?
2022-07-29 08:04:56 +0200 <c_wraith> that would be one approach, yes
2022-07-29 08:06:46 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-07-29 08:07:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-29 08:09:08 +0200mbuf(~Shakthi@122.165.55.71)
2022-07-29 08:09:42 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-29 08:09:43 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-07-29 08:10:04 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-29 08:10:52 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-07-29 08:11:45 +0200benin0(~benin@183.82.26.87)
2022-07-29 08:17:31 +0200michalz(~michalz@185.246.204.75)
2022-07-29 08:19:37 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-07-29 08:21:31 +0200Tuplanolla(~Tuplanoll@91-159-68-204.elisa-laajakaista.fi)
2022-07-29 08:21:48 +0200Haskelytic(~Haskelyti@118.179.211.17) (Ping timeout: 252 seconds)
2022-07-29 08:25:52 +0200chomwitt(~chomwitt@2a02:587:dc00:5a00:ef54:f708:6c70:62e3)
2022-07-29 08:30:11 +0200mvk(~mvk@2607:fea8:5ce3:8500::311d) (Ping timeout: 272 seconds)
2022-07-29 08:31:52 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 08:32:12 +0200acidjnk(~acidjnk@p200300d6e70586975cbe70e1c6972498.dip0.t-ipconnect.de)
2022-07-29 08:36:10 +0200alternateved(~user@staticline-31-183-144-54.toya.net.pl)
2022-07-29 08:36:37 +0200yvan-sraka(uid419690@id-419690.lymington.irccloud.com)
2022-07-29 08:38:56 +0200gurkenglas(~gurkengla@84.138.199.27)
2022-07-29 08:45:31 +0200tcard(~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2022-07-29 08:45:58 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net)
2022-07-29 08:48:41 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 08:50:37 +0200tcard(~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp)
2022-07-29 08:53:40 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 08:53:52 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:a442:f89a:164c:a1c)
2022-07-29 08:54:33 +0200sandydoo(~sandydoo@185.209.196.136)
2022-07-29 08:54:35 +0200 <jackdk> This might have been lost in a scrollback, but is there a settled state-of-the-art binary serialisation library? I am interesting in parsing and tinkering with old game file formats
2022-07-29 08:54:59 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-07-29 08:55:09 +0200joo-_(~joo-_@fsf/member/joo--) (Quit: leaving)
2022-07-29 08:57:03 +0200lemonsni-(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds)
2022-07-29 08:57:32 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds)
2022-07-29 08:58:28 +0200Guest3_(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 08:58:47 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
2022-07-29 08:58:53 +0200 <Axman6> binary gets you long way, cereal also exists
2022-07-29 08:59:15 +0200 <jackdk> I am aware of the existence of both, how do I choose between them?
2022-07-29 08:59:33 +0200 <Axman6> IIRC the main difference was strict vs lazy for the bytestrings
2022-07-29 08:59:39 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.5)
2022-07-29 08:59:54 +0200 <Axman6> cborg/serialise did its own thing IIRC
2022-07-29 09:00:15 +0200eod|fserucas_(~eod|fseru@83.223.227.100)
2022-07-29 09:05:28 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2022-07-29 09:09:21 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 09:10:10 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 09:13:16 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-07-29 09:13:47 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2022-07-29 09:14:04 +0200chele(~chele@user/chele)
2022-07-29 09:20:25 +0200dknite(~dknite@223.191.52.173) (Read error: Connection reset by peer)
2022-07-29 09:20:30 +0200acidjnk(~acidjnk@p200300d6e70586975cbe70e1c6972498.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-07-29 09:21:03 +0200dknite(~dknite@203.110.242.103)
2022-07-29 09:23:59 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 09:25:11 +0200dknite(~dknite@203.110.242.103) (Ping timeout: 252 seconds)
2022-07-29 09:25:43 +0200dknite(~dknite@223.191.52.173)
2022-07-29 09:28:59 +0200acidjnk(~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de)
2022-07-29 09:29:08 +0200Guest3_(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-07-29 09:29:10 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
2022-07-29 09:31:39 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 09:34:43 +0200sandydoo(~sandydoo@185.209.196.136) (Ping timeout: 252 seconds)
2022-07-29 09:36:02 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-29 09:38:25 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-07-29 09:38:46 +0200zmt00(~zmt00@user/zmt00) (Read error: Connection reset by peer)
2022-07-29 09:39:28 +0200sandydoo(~sandydoo@185.209.196.136)
2022-07-29 09:39:33 +0200ccntrq(~Thunderbi@exit-3.office.han.de.mhd.medondo.com)
2022-07-29 09:39:47 +0200zmt00(~zmt00@user/zmt00)
2022-07-29 09:41:27 +0200eod|fserucas__(~eod|fseru@83.223.227.100)
2022-07-29 09:41:36 +0200JannisO(~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de)
2022-07-29 09:43:47 +0200eod|fserucas_(~eod|fseru@83.223.227.100) (Ping timeout: 245 seconds)
2022-07-29 09:43:53 +0200eod|fserucas(~eod|fseru@83.223.227.100) (Ping timeout: 252 seconds)
2022-07-29 09:44:19 +0200eod|fserucas(~eod|fseru@83.223.227.100)
2022-07-29 09:44:54 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 09:48:08 +0200jese(~nikola@178-221-253-164.dynamic.isp.telekom.rs) (Quit: leaving)
2022-07-29 09:50:27 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 09:52:38 +0200nschoe(~quassel@178.251.84.79)
2022-07-29 09:54:09 +0200naso(~naso@193-116-244-197.tpgi.com.au)
2022-07-29 09:56:43 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
2022-07-29 09:58:47 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 10:00:08 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-07-29 10:00:42 +0200vpan(~0@212.117.1.172)
2022-07-29 10:01:48 +0200comerijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 10:04:53 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-07-29 10:06:16 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-07-29 10:09:00 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-07-29 10:21:19 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-29 10:21:40 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 10:23:31 +0200crazazy(~user@130.89.171.62)
2022-07-29 10:35:06 +0200dextaa(~DV@user/dextaa) (Ping timeout: 268 seconds)
2022-07-29 10:37:21 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection)
2022-07-29 10:37:42 +0200alp_(~alp@user/alp)
2022-07-29 10:37:59 +0200 <albet70> :t (>>=) @((->)_)
2022-07-29 10:38:00 +0200 <lambdabot> error: parse error on input ‘->’
2022-07-29 10:38:09 +0200gurkenglas(~gurkengla@84.138.199.27) (Ping timeout: 252 seconds)
2022-07-29 10:38:43 +0200 <albet70> (>>=) @((->)_) :: (_-> a)->(a -> _ -> b) _ -> b
2022-07-29 10:39:09 +0200 <albet70> (>>=) = \g -> \f -> \x -> f (g x) x
2022-07-29 10:40:34 +0200 <albet70> (>>=) @((->)(_->_)) :: ((_1 -> _2) -> a) -> (a -> (_1 -> _2) -> b) -> (_1 -> _2) -> b
2022-07-29 10:41:00 +0200 <albet70> (>>=) = \g -> \f -> k -> f (g k) k
2022-07-29 10:41:23 +0200 <albet70> why this Read and Cont are same?
2022-07-29 10:44:18 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-07-29 10:48:57 +0200 <int-e> :t They're both Read, there's only theo one Monad instance for (->) r
2022-07-29 10:48:58 +0200 <lambdabot> error: parse error on input ‘,’
2022-07-29 10:49:01 +0200 <int-e> Err.
2022-07-29 10:50:58 +0200 <tomsmeding> newtype Cont r a = Cont ((a -> r) -> r)
2022-07-29 10:51:59 +0200 <tomsmeding> So (>>=) on Cont r a would have the following type, if we unwrap the newtype: ((a -> r) -> r) -> (a -> (b -> r) -> r) -> (b -> r) -> r
2022-07-29 10:52:21 +0200 <tomsmeding> @djinn ((a -> r) -> r) -> (a -> (b -> r) -> r) -> (b -> r) -> r
2022-07-29 10:52:21 +0200 <lambdabot> f a b c = a (\ d -> b d c)
2022-07-29 10:52:34 +0200ubert(~Thunderbi@178.115.57.195.wireless.dyn.drei.com)
2022-07-29 10:52:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 10:52:46 +0200 <tomsmeding> @djinn (r -> a) -> (a -> r -> b) -> r -> b -- reader
2022-07-29 10:52:46 +0200 <lambdabot> Cannot parse command
2022-07-29 10:52:58 +0200 <tomsmeding> @djinn (r -> a) -> (a -> r -> b) -> r -> b
2022-07-29 10:52:58 +0200 <lambdabot> f a b c = b (a c) c
2022-07-29 10:53:06 +0200 <tomsmeding> Quite different :)
2022-07-29 10:53:14 +0200 <tomsmeding> albet70: ^
2022-07-29 10:53:51 +0200 <int-e> :t \f g cont -> f (\x -> g x cont) -- those names are a bit better
2022-07-29 10:53:52 +0200 <lambdabot> ((t1 -> t2) -> t3) -> (t1 -> t4 -> t2) -> t4 -> t3
2022-07-29 10:54:15 +0200 <int-e> (The type really doesn't help though because it's too general)
2022-07-29 10:54:34 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 10:55:22 +0200 <tomsmeding> "do f, then (in its continuation) do g x, then (in its continuation) do the remainer of the computation"
2022-07-29 10:56:27 +0200naso(~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection)
2022-07-29 10:56:30 +0200 <int-e> Anyway, the Cont newtype wrapper isn't just for show, it's required to select a different Monad instance.
2022-07-29 10:57:12 +0200__monty__(~toonn@user/toonn)
2022-07-29 10:57:17 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net)
2022-07-29 10:59:46 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 11:00:10 +0200steshaw[m](~steshawma@2001:470:69fc:105::1:a963) (Quit: You have been kicked for being idle)
2022-07-29 11:00:11 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e) (Quit: You have been kicked for being idle)
2022-07-29 11:00:25 +0200ollenurb[m](~ollenurbm@2001:470:69fc:105::2:39d2) (Quit: You have been kicked for being idle)
2022-07-29 11:01:25 +0200naso(~naso@193-116-244-197.tpgi.com.au)
2022-07-29 11:01:30 +0200cirilla(sid194105@user/lys)
2022-07-29 11:02:14 +0200JannisO(~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 268 seconds)
2022-07-29 11:04:55 +0200Guest3(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Ping timeout: 252 seconds)
2022-07-29 11:07:52 +0200califax(~califax@user/califx) (Ping timeout: 268 seconds)
2022-07-29 11:08:30 +0200califax(~califax@user/califx)
2022-07-29 11:09:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-07-29 11:10:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-07-29 11:10:06 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-29 11:10:06 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-07-29 11:10:06 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-07-29 11:10:38 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-29 11:10:44 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-29 11:10:52 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-07-29 11:11:05 +0200gmg(~user@user/gehmehgeh)
2022-07-29 11:11:21 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-29 11:13:39 +0200alternateved(~user@staticline-31-183-144-54.toya.net.pl) (Quit: Fading out...)
2022-07-29 11:13:41 +0200dknite(~dknite@223.191.52.173) (Read error: Connection reset by peer)
2022-07-29 11:15:06 +0200dknite(~dknite@223.191.52.173)
2022-07-29 11:17:18 +0200dknite(~dknite@223.191.52.173) (Read error: Connection reset by peer)
2022-07-29 11:18:16 +0200Simon59(~Simon@2a02:810d:1540:5e75:e45f:ea67:bf35:add9)
2022-07-29 11:19:10 +0200dknite(~dknite@223.191.52.173)
2022-07-29 11:21:25 +0200 <Simon59> Dear lovely people. I'm trying to understand when we can use foldl und foldr equally and when not.
2022-07-29 11:21:25 +0200 <Simon59> I know that foldl does not work with endless lists.
2022-07-29 11:21:26 +0200 <Simon59> 1) Why can we instantiate Foldable with BB a and foldlBB here?
2022-07-29 11:21:26 +0200 <Simon59> 2) And why can we implement reverse also with foldl (even though it could be given an endless list?
2022-07-29 11:21:27 +0200 <Simon59> 3) How would the implementation with foldl instead look like?
2022-07-29 11:21:27 +0200 <Simon59> https://paste.tomsmeding.com/KviiLese
2022-07-29 11:23:01 +0200 <comerijn> Simon59: Generally whenever you want foldl, you really want foldl' (i.e. strict foldl)
2022-07-29 11:23:04 +0200 <[exa]> BB is a binary tree right?
2022-07-29 11:23:20 +0200 <Simon59> Yes
2022-07-29 11:23:38 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 11:23:39 +0200 <comerijn> Simon59: But do you know *why* foldl does not work with endless lists?
2022-07-29 11:23:48 +0200comerijnmerijn
2022-07-29 11:23:48 +0200alternateved(~user@staticline-31-183-144-54.toya.net.pl)
2022-07-29 11:24:12 +0200 <Simon59> comerijn I see, however we were not really dealing with foldl' in university.
2022-07-29 11:24:13 +0200 <Simon59> Because it would just fold endlessly?
2022-07-29 11:24:18 +0200 <merijn> > foldr f z [a,b,c]
2022-07-29 11:24:20 +0200 <lambdabot> f a (f b (f c z))
2022-07-29 11:24:23 +0200 <[exa]> Simon59: in that case the difference between foldr and foldl is basically none (the tree can be infinite to the left just as weel to the right)
2022-07-29 11:24:25 +0200 <merijn> > foldl f z [a,b,c]
2022-07-29 11:24:26 +0200 <lambdabot> f (f (f z a) b) c
2022-07-29 11:24:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection)
2022-07-29 11:25:01 +0200 <merijn> Simon59: Compare those two outputs and really ponder what it means in a context of lazy evaluation (i.e. when does/doesn't 'f' force its result, and how does that affect the traversal?)
2022-07-29 11:25:06 +0200 <Simon59> [exa]so why would foldl work then?
2022-07-29 11:26:01 +0200 <[exa]> Simon59: a typical list would be isomorphic to a BB that only has the "right" branches. You can see there that foldl can still break because it tries to reach that right branch, but foldr can process the root and decide to quit.
2022-07-29 11:26:43 +0200 <[exa]> Simon59: you can make a helper function: flipBB L=L; flipBB K l x r = K (flipBB r) x (flipBB r)
2022-07-29 11:27:03 +0200 <[exa]> foldr and foldl on your BB tree are the same if you flip the BB via this
2022-07-29 11:27:50 +0200 <[exa]> (whoops there's a typo in the definition, last 'r' should be 'l')
2022-07-29 11:27:58 +0200 <[exa]> (but I hope the intuition there is clear)
2022-07-29 11:28:05 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-29 11:28:07 +0200 <Simon59> Yes
2022-07-29 11:28:43 +0200coco(~coco@212-51-146-199.fiber7.init7.net)
2022-07-29 11:29:26 +0200 <Simon59> I'm also wondering about that one.
2022-07-29 11:29:26 +0200 <Simon59> Prof says here that there cannot be an instance of Foldable exclusively with foldlBB. Why?
2022-07-29 11:29:27 +0200 <Simon59> https://paste.tomsmeding.com/DHNTZNVc
2022-07-29 11:29:45 +0200 <Simon59> (Ah, it's just the same one)
2022-07-29 11:30:02 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 245 seconds)
2022-07-29 11:31:02 +0200 <Simon59> I mean, what else is missing that I can instantiate Foldable?
2022-07-29 11:31:03 +0200 <Simon59> Wouldn't ist just be:
2022-07-29 11:31:03 +0200 <Simon59> instance Foldable BB where
2022-07-29 11:31:04 +0200 <Simon59> foldr = foldlBB?
2022-07-29 11:31:11 +0200 <[exa]> what does "exclusively with foldlBB" mean?
2022-07-29 11:32:19 +0200 <Simon59> These were pretty much the words he used:  Is it possible to create a Haskell type of type class Foldable from type BB using only the function foldlBB?
2022-07-29 11:32:19 +0200 <Simon59> type of the type class Foldable?
2022-07-29 11:32:21 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-07-29 11:33:10 +0200 <Simon59> And the answer is apprently: no
2022-07-29 11:33:25 +0200 <[exa]> ah so, good question. I'd say no but you probably want some kind of proof/counter-example right?
2022-07-29 11:34:26 +0200 <[exa]> can you make a BB where foldlBB fails but `foldr` from Foldable should work?
2022-07-29 11:35:53 +0200dknite(~dknite@223.191.52.173) (Read error: Connection reset by peer)
2022-07-29 11:36:19 +0200 <Simon59> Hmm
2022-07-29 11:36:27 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
2022-07-29 11:36:39 +0200dknite(~dknite@223.191.52.173)
2022-07-29 11:37:19 +0200 <Simon59> The thing that confuses me is that at one point he says it is possible but at another point he says it is NOT possible using ONLY foldlBB. Maybe I get the question wrong.
2022-07-29 11:37:20 +0200 <Simon59> It implies that to do it there is something else requiered. But what?
2022-07-29 11:37:39 +0200 <Simon59> Perhaps also there is a mistake in the solution, I don't know
2022-07-29 11:38:13 +0200 <[exa]> there might be some additional intuition here: https://wiki.haskell.org/Typeclassopedia#Foldable
2022-07-29 11:39:32 +0200 <Simon59> Thanks
2022-07-29 11:40:14 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen)
2022-07-29 11:40:48 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 11:41:04 +0200 <[exa]> the main intuition there is that with Foldable you should be able to implement `toList` and `toList` gives you a direct way to implement a Foldable. So you may reduce your problem to finding a tree where foldlBB can't be used to convert the tree to a list
2022-07-29 11:43:06 +0200naso(~naso@193-116-244-197.tpgi.com.au) ()
2022-07-29 11:44:12 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2022-07-29 11:44:28 +0200 <Simon59> Thanks [exa]!
2022-07-29 11:44:31 +0200Simon59(~Simon@2a02:810d:1540:5e75:e45f:ea67:bf35:add9) (Quit: Client closed)
2022-07-29 11:44:37 +0200crazazy(~user@130.89.171.62) (Ping timeout: 245 seconds)
2022-07-29 11:48:19 +0200JannisO(~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de)
2022-07-29 11:49:01 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-07-29 11:49:48 +0200noteness(~noteness@user/noteness) (Ping timeout: 268 seconds)
2022-07-29 11:50:16 +0200mncheck-m(~mncheck@193.224.205.254)
2022-07-29 11:50:33 +0200noteness(~noteness@user/noteness)
2022-07-29 11:52:59 +0200crazazy(~user@130.89.171.62)
2022-07-29 11:53:11 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-07-29 11:53:57 +0200gmg(~user@user/gehmehgeh)
2022-07-29 11:58:17 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-29 11:58:39 +0200noteness(~noteness@user/noteness)
2022-07-29 11:58:48 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-07-29 11:58:55 +0200JannisO(~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 260 seconds)
2022-07-29 12:06:53 +0200MajorBiscuit(~MajorBisc@c-001-028-058.client.tudelft.eduvpn.nl) (Ping timeout: 252 seconds)
2022-07-29 12:10:16 +0200odnes(~odnes@93-41-2-148.ip79.fastwebnet.it)
2022-07-29 12:13:55 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-07-29 12:15:19 +0200odnes(~odnes@93-41-2-148.ip79.fastwebnet.it) (Ping timeout: 252 seconds)
2022-07-29 12:16:45 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-07-29 12:17:38 +0200gmg(~user@user/gehmehgeh)
2022-07-29 12:19:28 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-29 12:19:28 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-07-29 12:19:55 +0200noteness(~noteness@user/noteness)
2022-07-29 12:20:22 +0200gmg(~user@user/gehmehgeh)
2022-07-29 12:22:59 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-504e-f5c6-7318-fada.res6.spectrum.com) (Ping timeout: 255 seconds)
2022-07-29 12:24:44 +0200Pickchea(~private@user/pickchea)
2022-07-29 12:25:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 12:27:20 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 268 seconds)
2022-07-29 12:28:13 +0200cirilla(sid194105@user/lys) ()
2022-07-29 12:29:39 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 244 seconds)
2022-07-29 12:31:44 +0200dvdrw(~dvdrw@user/dvdrw)
2022-07-29 12:31:51 +0200chomwitt(~chomwitt@2a02:587:dc00:5a00:ef54:f708:6c70:62e3) (Ping timeout: 276 seconds)
2022-07-29 12:33:35 +0200gurkenglas(~gurkengla@p548ac71b.dip0.t-ipconnect.de)
2022-07-29 12:35:35 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-d0dd-a126-3a7b-298c.res6.spectrum.com)
2022-07-29 12:37:48 +0200 <Haskelytic> `type role ReaderT representational representational nominal`
2022-07-29 12:38:12 +0200 <Haskelytic> I got this after running `:i ReaderT` (ghci) on my own ReaderT implementation
2022-07-29 12:38:27 +0200 <Haskelytic> `newtype ReaderT r m a = ReaderT { runReaderT :: r -> m a }`
2022-07-29 12:38:42 +0200 <Haskelytic> never seen that first line before, what does it mean?
2022-07-29 12:38:53 +0200nschoe(~quassel@178.251.84.79)
2022-07-29 12:42:42 +0200 <_________> I don't know, but here's the link: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/roles.html
2022-07-29 12:43:27 +0200 <[Leary]> Haskelytic: In short, it means (Coercible r1 r2, Coercible m1 m2) => Coercible (ReaderT r1 m1 a) (ReaderT r2 m2 a)
2022-07-29 12:43:55 +0200 <[Leary]> See Data.Coerce in base.
2022-07-29 12:44:26 +0200 <[Leary]> Note that it can't coerce over `a` because it doesn't know the type roles for `m`.
2022-07-29 12:45:02 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-07-29 12:48:19 +0200 <albet70> tomsmeding, :t (>>=) @((->)(_->_)) isn't right for Cont?
2022-07-29 12:48:44 +0200 <albet70> (>>=) @((->)(_->_)) :: ((_1 -> _2) -> a) -> (a -> (_1 -> _2) -> b) -> (_1 -> _2) -> b
2022-07-29 12:49:18 +0200 <albet70> yours ((a -> r) -> r) -> (a -> (b -> r) -> r) -> (b -> r) -> r
2022-07-29 12:49:26 +0200 <albet70> it's not the same
2022-07-29 12:52:29 +0200irfan(~irfan@user/irfan) (Quit: leaving)
2022-07-29 12:52:39 +0200alp_(~alp@user/alp) (Ping timeout: 276 seconds)
2022-07-29 12:55:15 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 276 seconds)
2022-07-29 12:58:51 +0200Lycurgus(~juan@user/Lycurgus)
2022-07-29 13:00:01 +0200 <Lycurgus> the last sentence of https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/roles.html is telling
2022-07-29 13:00:29 +0200 <Lycurgus> particularly the lack of attention to detail reflected in the typo
2022-07-29 13:06:53 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 13:08:22 +0200MajorBiscuit(~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl)
2022-07-29 13:08:54 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net)
2022-07-29 13:11:30 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 13:16:41 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-29 13:18:43 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-07-29 13:21:19 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-07-29 13:24:28 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 13:29:37 +0200chele(~chele@user/chele) (Ping timeout: 245 seconds)
2022-07-29 13:29:48 +0200zxx7529(~Thunderbi@user/zxx7529) (Remote host closed the connection)
2022-07-29 13:30:01 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-29 13:30:31 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-07-29 13:33:47 +0200mncheck-m(~mncheck@193.224.205.254) (Ping timeout: 245 seconds)
2022-07-29 13:34:31 +0200mncheck-m(~mncheck@193.224.205.254)
2022-07-29 13:35:56 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-29 13:36:23 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-29 13:36:23 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-07-29 13:36:23 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
2022-07-29 13:36:23 +0200gmg(~user@user/gehmehgeh) (Read error: Connection reset by peer)
2022-07-29 13:36:23 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Read error: Connection reset by peer)
2022-07-29 13:36:23 +0200califax(~califax@user/califx) (Write error: Connection reset by peer)
2022-07-29 13:36:49 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 13:37:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-29 13:37:12 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-29 13:37:17 +0200califax(~califax@user/califx)
2022-07-29 13:37:19 +0200gmg(~user@user/gehmehgeh)
2022-07-29 13:40:30 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-07-29 13:42:17 +0200chele(~chele@user/chele)
2022-07-29 13:43:04 +0200 <tomsmeding> albet70: no, (_1 -> _2) -> a is not the same as (a -> r) -> r
2022-07-29 13:43:24 +0200 <tomsmeding> The 'a' is in a different position
2022-07-29 13:43:41 +0200crazazy(~user@130.89.171.62) (Ping timeout: 252 seconds)
2022-07-29 13:43:56 +0200alp_(~alp@user/alp)
2022-07-29 13:44:18 +0200 <tomsmeding> (->) (_ -> _) is a special case of the reader monad, (->) r, where reader context value is a function
2022-07-29 13:46:39 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-07-29 13:47:00 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-07-29 13:47:16 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-29 13:52:02 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-29 13:52:06 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-29 13:52:20 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 13:54:56 +0200arjun(~arjun@user/arjun)
2022-07-29 13:54:58 +0200Guest3_(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 13:54:59 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net)
2022-07-29 13:55:38 +0200crazazy(~user@130.89.171.62)
2022-07-29 13:56:44 +0200zxx7529(~Thunderbi@user/zxx7529) (Remote host closed the connection)
2022-07-29 13:56:57 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-29 13:58:51 +0200Guest3_(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Client Quit)
2022-07-29 14:00:56 +0200zxx7529(~Thunderbi@user/zxx7529) (Remote host closed the connection)
2022-07-29 14:01:09 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-29 14:03:52 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-29 14:05:39 +0200ridcully_(~ridcully@p508ac7ad.dip0.t-ipconnect.de)
2022-07-29 14:06:37 +0200ridcully(~ridcully@pd951fca3.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-07-29 14:06:42 +0200Guest3_(~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
2022-07-29 14:06:52 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 14:08:16 +0200 <albet70> then what's the proper way to show >>= type for Cont with @ type application?
2022-07-29 14:09:01 +0200dextaa(~DV@user/dextaa)
2022-07-29 14:11:42 +0200mncheck(~mncheck@193.224.205.254) (Remote host closed the connection)
2022-07-29 14:11:42 +0200mncheck-m(~mncheck@193.224.205.254) (Remote host closed the connection)
2022-07-29 14:11:42 +0200mncheckm(~mncheck@193.224.205.254) (Remote host closed the connection)
2022-07-29 14:13:12 +0200xff0x(~xff0x@2405:6580:b080:900:dd91:5944:95b9:3d1c)
2022-07-29 14:15:52 +0200hosk1(~goober@90-231-13-185-no3430.tbcn.telia.com) (Ping timeout: 268 seconds)
2022-07-29 14:18:21 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net)
2022-07-29 14:18:22 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2022-07-29 14:19:31 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-07-29 14:20:31 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-07-29 14:22:12 +0200arjun(~arjun@user/arjun) (Remote host closed the connection)
2022-07-29 14:22:37 +0200arjun(~arjun@user/arjun)
2022-07-29 14:27:23 +0200hueso(~root@user/hueso) (Ping timeout: 272 seconds)
2022-07-29 14:27:33 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-07-29 14:29:00 +0200jespada(~jespada@181.80.249.105) (Ping timeout: 244 seconds)
2022-07-29 14:30:52 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
2022-07-29 14:30:55 +0200dknite(~dknite@223.191.52.173) (Read error: Connection reset by peer)
2022-07-29 14:31:12 +0200dknite(~dknite@203.110.242.43)
2022-07-29 14:32:43 +0200jespada(~jespada@45.162.228.187)
2022-07-29 14:34:10 +0200hueso(~root@user/hueso)
2022-07-29 14:35:27 +0200dknite(~dknite@203.110.242.43) (Ping timeout: 245 seconds)
2022-07-29 14:36:03 +0200dknite(~dknite@223.191.52.173)
2022-07-29 14:36:11 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-29 14:40:52 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 14:41:51 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 14:42:59 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 14:44:07 +0200JannisO(~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de)
2022-07-29 14:44:19 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2022-07-29 14:45:06 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-07-29 14:46:50 +0200crazazy`(~user@2001:67c:2564:a307:6d3:b0ff:fef1:40aa)
2022-07-29 14:47:39 +0200Pickchea(~private@user/pickchea) (Ping timeout: 272 seconds)
2022-07-29 14:48:22 +0200crazazy(~user@130.89.171.62) (Ping timeout: 245 seconds)
2022-07-29 14:49:18 +0200crazazy`(~user@2001:67c:2564:a307:6d3:b0ff:fef1:40aa) (Remote host closed the connection)
2022-07-29 14:49:39 +0200crazazy`(~user@2001:67c:2564:a307:9deb:8eb4:a8aa:cab2)
2022-07-29 14:50:46 +0200cirilla(sid194105@id-194105.uxbridge.irccloud.com)
2022-07-29 14:51:09 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
2022-07-29 14:51:14 +0200Guest3_(~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
2022-07-29 14:51:15 +0200cirilla(sid194105@id-194105.uxbridge.irccloud.com) (Changing host)
2022-07-29 14:51:15 +0200cirilla(sid194105@user/lys)
2022-07-29 14:51:50 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 14:52:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-29 14:53:04 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 14:54:50 +0200acidjnk(~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-07-29 14:56:23 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 14:57:53 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-07-29 14:58:18 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-07-29 14:58:59 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-29 14:59:15 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 15:00:20 +0200crazazy``(~user@130.89.171.62)
2022-07-29 15:01:38 +0200crazazy`(~user@2001:67c:2564:a307:9deb:8eb4:a8aa:cab2) (Ping timeout: 240 seconds)
2022-07-29 15:02:26 +0200notzmv(~zmv@user/notzmv)
2022-07-29 15:02:58 +0200 <onosendi> sm: thanks for the info, at a quick glance these look to be really good.
2022-07-29 15:06:13 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-29 15:07:02 +0200 <sm> no problem.. which info was that ?
2022-07-29 15:07:08 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 15:09:13 +0200 <sm> that aarch64-osx/1792f58b94d2366b0239966600cb4a8553d2937527e1b0c8b86822d2c4d84ec5/9.2.2/pkgdb is the same one shown by stack exec -- ghc-pkg list. The latter shows `hledger-1.26.99` installed, but the runghc error mentions `hledger-1.26.99-inplace`. I wonder if that's significant
2022-07-29 15:09:43 +0200 <sm> sorry, mispaste
2022-07-29 15:10:02 +0200acidjnk(~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de)
2022-07-29 15:10:59 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 15:13:04 +0200 <tomsmeding> % import Control.Monad.Cont
2022-07-29 15:13:04 +0200 <yahb2> <no output>
2022-07-29 15:13:07 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-07-29 15:13:14 +0200 <tomsmeding> % :set -XTypeApplications
2022-07-29 15:13:14 +0200 <yahb2> <no output>
2022-07-29 15:13:29 +0200 <tomsmeding> % :t (>>=) @(Cont _) -- albet70
2022-07-29 15:13:29 +0200 <yahb2> (>>=) @(Cont _) -- albet70 ; :: Cont _ a -> (a -> Cont _ b) -> Cont _ b
2022-07-29 15:13:49 +0200 <tomsmeding> Then you have to manually unfold Cont
2022-07-29 15:14:18 +0200 <tomsmeding> The reason why you can't do better than this, is that (a -> r) -> r cannot be written as 'f a' for some 'f'
2022-07-29 15:14:50 +0200 <tomsmeding> On the value level, you would write 'f = \a -> (a -> r) -> r', but Haskell has no lambdas on the type level
2022-07-29 15:14:59 +0200 <tomsmeding> Hence, you need to wrap it in a newtype
2022-07-29 15:15:05 +0200Psybur(~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
2022-07-29 15:15:18 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-07-29 15:15:50 +0200 <tomsmeding> What you did is (r1 -> r2) -> a, which can indeed be written as 'f a' for some 'f', namely f = (->) (r1 -> r2)
2022-07-29 15:16:01 +0200Guest1698(~Guest1698@20.83.116.49) (Ping timeout: 244 seconds)
2022-07-29 15:16:29 +0200Guest1698(~Guest1698@20.83.116.49)
2022-07-29 15:16:40 +0200zxx7529(~Thunderbi@user/zxx7529) (Quit: zxx7529)
2022-07-29 15:22:45 +0200hasbae(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2022-07-29 15:30:10 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 15:30:16 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 15:30:45 +0200hueso(~root@user/hueso) (Ping timeout: 252 seconds)
2022-07-29 15:32:48 +0200cirilla(sid194105@user/lys) (Quit: Dreams like these must die)
2022-07-29 15:36:15 +0200crazazy``(~user@130.89.171.62) (Ping timeout: 252 seconds)
2022-07-29 15:36:41 +0200hueso(~root@user/hueso)
2022-07-29 15:38:01 +0200jakalx(~jakalx@base.jakalx.net)
2022-07-29 15:39:37 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds)
2022-07-29 15:41:45 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 252 seconds)
2022-07-29 15:42:02 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 15:46:14 +0200Pickchea(~private@user/pickchea)
2022-07-29 15:46:23 +0200WaxCPUAndrew
2022-07-29 15:48:05 +0200ystael(~ystael@user/ystael)
2022-07-29 15:50:11 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds)
2022-07-29 15:50:39 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-07-29 15:50:39 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-07-29 15:50:39 +0200wroathe(~wroathe@user/wroathe)
2022-07-29 15:52:56 +0200cirilla(sid194105@id-194105.uxbridge.irccloud.com)
2022-07-29 15:54:00 +0200califax(~califax@user/califx) (Ping timeout: 268 seconds)
2022-07-29 15:54:55 +0200califax(~califax@user/califx)
2022-07-29 15:55:09 +0200cirilla(sid194105@id-194105.uxbridge.irccloud.com) (Changing host)
2022-07-29 15:55:09 +0200cirilla(sid194105@user/lys)
2022-07-29 15:55:19 +0200dknite(~dknite@223.191.52.173) (Ping timeout: 252 seconds)
2022-07-29 15:58:51 +0200dknite(~dknite@223.191.52.173)
2022-07-29 15:58:59 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-07-29 15:59:12 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds)
2022-07-29 16:01:27 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 16:04:12 +0200hueso(~root@user/hueso) (Ping timeout: 245 seconds)
2022-07-29 16:10:34 +0200hueso(~root@user/hueso)
2022-07-29 16:11:02 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-29 16:11:41 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-29 16:11:52 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 16:12:21 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 16:12:23 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 16:12:30 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 16:16:11 +0200Inst_(~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e)
2022-07-29 16:16:13 +0200Inst_Inst
2022-07-29 16:16:17 +0200 <Inst> could I get some help with code golf?
2022-07-29 16:16:18 +0200 <Inst> getAny.(Any. isEven <> Any. isOdd) $ 2
2022-07-29 16:16:33 +0200 <Inst> this works, I get True
2022-07-29 16:16:51 +0200cirilla(sid194105@user/lys) ()
2022-07-29 16:19:12 +0200crazazy``(~user@130.89.171.62)
2022-07-29 16:26:08 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-07-29 16:28:27 +0200sandy_doo(~sandydoo@185.209.196.136)
2022-07-29 16:29:04 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
2022-07-29 16:29:32 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net)
2022-07-29 16:29:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-29 16:29:53 +0200sandydoo(~sandydoo@185.209.196.136) (Ping timeout: 244 seconds)
2022-07-29 16:30:24 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds)
2022-07-29 16:31:02 +0200alternateved(~user@staticline-31-183-144-54.toya.net.pl) (Remote host closed the connection)
2022-07-29 16:32:16 +0200ccntrq(~Thunderbi@exit-3.office.han.de.mhd.medondo.com) (Quit: ccntrq)
2022-07-29 16:34:20 +0200 <merijn> hmm
2022-07-29 16:34:55 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-07-29 16:34:56 +0200 <merijn> if I have a foldMap that I want to intersperse some elements into, I guess I'm mostly screwed and need to hand roll some custom tweaked fold
2022-07-29 16:35:45 +0200zebrag(~chris@user/zebrag)
2022-07-29 16:37:06 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 16:37:23 +0200 <tomsmeding> Inst: (\x->isEven x||isOdd x) $ 2
2022-07-29 16:38:15 +0200 <tomsmeding> merijn: if it's really intersperse (i.e. predictably the same thing between every element) you might be able to write a custom monoid that does just that
2022-07-29 16:39:33 +0200 <Inst> tomsmeding: I mean, without a lambda
2022-07-29 16:39:57 +0200 <tomsmeding> liftA2(||)isEven isOdd
2022-07-29 16:39:58 +0200 <sm> today ghcid (run in a stack project) seems to be reacting to file changes, and shows ok/error status correctly in window titlebar, but is not showing any new error output in the console. Does this sound familiar to anyone ? I have not found an issue
2022-07-29 16:40:04 +0200 <Inst> ;_;
2022-07-29 16:40:11 +0200 <Inst> liftA2 I'd consider unreadable ;_;
2022-07-29 16:40:28 +0200 <tomsmeding> Inst: (||)<$>isEven<*>idOdd
2022-07-29 16:40:28 +0200 <Inst> ffff, why do you have to have the Any on Bool?
2022-07-29 16:40:44 +0200 <geekosaur> code golf is not about readability
2022-07-29 16:41:00 +0200 <tomsmeding> Inst: const True
2022-07-29 16:41:07 +0200 <Inst> (||) . isEven <*> isOdd
2022-07-29 16:41:59 +0200 <tomsmeding> sm: never seen that, does ctrl-L do anything (in the ghcid window)? Restarting ghcid?
2022-07-29 16:42:04 +0200xff0x(~xff0x@2405:6580:b080:900:dd91:5944:95b9:3d1c) (Read error: Connection reset by peer)
2022-07-29 16:43:06 +0200tomsmeding. o O ( `\_->True` is shorter than `const True` )
2022-07-29 16:43:16 +0200 <tomsmeding> With the \
2022-07-29 16:43:20 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 244 seconds)
2022-07-29 16:43:22 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-07-29 16:44:01 +0200 <sm> tomsmeding: C-l does nothing. Restarting ghcid helps to see a current error - the first output is always correct - but it shows no new output as the file changes
2022-07-29 16:44:12 +0200 <sm> it's weird, I've never seen this before either
2022-07-29 16:45:30 +0200 <tomsmeding> sm: ghcid is correctly updating the terminal title bar? Did you conclusively check this?
2022-07-29 16:45:45 +0200 <sm> yes, I can see the title bar updating
2022-07-29 16:45:45 +0200 <tomsmeding> If so, 🤷‍♂️
2022-07-29 16:45:52 +0200 <tomsmeding> That's _really_ odd
2022-07-29 16:46:29 +0200 <tomsmeding> Does plain ghci work on :r
2022-07-29 16:46:39 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2022-07-29 16:46:40 +0200 <tomsmeding> (well, stack repl, I guess)
2022-07-29 16:46:51 +0200xff0x(~xff0x@2405:6580:b080:900:8027:7a12:387:4367)
2022-07-29 16:47:22 +0200 <sm> in a terminal, it shows no console output whatsoever. However in an emacs shell, it shows the first line (All good / error), but not the error details. I wonder if it's something to do with ansi
2022-07-29 16:47:59 +0200 <tomsmeding> sm: try piping ghcir through xxd
2022-07-29 16:48:08 +0200 <tomsmeding> *ghcid
2022-07-29 16:48:39 +0200 <tomsmeding> Not very readable, but no ansi sequence interpretation and at least you can see what's written to stdout literally
2022-07-29 16:48:46 +0200 <sm> I added --color=never with no effect, but xxd shows output!
2022-07-29 16:49:47 +0200smcontemplates the mystery of the world
2022-07-29 16:49:47 +0200Vajb(~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2022-07-29 16:50:05 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-07-29 16:52:32 +0200jespada(~jespada@45.162.228.187) (Ping timeout: 245 seconds)
2022-07-29 16:52:42 +0200jinsun(~jinsun@user/jinsun)
2022-07-29 16:53:17 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:a442:f89a:164c:a1c) (Quit: WeeChat 2.8)
2022-07-29 16:53:36 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-07-29 16:53:36 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 16:53:43 +0200 <sm> here's the start of the output when an error is introduced: https://paste.tomsmeding.com/BYmHcrrN
2022-07-29 16:54:09 +0200jakalx(~jakalx@base.jakalx.net)
2022-07-29 16:54:39 +0200 <tomsmeding> sm: try `script ghcid`, then kill it after the output becomed wrong, then send me the `typescript` file that it produces
2022-07-29 16:55:05 +0200Pickchea(~private@user/pickchea) (Ping timeout: 252 seconds)
2022-07-29 16:55:15 +0200 <sm> the hex looks like ordinary ascii, I have no idea how that could not render
2022-07-29 16:55:24 +0200 <tomsmeding> Wait \e]0;2 wtf is that escape sequence
2022-07-29 16:55:36 +0200 <geekosaur> status bar update
2022-07-29 16:55:57 +0200 <geekosaur> er, title bar for most terminals
2022-07-29 16:55:58 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-07-29 16:56:15 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-07-29 16:56:17 +0200 <sm> (script breaks ghcid)
2022-07-29 16:56:24 +0200 <tomsmeding> Rip ghcid
2022-07-29 16:56:42 +0200jespada(~jespada@181.80.249.105)
2022-07-29 16:57:03 +0200 <tomsmeding> geekosaur: thanks TIL (I found it on wikipedia too -- the sequence is \e]0;title text\x07 )
2022-07-29 16:57:32 +0200 <merijn> tomsmeding: Oh, wait, it's actually a list, not a map I have. So I can just do regular list-y things
2022-07-29 16:57:40 +0200 <sm> ghcid has always worked one way or another.. this is rocking my world
2022-07-29 16:57:47 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 16:58:10 +0200 <tomsmeding> sm: ghcid probably notices (with isatty(3)) that stdout is not a tty when piped, so disables (apparently not all? Bug?) escape sequences then
2022-07-29 16:58:38 +0200 <tomsmeding> merijn: 🎉
2022-07-29 16:59:00 +0200dcoutts(~duncan@host86-150-41-142.range86-150.btcentralplus.com) (Ping timeout: 276 seconds)
2022-07-29 16:59:01 +0200 <geekosaur> the whole point of script is it uses a pty so shouldn't cause that
2022-07-29 16:59:08 +0200 <tomsmeding> Yeah
2022-07-29 16:59:11 +0200 <geekosaur> I'm surprised ghcid would break when used with it
2022-07-29 16:59:28 +0200 <tomsmeding> sm: breaks in what way
2022-07-29 16:59:38 +0200 <sm> (script doesn't break ghcid, I was holding it wrong. Here's what it captured after introducing an error:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/6663ae133cad3fb2b6c4b1e48d11b084c3f1…)
2022-07-29 17:00:11 +0200 <merijn> tomsmeding: Still tricky, since I need to do things like "find the first and last N entries on the list"
2022-07-29 17:00:59 +0200 <tomsmeding> sm: I don't even see status bar updates in that, just a switch to the alternate screen
2022-07-29 17:01:00 +0200 <geekosaur> that said, I wonder how much ghcid does by opening /dev/tty
2022-07-29 17:01:11 +0200 <tomsmeding> Ooh
2022-07-29 17:01:11 +0200 <sm> (and in emacs, line 11 looks like ^[[?25h)
2022-07-29 17:01:23 +0200 <sm> tomsmeding: I turned those off with --no-title
2022-07-29 17:01:41 +0200 <tomsmeding> Oh oops 25h is "show cursor"
2022-07-29 17:01:49 +0200 <tomsmeding> Ah
2022-07-29 17:01:54 +0200 <sm> and turned off color, so I'm not expecting any ANSI.. except it probably tries to clear screen
2022-07-29 17:02:01 +0200 <tomsmeding> No such thing
2022-07-29 17:02:17 +0200 <tomsmeding> That would be \e[2J
2022-07-29 17:02:29 +0200 <tomsmeding> (\e = ^[)
2022-07-29 17:03:14 +0200 <tomsmeding> sm: perhaps try without --no-title, to see it actually doing something?
2022-07-29 17:03:24 +0200 <tomsmeding> If geekosaur is right though, this won't be productive
2022-07-29 17:05:27 +0200tstat(~user@user/tstat)
2022-07-29 17:05:51 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-29 17:06:10 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 240 seconds)
2022-07-29 17:06:30 +0200zxx7529(~Thunderbi@user/zxx7529) (Client Quit)
2022-07-29 17:09:20 +0200jinsun(~jinsun@user/jinsun)
2022-07-29 17:13:02 +0200 <sm> thanks all, I have opened https://github.com/ndmitchell/ghcid/issues/362
2022-07-29 17:15:50 +0200 <tomsmeding> 👍
2022-07-29 17:16:38 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com)
2022-07-29 17:17:26 +0200xff0x(~xff0x@2405:6580:b080:900:8027:7a12:387:4367) (Ping timeout: 244 seconds)
2022-07-29 17:19:20 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-29 17:19:30 +0200xff0x(~xff0x@ae130050.dynamic.ppp.asahi-net.or.jp)
2022-07-29 17:20:20 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!)
2022-07-29 17:21:48 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Quit: _)
2022-07-29 17:21:51 +0200vpan(~0@212.117.1.172) (Quit: Leaving.)
2022-07-29 17:22:13 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 17:24:59 +0200jinsun__(~jinsun@user/jinsun)
2022-07-29 17:24:59 +0200jinsun(~jinsun@user/jinsun) (Killed (osmium.libera.chat (Nickname regained by services)))
2022-07-29 17:24:59 +0200jinsun__jinsun
2022-07-29 17:26:48 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2022-07-29 17:27:21 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-07-29 17:28:50 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 17:29:52 +0200 <merijn> I don't suppose there's a splitAt that splits from the back?
2022-07-29 17:30:30 +0200jinsun__(~jinsun@user/jinsun)
2022-07-29 17:30:30 +0200jinsunGuest7303
2022-07-29 17:30:30 +0200Guest7303(~jinsun@user/jinsun) (Killed (platinum.libera.chat (Nickname regained by services)))
2022-07-29 17:30:30 +0200jinsun__jinsun
2022-07-29 17:31:08 +0200 <tomsmeding> merijn: can't do much better than \n l -> splitAt (length l - n) l, implementation-wise
2022-07-29 17:31:28 +0200 <merijn> You can, actually
2022-07-29 17:31:32 +0200 <merijn> But I don't wanna
2022-07-29 17:31:44 +0200 <merijn> You can do it in a single traversal
2022-07-29 17:32:05 +0200 <merijn> Probably less time to copy my implementation of that from gist and inline it somewhere :p
2022-07-29 17:32:54 +0200 <tomsmeding> You can, buy will that be more efficient
2022-07-29 17:33:03 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 17:33:18 +0200 <merijn> "who knows" :p
2022-07-29 17:33:38 +0200 <tomsmeding> Ah right, |l| + n steps instead of |l| + |l|-n
2022-07-29 17:33:53 +0200 <tomsmeding> So better if n is small
2022-07-29 17:35:21 +0200 <dolio> Also, if you do it the right way, you can avoid pre-forcing the entire list into memory.
2022-07-29 17:35:39 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-07-29 17:35:48 +0200 <dolio> For some cases, at least.
2022-07-29 17:36:22 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2022-07-29 17:37:06 +0200 <sm> tomsmeding: fixed by reinstalling! https://github.com/ndmitchell/ghcid/issues/362#issuecomment-1199556972
2022-07-29 17:37:30 +0200smadds that to "have you turned it off and on"
2022-07-29 17:38:39 +0200acidjnk(~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-07-29 17:40:21 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-07-29 17:40:33 +0200crazazy``(~user@130.89.171.62) (Ping timeout: 252 seconds)
2022-07-29 17:43:37 +0200 <merijn> tomsmeding: bleh, I'll just do it myself: https://paste.tomsmeding.com/gRDKljQj :>
2022-07-29 17:47:51 +0200 <tomsmeding> sm: haha!
2022-07-29 17:48:38 +0200 <merijn> dolio: How'd I do? ;)
2022-07-29 17:50:05 +0200 <dolio> Yeah, that's roughly what I was thinking.
2022-07-29 17:51:00 +0200 <merijn> I was too lazy to think how to properly handle the 0 case, so I just special cased it >.>
2022-07-29 17:52:07 +0200yin(~yin@user/zero)
2022-07-29 17:52:32 +0200 <dolio> I think you don't need it.
2022-07-29 17:53:05 +0200 <dolio> I think you don't need the first case of `go`, either.
2022-07-29 17:53:40 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-07-29 17:54:12 +0200eod|fserucas__(~eod|fseru@83.223.227.100) (Quit: Leaving)
2022-07-29 17:54:16 +0200eod|fserucas(~eod|fseru@83.223.227.100) (Quit: Leaving)
2022-07-29 17:54:41 +0200 <dolio> The 0 case prevents rebuilding the list, though, which is nice.
2022-07-29 17:55:35 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-07-29 17:57:37 +0200 <merijn> dolio: You don't, but GHC whines
2022-07-29 17:58:02 +0200 <merijn> oh, wait
2022-07-29 17:58:14 +0200 <merijn> I just need to swap the first two to fix needing the special case!
2022-07-29 17:58:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-29 17:58:39 +0200 <dolio> You should probably add ~ to the (x:xs) to fix it instead.
2022-07-29 17:59:16 +0200 <dolio> Maybe that doesn't actually do anything better, though.
2022-07-29 18:00:03 +0200dknite(~dknite@223.191.52.173) (Ping timeout: 245 seconds)
2022-07-29 18:00:22 +0200dknite(~dknite@223.176.55.39)
2022-07-29 18:00:29 +0200iclanzan[m](~iclanzanm@2001:470:69fc:105::2:3a05) (Quit: You have been kicked for being idle)
2022-07-29 18:00:52 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-07-29 18:01:00 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-07-29 18:01:10 +0200MajorBiscuit(~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Quit: WeeChat 3.5)
2022-07-29 18:02:56 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 18:02:58 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-29 18:04:05 +0200califax(~califax@user/califx)
2022-07-29 18:05:41 +0200noteness(~noteness@user/noteness)
2022-07-29 18:05:53 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-07-29 18:06:23 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-07-29 18:09:53 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
2022-07-29 18:11:57 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 18:13:34 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 18:16:13 +0200Inst(~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e) (Read error: Connection reset by peer)
2022-07-29 18:16:27 +0200 <albet70> so other languages can do lambda on type level?
2022-07-29 18:16:51 +0200sandy_doo(~sandydoo@185.209.196.136) (Ping timeout: 252 seconds)
2022-07-29 18:17:07 +0200raym(~raym@user/raym) (Ping timeout: 245 seconds)
2022-07-29 18:17:11 +0200Inst(~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e)
2022-07-29 18:17:14 +0200 <merijn> albet70: Sure
2022-07-29 18:17:39 +0200 <albet70> for example?
2022-07-29 18:17:44 +0200 <merijn> albet70: Agda, Idris, Coq, etc. let you do anything at the type level (i.e. the type level language and expression level language are identical)
2022-07-29 18:18:00 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 18:18:11 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-07-29 18:18:47 +0200xff0x(~xff0x@ae130050.dynamic.ppp.asahi-net.or.jp) (Ping timeout: 245 seconds)
2022-07-29 18:18:50 +0200 <hasbae> to use text package, https://hackage.haskell.org/package/text-2.0.1, why is it 'import Data.Text' - why is the name of the package preceded by Data? Is that supposed to mean something?
2022-07-29 18:19:01 +0200 <albet70> because they have a better type system than system F in lambda cube?
2022-07-29 18:19:04 +0200raym(~raym@user/raym)
2022-07-29 18:19:31 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-07-29 18:19:36 +0200 <geekosaur> hasbae, because module names don't have to match package names, and the convention is that new data types are added under Data
2022-07-29 18:19:51 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 18:19:58 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-07-29 18:20:39 +0200xff0x(~xff0x@ae132116.dynamic.ppp.asahi-net.or.jp)
2022-07-29 18:21:15 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-29 18:21:31 +0200 <hasbae> i see. is there a similar convention around the prefix Control?
2022-07-29 18:21:45 +0200 <hasbae> are these conventions explicit somewhere?
2022-07-29 18:21:47 +0200 <merijn> hasbae: Ok, so when hierarchical modules were first introduced, there was a frenzy of making nice hierarchies. Part of that was having a Data (for data) and Control (for "code") top level. Which led to tons of moudles being in Data.X and Control.X even when it doesn't necessarily make a whole lot of sense
2022-07-29 18:21:47 +0200 <geekosaur> yes, that's for control structures of some kind (e.g. Monad)
2022-07-29 18:21:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 18:22:08 +0200 <geekosaur> someone pointed you at the paper about modular hierarchies yesterday, I thought?
2022-07-29 18:22:12 +0200 <merijn> But now there's a bunch of code that has been Data.X or Control.X for years, so there's little interest in breaking that
2022-07-29 18:22:32 +0200 <geekosaur> [29 01:38:34] <jackdk> hasbae: `Data/ByteString/Lazy.hs`. If you want the ancient source: http://web.archive.org/web/20100703071858/http://www.haskell.org/hierarchical-modules/hier.pdf
2022-07-29 18:22:33 +0200 <merijn> hasbae: So you end up with a lot of Data/Control stuff for "hysterical raisins"
2022-07-29 18:22:53 +0200 <merijn> hasbae: With no real reason beyond "historical accident"
2022-07-29 18:22:59 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer)
2022-07-29 18:23:46 +0200ubert(~Thunderbi@178.115.57.195.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
2022-07-29 18:23:52 +0200 <geekosaur> well, and some belief about not cluttering the top level. I have a snaking suspicion that'll come back as the hierarchies start to break down again
2022-07-29 18:24:21 +0200 <geekosaur> it makes it more difficult to find things, granting the current hierarchies are not especially useful
2022-07-29 18:24:39 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 18:24:49 +0200 <merijn> I think other top hierarchies are fine IFF you play nice and don't squat very generic module names
2022-07-29 18:25:05 +0200 <hasbae> ok, i was trying to find the hidden meaning in the hierarchies, and apparently there isn't much of one to be found
2022-07-29 18:25:07 +0200califax(~califax@user/califx)
2022-07-29 18:25:19 +0200 <merijn> I used Control.Concurrent here: https://hackage.haskell.org/package/broadcast-chan-0.1.0
2022-07-29 18:25:37 +0200 <merijn> but latest version just uses BroadcastChan instead
2022-07-29 18:25:41 +0200 <merijn> saves typing :p
2022-07-29 18:25:50 +0200 <merijn> hasbae: Pretty much
2022-07-29 18:26:10 +0200 <merijn> Well, at least you can safel consider Text a datatype so Data at least makes some sense
2022-07-29 18:26:24 +0200 <merijn> But why is Monad in Control.Monad, but functor in Data.Functor?
2022-07-29 18:26:40 +0200 <merijn> ??
2022-07-29 18:26:40 +0200Vajb(~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi)
2022-07-29 18:26:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 272 seconds)
2022-07-29 18:27:48 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-29 18:28:15 +0200califax(~califax@user/califx)
2022-07-29 18:30:05 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 18:31:09 +0200irfan(~irfan@user/irfan)
2022-07-29 18:34:12 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-07-29 18:34:14 +0200dknite(~dknite@223.176.55.39) (Read error: Connection reset by peer)
2022-07-29 18:35:12 +0200 <hasbae> this seems like a good answer to my question: https://stackoverflow.com/questions/33949401/is-there-any-standard-module-namespace-naming-convent… I was also assuming some similarity to the python conventions of packages and modules
2022-07-29 18:35:33 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2022-07-29 18:36:49 +0200benin08(~benin@2401:4900:2324:632a:8150:fd5f:e388:7778)
2022-07-29 18:36:50 +0200dknite(~dknite@223.176.55.39)
2022-07-29 18:37:12 +0200yin(~yin@user/zero)
2022-07-29 18:37:33 +0200pgib(~textual@173.38.117.88)
2022-07-29 18:39:11 +0200benin0(~benin@183.82.26.87) (Ping timeout: 268 seconds)
2022-07-29 18:39:12 +0200benin08benin0
2022-07-29 18:39:39 +0200 <hololeap> @src lines
2022-07-29 18:39:39 +0200 <lambdabot> Source not found. Listen, broccoli brains, I don't have time to listen to this trash.
2022-07-29 18:40:45 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it)
2022-07-29 18:41:33 +0200 <Haskelytic> lol
2022-07-29 18:41:43 +0200econo(uid147250@user/econo)
2022-07-29 18:43:19 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-29 18:43:57 +0200 <darkling> Now, really! I've known some very intelligent brassicas...
2022-07-29 18:44:44 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 268 seconds)
2022-07-29 18:45:36 +0200benin03(~benin@183.82.26.87)
2022-07-29 18:46:06 +0200 <[Leary]> merijn: I'm leery of "single traversal" solutions that duplicate the list in some way, seeming to just traverse it twice in parallel rather than in sequence. I'm not sure this is actually better, but you can write splitAtEnd with foldr:
2022-07-29 18:46:09 +0200 <[Leary]> > (\n xs -> snd $ foldr (\x (i, sp) -> (i+1, (if i < n then second else first) (x:) sp)) (0, ([], [])) xs) 3 [1..9]
2022-07-29 18:46:12 +0200 <lambdabot> ([1,2,3,4,5,6],[7,8,9])
2022-07-29 18:47:50 +0200benin0(~benin@2401:4900:2324:632a:8150:fd5f:e388:7778) (Ping timeout: 260 seconds)
2022-07-29 18:47:51 +0200benin03benin0
2022-07-29 18:48:26 +0200mbuf(~Shakthi@122.165.55.71) (Quit: Leaving)
2022-07-29 18:49:10 +0200 <Haskelytic> is there any practical difference between `MonadPlus` and `Alternative`
2022-07-29 18:49:19 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 18:49:40 +0200 <Haskelytic> seems like different names for the same thing
2022-07-29 18:50:37 +0200 <dolio> MonadPlus existed for several years before Alternative.
2022-07-29 18:51:59 +0200cyphase(~cyphase@user/cyphase)
2022-07-29 18:53:11 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 18:54:17 +0200 <tomsmeding> Haskelytic: once, Applicative didn't exist
2022-07-29 18:54:24 +0200 <geekosaur> yeh, it's another of those legacy pre-Applicative/Alternative things
2022-07-29 18:54:41 +0200 <tomsmeding> Hence MonadPlus has a Monad superclass, which cannot be downgraded to Applicative without breaking code
2022-07-29 18:54:57 +0200 <tomsmeding> Hence Alternative was created instead
2022-07-29 18:55:35 +0200 <tomsmeding> See also liftM2 / liftA2
2022-07-29 18:55:47 +0200 <tomsmeding> Though this doesn't explain liftM / fmap
2022-07-29 18:57:55 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-07-29 18:59:43 +0200 <Franciman> is there a way to disable monads in haskell?
2022-07-29 19:00:05 +0200 <Franciman> is it possible to have effect systems not using monads at all?
2022-07-29 19:01:56 +0200 <tomsmeding> Fascinating, in Haskell 1.4, Functor and Monad already existed, but Functor had map instead of fmap, and Functor wasn't a superclass of Monad
2022-07-29 19:02:18 +0200 <tomsmeding> Franciman: I'm not sure "disabling monads" is a well-defined thing
2022-07-29 19:02:27 +0200 <dolio> Right, the superclass wasn't there until a few years ago.
2022-07-29 19:02:52 +0200 <tomsmeding> After all, I can always `class IStillWantMyMonad m where return' :: a -> m a ; join :: m (m a) -> m a`
2022-07-29 19:02:58 +0200 <Franciman> tomsmeding: apparently i can't have side effects if I don't use monads
2022-07-29 19:03:37 +0200 <Logio> you can't have side effects without using IO; IO happens to be a monad, but that is orthogonal
2022-07-29 19:03:45 +0200 <tomsmeding> Franciman: you'll have to resort to unsafePerformIO to call the primops, if I'm not mistaken
2022-07-29 19:06:38 +0200 <tomsmeding> dolio: haskell98 didn't even have the superclass!!!
2022-07-29 19:07:04 +0200 <dolio> Right.
2022-07-29 19:07:52 +0200 <dolio> Haskell 98 mostly made a bunch of things worse. :)
2022-07-29 19:08:15 +0200 <tomsmeding> Haskell2010 also didn't?
2022-07-29 19:08:21 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 19:08:27 +0200 <tomsmeding> Did the superclass only get added in FAM?
2022-07-29 19:08:42 +0200 <tomsmeding> I see I started on the wrong end of reports :p
2022-07-29 19:08:51 +0200 <dolio> I think it was part of the 'applicative monad proposal' or whatever.
2022-07-29 19:08:55 +0200 <dolio> Which was after 2010.
2022-07-29 19:09:32 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2022-07-29 19:09:57 +0200 <tomsmeding> Oh right, AMP is what it was called
2022-07-29 19:10:14 +0200 <tomsmeding> I was under the apparently false impression that that just entailed putting Applicative in the middle
2022-07-29 19:10:22 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2022-07-29 19:10:54 +0200 <dolio> Functor was already a superclass of Applicative, I think, so I guess it was automatic in that way.
2022-07-29 19:12:42 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 264 seconds)
2022-07-29 19:13:08 +0200 <tomsmeding> dolio: this has `class Monad m where` https://www.haskell.org/onlinereport/haskell2010/haskellch13.html#x21-19300013
2022-07-29 19:13:50 +0200 <geekosaur> right, Functor as prerequisite didn't happen until AMP
2022-07-29 19:15:35 +0200 <geekosaur> Franciman, if you can come up with your own way to enforce sequencing you can use IO without touching its Monad instance (this typically requires writing your own framework using -XMagicHash to pass the sequencing token)
2022-07-29 19:16:06 +0200 <Franciman> thanks
2022-07-29 19:16:30 +0200 <geekosaur> or if you don't care about sequencing you can just use it directly, but you'll probably find that doesn't do what you want
2022-07-29 19:18:40 +0200 <hasbae> why is there no "in" when using let inside a do block?
2022-07-29 19:18:45 +0200alp_(~alp@user/alp) (Ping timeout: 260 seconds)
2022-07-29 19:19:42 +0200 <geekosaur> because do syntax adds it for you
2022-07-29 19:19:55 +0200 <geekosaur> `let ...` expands to `let ... in do`
2022-07-29 19:20:08 +0200 <geekosaur> it's a convenience
2022-07-29 19:20:20 +0200 <hasbae> ok, so it really is there. Thanks
2022-07-29 19:22:30 +0200 <bollu> @tapl
2022-07-29 19:22:30 +0200 <lambdabot> Maybe you meant: unpl type tell pl
2022-07-29 19:22:45 +0200 <geekosaur> @where tapl
2022-07-29 19:22:45 +0200 <lambdabot> "Types and Programming Languages" by Benjamin C. Pierce in 2002-02-01 at <https://www.cis.upenn.edu/~bcpierce/tapl/>
2022-07-29 19:27:10 +0200glguy(x@libera/staff/glguy) (Read error: Connection reset by peer)
2022-07-29 19:28:01 +0200glguy(x@libera/staff/glguy)
2022-07-29 19:32:05 +0200 <Franciman> geekosaur: are delimited continuations still working in the framework of IO?
2022-07-29 19:32:35 +0200irfan(~irfan@user/irfan) (Quit: leaving)
2022-07-29 19:32:46 +0200 <geekosaur> I'm the wrong one to ask about that; I barely know what they are
2022-07-29 19:36:29 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 19:38:04 +0200sandy_doo(~sandydoo@185.209.196.136)
2022-07-29 19:41:30 +0200 <tomsmeding> Franciman: what do you mean with "still working"? GHC doesn't natively support delimited continuations
2022-07-29 19:41:56 +0200 <tomsmeding> (I believe that's a hot topic relating to effect libraries -- which sounds relevant to what you're asking about :p )
2022-07-29 19:43:58 +0200wroathe(~wroathe@user/wroathe)
2022-07-29 19:44:26 +0200 <glguy> There was a proposal accepted to add delimited continuation primitives to GHC; I don't know if that ever went anywhere
2022-07-29 19:44:27 +0200arjun(~arjun@user/arjun) (Quit: tip toe-ing my way outta here)
2022-07-29 19:46:00 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds)
2022-07-29 19:46:03 +0200yvan-sraka(uid419690@id-419690.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-29 19:47:35 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-07-29 19:47:56 +0200 <monochrom> "in" inside do-notation ruins code layout :)
2022-07-29 19:48:31 +0200 <monochrom> (I just mean aesthetically. I'm sure parsers can be written either way.)
2022-07-29 19:48:57 +0200 <[Leary]> We already have ContT, that's as much delimited continuations as anyone needs.
2022-07-29 19:48:58 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-29 19:49:07 +0200theseb(~cs@47.220.214.54)
2022-07-29 19:49:19 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-29 19:50:16 +0200 <theseb> i love haskell's syntatic purity. Are there any applications where haskell is crushing it and shows that it is so much better than other languages?
2022-07-29 19:50:21 +0200 <c_wraith> So... has 9.2.4 finally fixed all the known code generation bugs in the 9.x series?
2022-07-29 19:50:53 +0200 <Franciman> yes there is an accepted proposal for delconts IIRC
2022-07-29 19:51:24 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 19:51:38 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 19:52:17 +0200benin0(~benin@183.82.26.87) (Quit: The Lounge - https://thelounge.chat)
2022-07-29 19:54:00 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-29 19:54:12 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2022-07-29 19:55:48 +0200Midjak(~Midjak@82.66.147.146) (Quit: Leaving)
2022-07-29 19:57:32 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2022-07-29 19:57:43 +0200 <tomsmeding> theseb: https://classes.cs.uoregon.edu/16F/cis425/Papers/hudak-jones.pdf second paragraph of section 7
2022-07-29 20:00:31 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-07-29 20:01:17 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
2022-07-29 20:01:48 +0200Lord_of_Life_Lord_of_Life
2022-07-29 20:06:32 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds)
2022-07-29 20:07:52 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 20:12:02 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds)
2022-07-29 20:14:46 +0200Midjak(~Midjak@82.66.147.146)
2022-07-29 20:17:17 +0200 <theseb> tomsmeding: thanks!
2022-07-29 20:17:40 +0200 <tomsmeding> This is a classic :)
2022-07-29 20:17:44 +0200janvogt(~janvogt@ip-046-005-021-186.um12.pools.vodafone-ip.de)
2022-07-29 20:18:55 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 20:19:20 +0200 <theseb> tomsmeding: I wonder how Haskell would compare today versus Python
2022-07-29 20:19:33 +0200 <theseb> and common lisp
2022-07-29 20:20:14 +0200 <tomsmeding> How do you mean compare? Performance, popularity, easiness of learning?
2022-07-29 20:20:32 +0200 <tomsmeding> *ease, not easiness, that's not English
2022-07-29 20:20:40 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 20:21:49 +0200janvogt(~janvogt@ip-046-005-021-186.um12.pools.vodafone-ip.de) (Remote host closed the connection)
2022-07-29 20:22:22 +0200infinity0(~infinity0@185.112.146.113) (Remote host closed the connection)
2022-07-29 20:22:52 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
2022-07-29 20:23:32 +0200superbil(~superbil@1-34-176-171.hinet-ip.hinet.net) (Quit: WeeChat 3.5)
2022-07-29 20:23:46 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds)
2022-07-29 20:24:06 +0200noteness(~noteness@user/noteness) (Ping timeout: 268 seconds)
2022-07-29 20:24:29 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-29 20:25:04 +0200superbil(~superbil@1-34-176-171.hinet-ip.hinet.net)
2022-07-29 20:25:52 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .)
2022-07-29 20:27:09 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es)
2022-07-29 20:27:16 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection)
2022-07-29 20:27:41 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 20:27:53 +0200infinity0(~infinity0@185.112.146.113)
2022-07-29 20:28:27 +0200 <glguy> > compare "Haskell" "Python"
2022-07-29 20:28:28 +0200Guest52(~Guest52@46.245.97.156)
2022-07-29 20:28:29 +0200 <lambdabot> LT
2022-07-29 20:28:38 +0200 <c_wraith> sad, but inarguable
2022-07-29 20:28:50 +0200 <Guest52> Hi
2022-07-29 20:28:56 +0200glguywonders how vanilla is holding up against chocolate
2022-07-29 20:28:59 +0200maroloccio(~marolocci@151.75.246.79)
2022-07-29 20:30:24 +0200 <c_wraith> > compare "chocolate" "Vanilla"
2022-07-29 20:30:26 +0200 <lambdabot> GT
2022-07-29 20:30:28 +0200 <Guest52> May I ask about a good source to learn Haskell for an absolute beginner with no programming background here ?
2022-07-29 20:30:47 +0200noteness(~noteness@user/noteness)
2022-07-29 20:30:49 +0200vglfr(~vglfr@91.192.47.10)
2022-07-29 20:33:53 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net)
2022-07-29 20:34:52 +0200 <c_wraith> Guest52: this is a fine place to ask that, but I don't have a recommendation on that topic. I'm sure someone else will, but it's apparently a slow time of day
2022-07-29 20:35:56 +0200 <Guest52> is there any prerequisite for learning Haskell?
2022-07-29 20:37:10 +0200 <c_wraith> Just the same as learning any other programming. It really helps to have at least a basic math education, and you can get started way faster if you have any sort of experience breaking things down into steps.
2022-07-29 20:37:11 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 20:37:59 +0200 <dsal> I'd argue that "no programming background" is sometimes an advantage for Haskell.
2022-07-29 20:37:59 +0200 <Guest52> thank you
2022-07-29 20:38:22 +0200yauhsien(~yauhsien@61-231-60-109.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
2022-07-29 20:38:46 +0200 <Guest52> I've just try to get familiar with idea of lambda calculus
2022-07-29 20:39:55 +0200 <c_wraith> while lambda calculus is relevant to Haskell, it's not a prereq. I basically learned lambda calculus as a result of learning Haskell.
2022-07-29 20:40:18 +0200 <tomsmeding> The premise of this book is to teach haskell without any required prerequisite knowledge:
2022-07-29 20:40:18 +0200 <tomsmeding> @where hpffp
2022-07-29 20:40:18 +0200 <lambdabot> "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners
2022-07-29 20:40:40 +0200 <tomsmeding> But I haven't used it myself; I've just seen others talk about it here
2022-07-29 20:40:53 +0200 <glguy> that book was kind of a mess and pretty long for what you got from it
2022-07-29 20:40:58 +0200 <tomsmeding> Ah
2022-07-29 20:41:17 +0200vglfr(~vglfr@91.192.47.10) (Ping timeout: 245 seconds)
2022-07-29 20:41:24 +0200 <EvanR> was it an attempt at a replacement for Real World Haskell
2022-07-29 20:42:18 +0200vglfr(~vglfr@91.192.47.10)
2022-07-29 20:42:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Ping timeout: 272 seconds)
2022-07-29 20:43:28 +0200 <tomsmeding> I doubt it, was RWH not focusing mostly on tackling the gnarliness of real world problems?
2022-07-29 20:43:40 +0200 <EvanR> that's what youd think
2022-07-29 20:43:47 +0200 <EvanR> from the title alone xD
2022-07-29 20:44:29 +0200 <EvanR> now I can't remember if I looked at the haskell-beginners book (did that channel make it to libera?)
2022-07-29 20:44:58 +0200 <glguy> I don't know if there's an awesome book but the last one I liked was Hutton's Programming in Haskell 2nd ed. -- very possible something better has come out since, but I'm not aware of it
2022-07-29 20:45:48 +0200 <tomsmeding> EvanR: the channel seems to exist, according to alis
2022-07-29 20:46:13 +0200 <tomsmeding> Ah I was confused with Marlow's book, Parallel and Concurrent Programming in Haskell
2022-07-29 20:46:32 +0200 <tomsmeding> Quite the difference :)
2022-07-29 20:46:41 +0200 <EvanR> yes
2022-07-29 20:47:56 +0200 <Guest52> any idea about this book "Christopher Allen, Julie Moronuki - Haskell Programming from first principles (2016)"?
2022-07-29 20:48:34 +0200 <EvanR> that's the book we are now talking about xD
2022-07-29 20:50:07 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
2022-07-29 20:52:16 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 20:57:27 +0200vglfr(~vglfr@91.192.47.10) (Read error: Connection reset by peer)
2022-07-29 20:57:58 +0200vglfr(~vglfr@91.192.47.10)
2022-07-29 20:58:56 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 21:02:13 +0200vglfr(~vglfr@91.192.47.10) (Read error: Connection reset by peer)
2022-07-29 21:02:32 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 245 seconds)
2022-07-29 21:03:24 +0200vglfr(~vglfr@91.192.47.10)
2022-07-29 21:03:48 +0200Guest52(~Guest52@46.245.97.156) (Quit: Client closed)
2022-07-29 21:03:49 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-29 21:04:42 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-07-29 21:09:41 +0200 <exarkun> I got a few chapters into the Allen/Moronuki book and then lost steam
2022-07-29 21:10:06 +0200 <exarkun> I had better luck staying motivated by real world software and cis194
2022-07-29 21:11:25 +0200phma(~phma@host-67-44-209-50.hnremote.net) (Read error: Connection reset by peer)
2022-07-29 21:11:59 +0200 <EvanR> finding success and failure by moronuki is definitely geared toward specific problems not general theory
2022-07-29 21:12:48 +0200 <EvanR> for beginner from scratch stuff I liked A Gentle Introduction to Haskell (Version 98), still relevant I think
2022-07-29 21:13:15 +0200 <merijn> [Leary]: What makes you say it "duplicates" the list?
2022-07-29 21:14:15 +0200acidjnk(~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de)
2022-07-29 21:17:49 +0200phma(~phma@host-67-44-208-231.hnremote.net)
2022-07-29 21:19:09 +0200 <dolio> merijn: In the case of yours, it is likely comparable to collecting a reversed list instead of `f`, and then reversing it again at the end.
2022-07-29 21:20:38 +0200 <[Leary]> merijn: the fact that `go` traverses both `l` and `drop n l`. I'm aware that the latter is a fragment of the former and there's no actual duplication of memory, but it's still chasing down the pointers twice, right?
2022-07-29 21:20:56 +0200 <merijn> [Leary]: The 2nd time it'll be in cache already, though
2022-07-29 21:21:05 +0200 <merijn> And the real price of pointer chasing is cache misses
2022-07-29 21:21:24 +0200 <merijn> So if you assume the dereference happen shortly after each other, that is cheaper
2022-07-29 21:21:47 +0200 <merijn> Of course if your list is short it'll be in cache entirely after you do "length", so then you gain nothing
2022-07-29 21:21:53 +0200 <merijn> But if your list is giant, it matters
2022-07-29 21:21:59 +0200chomwitt(~chomwitt@2a02:587:dc00:5a00:3f62:1f2e:7818:a61c)
2022-07-29 21:22:23 +0200sandy_doo(~sandydoo@185.209.196.136) (Ping timeout: 252 seconds)
2022-07-29 21:22:33 +0200 <merijn> [Leary]: The other difference/benefit is that with this strategy (assuming you don't persist the list like here) the old list can be incrementally GCed
2022-07-29 21:22:56 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net)
2022-07-29 21:23:22 +0200 <merijn> Consider the case of "we're looking for 2 equal elements, N spaces apart" (or something like that), you will only have to keep 3 elements of the input list alive (vs the entire list, forced after length, then kept until the 2nd traversal)
2022-07-29 21:23:30 +0200 <merijn> s/3/N/
2022-07-29 21:24:12 +0200 <merijn> Of course in the case of split specifically, that doesn't help (since you plan to keep the full prefix anyway), but there's other traversals where it does matter)
2022-07-29 21:24:54 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 21:25:21 +0200 <merijn> At the very least I expect it to be "equivalent in the worst case, asymptotically better in the average"
2022-07-29 21:26:01 +0200vglfr(~vglfr@91.192.47.10) (Ping timeout: 272 seconds)
2022-07-29 21:26:31 +0200 <hasbae> I'm not a big fan of the Allen/Moronuki book as beginner. I prefer the Graham Hutton book, and the Richard Bird book
2022-07-29 21:26:53 +0200vglfr(~vglfr@91.192.47.10)
2022-07-29 21:28:09 +0200 <hasbae> as i *attempt* to learn Haskell, the more resources I have the better, as I need to see the same concept explained like five different ways before it starts to click. YMMV
2022-07-29 21:29:08 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-29 21:33:22 +0200vglfr(~vglfr@91.192.47.10) (Ping timeout: 245 seconds)
2022-07-29 21:34:28 +0200 <phma> I've written a small module. Would someone like to look at it? The module comment isn't appearing in Haddock, and I'd like to know if the module is well-written.
2022-07-29 21:34:37 +0200maroloccio(~marolocci@151.75.246.79) (Ping timeout: 245 seconds)
2022-07-29 21:34:54 +0200 <[Leary]> merijn: I accept you point about cache, or at least I don't know enough to refute it. To be clear, I'm not advocating for the naive versions with `length`; I do expect those to be worse, but my intuition is that a fold (fix'ed if necessary) should be better than this semi-duplication.
2022-07-29 21:37:00 +0200malte(~malte@mal.tc) (Ping timeout: 260 seconds)
2022-07-29 21:37:24 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection)
2022-07-29 21:37:42 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 21:37:57 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 21:42:07 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-07-29 21:42:24 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-07-29 21:42:41 +0200vglfr(~vglfr@91.192.47.10)
2022-07-29 21:45:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection)
2022-07-29 21:46:14 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-07-29 21:46:48 +0200 <sm> seen
2022-07-29 21:46:48 +0200 <sm> @where books hasbae ?
2022-07-29 21:46:48 +0200 <lambdabot> See `LYAH',`RWH',`YAHT',`SOE',`HR',`PIH',`TFwH',`wikibook',`PCPH',`HPFFP',`FSAF',`HftVB',`HTAC',`TwT',`FoP',`PFAD',`WYAH',`non-haskell-books'. Also <https://www.vex.net/~trebla/haskell/learn-sources.
2022-07-29 21:46:48 +0200 <lambdabot> html>,<https://www.extrema.is/articles/haskell-books>
2022-07-29 21:48:56 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-07-29 21:51:13 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-07-29 21:53:58 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds)
2022-07-29 21:54:27 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 21:55:35 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4)
2022-07-29 21:58:12 +0200 <hasbae> @TFwH
2022-07-29 21:58:12 +0200 <lambdabot> Unknown command, try @list
2022-07-29 21:58:19 +0200 <hasbae> @where TFwH
2022-07-29 21:58:19 +0200 <lambdabot> "Thinking Functionally with Haskell" by Richard Bird in 2014-10 at <https://www.cs.ox.ac.uk/publications/books/functional/>
2022-07-29 21:58:22 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-29 21:58:28 +0200 <hasbae> neat
2022-07-29 21:58:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:357f:5f50:899a:d5a4) (Remote host closed the connection)
2022-07-29 21:58:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-07-29 22:00:02 +0200vglfr(~vglfr@91.192.47.10) (Ping timeout: 245 seconds)
2022-07-29 22:00:18 +0200vglfr(~vglfr@91.192.47.10)
2022-07-29 22:00:39 +0200yauhsien(~yauhsien@61-231-30-230.dynamic-ip.hinet.net)
2022-07-29 22:00:50 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-07-29 22:02:24 +0200jargon(~jargon@184.101.188.251)
2022-07-29 22:02:37 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 22:05:09 +0200yauhsien(~yauhsien@61-231-30-230.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-07-29 22:06:05 +0200coco(~coco@212-51-146-199.fiber7.init7.net) (Quit: WeeChat 3.5)
2022-07-29 22:08:23 +0200 <koala_man> hmm. I tried to do some refactoring, added in some new language features, and now my source file has been compiling for 2.5 hours
2022-07-29 22:09:11 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com)
2022-07-29 22:11:45 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 22:12:40 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Ping timeout: 252 seconds)
2022-07-29 22:12:57 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 245 seconds)
2022-07-29 22:15:34 +0200 <Inst> gah, this is killing me
2022-07-29 22:25:14 +0200tstat(~user@user/tstat) (Remote host closed the connection)
2022-07-29 22:25:23 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 22:27:36 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection)
2022-07-29 22:27:53 +0200SamBellamy(~SamBellam@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-07-29 22:30:28 +0200 <dsal> koala_man: Woah. That's pretty hard core. And/or probably broken.
2022-07-29 22:30:32 +0200 <dsal> Unless you don't have a lot of RAM.
2022-07-29 22:31:32 +0200geekosaurwould have stopped it and restarted with some -v and/or -d… options by that point
2022-07-29 22:35:32 +0200 <geekosaur> -ddump-timings -dshow-passes and maybe -dverbose-core2core
2022-07-29 22:35:39 +0200 <koala_man> dsal: I have 24GB. I realized something was wrong after 60 seconds but I left it for five minutes, then went to lunch
2022-07-29 22:36:23 +0200 <sm> which ghc version and platform ?
2022-07-29 22:36:27 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-07-29 22:36:27 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-07-29 22:36:27 +0200wroathe(~wroathe@user/wroathe)
2022-07-29 22:37:25 +0200 <c_wraith> GHC usually tries pretty hard to fail with some message about what's going on if compilation is taking too log.
2022-07-29 22:37:26 +0200 <koala_man> 8.8.4 on Ubuntu. it was just an experiment and it's not blocking me
2022-07-29 22:37:37 +0200 <c_wraith> It's probably worth a ticket if it's not fixed in newer versions
2022-07-29 22:37:45 +0200 <c_wraith> too *long*
2022-07-29 22:38:15 +0200 <c_wraith> 8.8 is an odd choice, though. 8.10.7 is usually considered pretty solid.
2022-07-29 22:39:22 +0200 <geekosaur> 8.8 is probably what ubuntu packages still
2022-07-29 22:39:36 +0200 <geekosaur> I think they only just upgraded debian unstable
2022-07-29 22:39:54 +0200 <c_wraith> I'm sort of optimistic that 9.2.4 might finally be a production-ready 9.x version.
2022-07-29 22:40:11 +0200 <c_wraith> But we'll have to wait a couple weeks to see if anything comes up, I guess
2022-07-29 22:41:13 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-07-29 22:43:13 +0200 <sm> there have been quite a lot of compilation perf bugs fixed since then
2022-07-29 22:43:23 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-07-29 22:45:11 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-29 22:47:28 +0200 <koala_man> I'm trying to test in Docker's haskell:latest but Comcast has decided that I only get 4 Mbps today so it might be a while
2022-07-29 22:48:55 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-07-29 22:49:06 +0200Pickchea(~private@user/pickchea)
2022-07-29 22:51:10 +0200Guest3(~textual@64.145.79.82)
2022-07-29 22:57:42 +0200chomwitt(~chomwitt@2a02:587:dc00:5a00:3f62:1f2e:7818:a61c) (Ping timeout: 264 seconds)
2022-07-29 22:59:20 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-07-29 23:01:46 +0200Me-me(~me-me@user/me-me) (Quit: Disconnecting on purpose.)
2022-07-29 23:02:48 +0200Me-me(~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net)
2022-07-29 23:07:16 +0200 <mrianbloom> What libraries would you use to implement the concepts from "Scrap your boilerplate"?
2022-07-29 23:07:45 +0200 <mrianbloom> Let me add to that: with GADTs
2022-07-29 23:12:35 +0200alp_(~alp@user/alp)
2022-07-29 23:13:47 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 245 seconds)
2022-07-29 23:13:56 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-29 23:15:03 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-07-29 23:15:43 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-07-29 23:17:28 +0200 <dsal> recursion schemes?
2022-07-29 23:18:01 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-29 23:19:22 +0200cbdlt^(~cbdlt@50-242-35-142-static.hfc.comcastbusiness.net)
2022-07-29 23:29:59 +0200zebrag(~chris@user/zebrag) (Ping timeout: 252 seconds)
2022-07-29 23:30:25 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-29 23:31:33 +0200michalz(~michalz@185.246.204.75) (Remote host closed the connection)
2022-07-29 23:34:18 +0200acidjnk(~acidjnk@p200300d6e7058697f9c73f5459b42564.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-07-29 23:34:22 +0200acidjnk_new(~acidjnk@p200300d6e7058697153735ad212ee21c.dip0.t-ipconnect.de)
2022-07-29 23:35:38 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-29 23:37:03 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-29 23:37:10 +0200JannisO(~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 260 seconds)
2022-07-29 23:40:42 +0200Guest3(~textual@64.145.79.82) (Quit: Textual IRC Client: www.textualapp.com)
2022-07-29 23:46:07 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2022-07-29 23:46:17 +0200 <mrianbloom> I'm assuming that the names from the paper have changed a bit and I'm curious what it sort of evolved into.
2022-07-29 23:46:38 +0200theseb(~cs@47.220.214.54) (Remote host closed the connection)
2022-07-29 23:47:07 +0200 <mrianbloom> Like for example the typeclass Term, is that usually implemented as Data?
2022-07-29 23:49:36 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2022-07-29 23:49:37 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2022-07-29 23:52:38 +0200maroloccio(~marolocci@151.75.246.79)
2022-07-29 23:56:04 +0200 <koala_man> in Docker haskell:latest, 9.2.3, ghc appears stuck on "*** Renamer/typechecker [ShellCheck.Parser]". Doesn't matter though, I don't think I was getting anywhere with it