2023/01/22

2023-01-22 00:00:09 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-01-22 00:01:33 +0100_xor(~xor@74.215.182.83) (Ping timeout: 260 seconds)
2023-01-22 00:03:09 +0100_xor(~xor@74.215.182.83)
2023-01-22 00:03:43 +0100mechap1(~mechap@user/mechap)
2023-01-22 00:06:37 +0100mechap(~mechap@user/mechap) (Ping timeout: 252 seconds)
2023-01-22 00:07:44 +0100_xor(~xor@74.215.182.83) (Ping timeout: 260 seconds)
2023-01-22 00:09:28 +0100_xor(~xor@74.215.182.83)
2023-01-22 00:14:39 +0100jbalint(~jbalint@2600:6c44:117f:e98a:816a:9488:fb1:7b7)
2023-01-22 00:17:24 +0100gurkenglas(~gurkengla@dynamic-046-114-176-241.46.114.pool.telefonica.de) (Ping timeout: 256 seconds)
2023-01-22 00:19:04 +0100tremon(~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2023-01-22 00:22:25 +0100hex_(~hex@cpc99326-croy26-2-0-cust216.19-2.cable.virginm.net)
2023-01-22 00:23:55 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2023-01-22 00:24:22 +0100Xeroine_(~Xeroine@user/xeroine) (Ping timeout: 272 seconds)
2023-01-22 00:28:29 +0100Xeroine(~Xeroine@user/xeroine)
2023-01-22 00:29:35 +0100 <voidzero> is there a quick to capitalize the first letter of a sentence of type Data.Text?
2023-01-22 00:30:24 +0100 <voidzero> afaik you can't use the `(c:cs) = T.upper c : cs` trick
2023-01-22 00:31:00 +0100 <voidzero> I could use T.unpack and T.pack
2023-01-22 00:33:18 +0100 <voidzero> but idk
2023-01-22 00:34:31 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze)
2023-01-22 00:35:16 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2023-01-22 00:36:32 +0100 <EvanR> unwords . capitalize . words?
2023-01-22 00:37:21 +0100 <EvanR> there is probably a lens for momentarily viewing a Text as a cons
2023-01-22 00:38:10 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-01-22 00:38:12 +0100 <voidzero> Lens is beyond my skill level atm. I just need the very first word capitalized
2023-01-22 00:38:25 +0100 <voidzero> although, honestly, for my usecase I could just use String
2023-01-22 00:39:01 +0100 <voidzero> just curious how people would do this
2023-01-22 00:39:02 +0100 <hpc> might as well get in the habit of using Text, imo
2023-01-22 00:39:11 +0100 <voidzero> yeah that's what my books say, too
2023-01-22 00:40:29 +0100 <voidzero> so right now I have a var 'event' that contains a Text string, and to do this I am doing this: where event' = T.pack (toUpper (T.head event) : tail (T.unpack event))
2023-01-22 00:40:59 +0100 <voidzero> it works but meh
2023-01-22 00:41:32 +0100 <voidzero> meh unless experienced ppl say this is fine
2023-01-22 00:42:44 +0100pagnol(~user@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 272 seconds)
2023-01-22 00:43:02 +0100 <voidzero> it's a simple tool that lets me enter an event on the console using TIO.getLine and generates a few sentences that contain this event.
2023-01-22 00:43:12 +0100 <voidzero> event being a scheduled event IRL
2023-01-22 00:43:47 +0100 <voidzero> making it easier to tweet these text, scheduled, using tweetdeck
2023-01-22 00:43:55 +0100 <voidzero> texts*
2023-01-22 00:45:04 +0100 <voidzero> "Tomorrow at 11am: " <> event -- is one of them (requiring the lower cased version, and -- event starts in 10 minutes, be there! -- as the other one. I want the second one to start capitalized.
2023-01-22 00:45:33 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-01-22 00:47:14 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-01-22 00:47:23 +0100 <sm> that seems to be a missing feature at text > Case conversion
2023-01-22 00:47:23 +0100 <sm> https://hackage.haskell.org/package/text-2.0.1/docs/Data-Text.html#g:9
2023-01-22 00:48:45 +0100 <voidzero> yeah. T.head has T.Text -> Char.
2023-01-22 00:48:57 +0100 <sm> I would be tempted to T.pack . GHC.Utils.Misc.capitalise . T.unpack
2023-01-22 00:49:11 +0100 <voidzero> T.toUpper has Text -> Text, but, that'd capitalize everything
2023-01-22 00:49:22 +0100 <voidzero> aye so that's similar to my way of doing it
2023-01-22 00:50:58 +0100 <sm> ah, right. Yes that's fine in my book
2023-01-22 00:52:32 +0100 <voidzero> cool cool
2023-01-22 00:53:39 +0100 <sm> get your console tweeter working, it'll be an easy localised optimisation in future when OpenAmaBoogler Inc is running it a billion times a second
2023-01-22 00:54:18 +0100 <voidzero> haha well first we gotta see what Twitter's plans are re API usage. I think they want to get rid of all these options
2023-01-22 00:54:48 +0100 <voidzero> it ain't what it used to be. Even before Musk it wasn't what it used to be.
2023-01-22 00:55:09 +0100 <sm> I think so too, I hope your work can be reused for fediverse
2023-01-22 00:58:35 +0100smchecks, finds only https://hackage.haskell.org/package/Hastodon 2018
2023-01-22 00:59:00 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 01:03:38 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2023-01-22 01:12:59 +0100infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-01-22 01:14:04 +0100acidjnk(~acidjnk@p200300d6e715c424c4be665c85703a1b.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-01-22 01:16:10 +0100infinity0(~infinity0@pwned.gg)
2023-01-22 01:18:49 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2023-01-22 01:20:25 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-01-22 01:25:24 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-01-22 01:25:57 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.7.1)
2023-01-22 01:26:12 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow)
2023-01-22 01:36:22 +0100infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-01-22 01:39:35 +0100infinity0(~infinity0@pwned.gg)
2023-01-22 01:45:00 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-01-22 01:45:16 +0100mizlan(~mizlan@169.150.203.65)
2023-01-22 01:46:10 +0100P1RATEZ(piratez@user/p1ratez) (Remote host closed the connection)
2023-01-22 01:47:57 +0100img(~img@user/img)
2023-01-22 01:49:49 +0100mizlan(~mizlan@169.150.203.65) (Ping timeout: 260 seconds)
2023-01-22 01:50:40 +0100mizlan(~mizlan@169.150.203.64)
2023-01-22 02:04:54 +0100 <dsal> > "some words thats should be capped" & worded . _head %~ toUpper
2023-01-22 02:04:56 +0100 <lambdabot> "Some Words Thats Should Be Capped"
2023-01-22 02:06:38 +0100 <geekosaur> but is that Text?
2023-01-22 02:08:20 +0100ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Ping timeout: 255 seconds)
2023-01-22 02:10:39 +0100CiaoSen(~Jura@p200300c9572d4e002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-01-22 02:10:51 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2023-01-22 02:10:56 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-01-22 02:11:10 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-01-22 02:13:54 +0100mizlan(~mizlan@169.150.203.64) (Read error: Connection reset by peer)
2023-01-22 02:15:05 +0100CiaoSen(~Jura@p200300c9572d4e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-01-22 02:17:02 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-01-22 02:19:13 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:71a5:b1e9:85a5:f360)
2023-01-22 02:19:45 +0100mizlan(~mizlan@169.150.203.59)
2023-01-22 02:21:35 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8)
2023-01-22 02:28:50 +0100mizlan_(~mizlan@89.46.114.182)
2023-01-22 02:29:46 +0100mizlan(~mizlan@169.150.203.59) (Ping timeout: 272 seconds)
2023-01-22 02:33:34 +0100mizlan_(~mizlan@89.46.114.182) (Ping timeout: 272 seconds)
2023-01-22 02:36:57 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-01-22 02:43:02 +0100unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Ping timeout: 256 seconds)
2023-01-22 02:44:18 +0100infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-01-22 02:49:16 +0100mizlan(~mizlan@169.150.203.59)
2023-01-22 02:50:30 +0100infinity0(~infinity0@pwned.gg)
2023-01-22 02:53:03 +0100 <ddellacosta> how do I actually use/install the tasty test runner described here? https://github.com/UnkindPartition/tasty#runtime I have tasty installed as a dependency in my test section of my cabal config, but I'm missing something obvious I think. I can run tests with `cabal test` and that works, but it's kind of minimal
2023-01-22 02:53:17 +0100razetime(~Thunderbi@117.193.4.9)
2023-01-22 02:53:50 +0100mizlan(~mizlan@169.150.203.59) (Ping timeout: 272 seconds)
2023-01-22 02:57:23 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2023-01-22 02:58:14 +0100 <Axman6> ddellacosta: have you put anything in the Main.hs (or Test or whatever) to run the tests? It's bee a while since I've used tasty to just looking things up for you now
2023-01-22 02:58:59 +0100 <Axman6> I believe I've used tasty-discover before, which takes some of the pain of maintaining the plumbing of your testsuite away
2023-01-22 02:59:16 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 02:59:21 +0100 <ddellacosta> Axman6: yes, I can run them with cabal test
2023-01-22 02:59:34 +0100 <Axman6> ah ok - so what are you missing?
2023-01-22 03:01:04 +0100 <ddellacosta> the doc I linked to implies there is a command-line test runner packaged with the tasty package by default, I'm just curious if I'm missing something because I don't have that
2023-01-22 03:01:13 +0100 <ddellacosta> as far as I can tell
2023-01-22 03:02:00 +0100 <Axman6> ah, yeah you can get cabal to pass arguments to the test executable - it will have been compiled somewhere and cabal is running it. one sec I'll find the args
2023-01-22 03:03:22 +0100 <Axman6> cabal test --help mentions --test-options and --test-option which let you pass things to the executable. this is particularly for quickcheck tests which tell you the seed it used so you can re-run previously failing tests
2023-01-22 03:03:38 +0100elevenkb(~elevenkb@105.224.34.126)
2023-01-22 03:03:40 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2023-01-22 03:03:40 +0100 <ddellacosta> huh okay, I guess I misunderstood because I suppose that's what I'm already doing, just without those args. Thanks Axman6
2023-01-22 03:03:57 +0100gehmehgeh(~user@user/gehmehgeh)
2023-01-22 03:05:02 +0100 <Axman6> I have to look it up every time I start a new project
2023-01-22 03:05:17 +0100_xor(~xor@74.215.182.83) (Quit: brb)
2023-01-22 03:05:50 +0100 <Axman6> I would love it if it had something more like stack's stack exec -- --args-for --the-executable
2023-01-22 03:06:18 +0100 <ddellacosta> related: do folks use anything to look for changes and re-run tests, other than just e.g. watch in linux or whatever?
2023-01-22 03:06:37 +0100 <ddellacosta> I guess stack includes this by default
2023-01-22 03:07:23 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-01-22 03:07:25 +0100 <Axman6> I think you can use ghcid to do that
2023-01-22 03:07:36 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-01-22 03:07:40 +0100 <Axman6> not sure if HLS can do something similar inline
2023-01-22 03:08:18 +0100 <ddellacosta> oh good points both--will take a look and see what I can figure out. Thanks for all the help Axman6
2023-01-22 03:09:20 +0100 <Axman6> All good, goos luck
2023-01-22 03:09:23 +0100 <Axman6> good*
2023-01-22 03:13:28 +0100elevenkb(~elevenkb@105.224.34.126) (Ping timeout: 260 seconds)
2023-01-22 03:13:35 +0100theproffesor(~theproffe@user/theproffesor) (Ping timeout: 260 seconds)
2023-01-22 03:14:54 +0100_xor(~xor@74.215.182.83)
2023-01-22 03:16:09 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds)
2023-01-22 03:18:36 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2023-01-22 03:18:57 +0100gehmehgeh(~user@user/gehmehgeh)
2023-01-22 03:20:16 +0100theproffesor(~theproffe@user/theproffesor)
2023-01-22 03:25:54 +0100 <sm> yeah, stack test --file-watch --fast or some variant of stack exec -- ghci -T ... are both good
2023-01-22 03:26:08 +0100 <sm> * yeah, stack test --file-watch --fast or some variant of stack exec -- ghcid -T ... are both good
2023-01-22 03:26:36 +0100 <sm> as is watchexec -- CMD
2023-01-22 03:30:10 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-01-22 03:31:57 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-01-22 03:31:57 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-01-22 03:31:57 +0100wroathe(~wroathe@user/wroathe)
2023-01-22 03:32:08 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-01-22 03:33:44 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2023-01-22 03:34:17 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-01-22 03:37:26 +0100barzo(~hd@31.223.41.44) (Ping timeout: 256 seconds)
2023-01-22 03:54:43 +0100 <ddellacosta> watchexec looks nice
2023-01-22 03:55:24 +0100 <ddellacosta> yeah this is trivially easy with ghcid, `ghcid -c cabal repl my-test-suite -T Main.main`
2023-01-22 04:04:58 +0100shon(~shon@gateway/tor-sasl/shon)
2023-01-22 04:11:37 +0100thongpv(~thongpv87@2001:ee0:5577:f0d0:73e4:4002:4782:e47b) (Remote host closed the connection)
2023-01-22 04:16:10 +0100iteratee(~kyle@162.218.222.107) (Read error: Connection reset by peer)
2023-01-22 04:16:27 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2023-01-22 04:17:13 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Client Quit)
2023-01-22 04:17:36 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2023-01-22 04:23:55 +0100oldfashionedcowusername235
2023-01-22 04:24:04 +0100username235oldfashionedcow
2023-01-22 04:26:09 +0100iteratee(~kyle@162.218.222.107)
2023-01-22 04:28:54 +0100thongpv(~thongpv87@2001:ee0:5577:f0d0:b436:353d:3a0c:35f3)
2023-01-22 04:29:36 +0100oldfashionedcowburp
2023-01-22 04:29:59 +0100burpoldfashionedcow
2023-01-22 04:34:00 +0100accord(uid568320@id-568320.hampstead.irccloud.com)
2023-01-22 04:35:09 +0100hex_(~hex@cpc99326-croy26-2-0-cust216.19-2.cable.virginm.net) (Quit: leaving)
2023-01-22 04:37:50 +0100kimjetwav(~user@2607:fea8:235e:b600:2d68:2d7e:6ecb:730c)
2023-01-22 04:40:36 +0100justsomeguy(~justsomeg@user/justsomeguy)
2023-01-22 04:41:39 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat)
2023-01-22 04:42:41 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::)
2023-01-22 04:47:41 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-01-22 04:47:41 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-01-22 04:47:41 +0100finn_elijaFinnElija
2023-01-22 04:51:14 +0100td_(~td@83.135.9.44) (Ping timeout: 260 seconds)
2023-01-22 04:52:51 +0100td_(~td@83.135.9.13)
2023-01-22 04:54:32 +0100ddellacosta(~ddellacos@143.244.47.100) (Ping timeout: 265 seconds)
2023-01-22 04:58:28 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 256 seconds)
2023-01-22 04:58:33 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-01-22 04:59:11 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-01-22 04:59:43 +0100razetime(~Thunderbi@117.193.4.9) (Quit: See You Space Cowboy)
2023-01-22 05:00:47 +0100mizlan(~mizlan@169.150.203.60)
2023-01-22 05:05:14 +0100mizlan(~mizlan@169.150.203.60) (Ping timeout: 260 seconds)
2023-01-22 05:05:35 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-01-22 05:06:05 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net)
2023-01-22 05:06:30 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-01-22 05:07:09 +0100abhixec(~abhinav@c-67-169-139-16.hsd1.ca.comcast.net)
2023-01-22 05:07:49 +0100 <Axman6> > let h' *^ c = (h' * 16777619) + c in a ^* x ^* y ^* z :: Expr
2023-01-22 05:07:52 +0100 <lambdabot> error:
2023-01-22 05:07:52 +0100 <lambdabot> • Variable not in scope: (^*) :: Expr -> Expr -> t1
2023-01-22 05:07:52 +0100 <lambdabot> • Perhaps you meant one of these:
2023-01-22 05:07:54 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-01-22 05:08:03 +0100 <Axman6> > let h' ^* c = (h' * 16777619) + c in a ^* x ^* y ^* z :: Expr
2023-01-22 05:08:05 +0100 <lambdabot> ((a * 16777619 + x) * 16777619 + y) * 16777619 + z
2023-01-22 05:08:46 +0100 <Axman6> > 16777619^2
2023-01-22 05:08:47 +0100 <lambdabot> 281488499309161
2023-01-22 05:08:55 +0100 <Axman6> > 16777619^2 :: Int
2023-01-22 05:08:57 +0100 <lambdabot> 281488499309161
2023-01-22 05:09:43 +0100 <EvanR> > 2^24
2023-01-22 05:09:45 +0100 <lambdabot> 16777216
2023-01-22 05:10:33 +0100 <Axman6> > 16777619^3 :: Int
2023-01-22 05:10:35 +0100 <lambdabot> 340311421221253963
2023-01-22 05:10:40 +0100 <Axman6> > 16777619^3 :: Integer
2023-01-22 05:10:42 +0100 <lambdabot> 4722706794290866467659
2023-01-22 05:11:08 +0100 <EvanR> > 2^72
2023-01-22 05:11:10 +0100 <lambdabot> 4722366482869645213696
2023-01-22 05:12:11 +0100 <Axman6> ah, interesting - the next thing I was going to do was look at the bits. thanks for that
2023-01-22 05:14:20 +0100 <Axman6> @check \x -> `shiftL` 24 == x * 16777216
2023-01-22 05:14:20 +0100 <lambdabot> <unknown>.hs:1:7:Parse error: `
2023-01-22 05:14:29 +0100 <Axman6> @check \x -> x `shiftL` 24 == x * 16777216
2023-01-22 05:14:30 +0100 <lambdabot> +++ OK, passed 100 tests.
2023-01-22 05:17:51 +0100mizlan(~mizlan@89.46.114.17)
2023-01-22 05:18:32 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2023-01-22 05:18:51 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-01-22 05:22:16 +0100mizlan(~mizlan@89.46.114.17) (Ping timeout: 256 seconds)
2023-01-22 05:27:29 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-01-22 05:28:15 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2023-01-22 05:30:22 +0100 <Inst> what's wrong with the assertion: "A while loop is a recursion scheme"?
2023-01-22 05:30:50 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 05:31:03 +0100 <Inst> also, just curious, has scoping types ever been discussed?
2023-01-22 05:32:59 +0100 <Inst> i.e, right now, we can only data / type / newtype at the top level
2023-01-22 05:37:13 +0100mizlan(~mizlan@169.150.203.45)
2023-01-22 05:38:35 +0100xff0x_(~xff0x@2405:6580:b080:900:5aaf:7af0:29ef:e5fa) (Ping timeout: 260 seconds)
2023-01-22 05:40:30 +0100xff0x_(~xff0x@178.255.149.135)
2023-01-22 05:41:51 +0100mizlan(~mizlan@169.150.203.45) (Ping timeout: 260 seconds)
2023-01-22 05:49:47 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2023-01-22 05:49:52 +0100 <anatta> why can only types with kind * -> * be members of Foldable?
2023-01-22 05:49:55 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2023-01-22 05:50:08 +0100 <anatta> it doesn't make sense to me
2023-01-22 05:50:40 +0100 <anatta> I want to be able to fold everything :@
2023-01-22 05:54:20 +0100xff0x_(~xff0x@178.255.149.135) (Ping timeout: 272 seconds)
2023-01-22 05:55:45 +0100xff0x_(~xff0x@2405:6580:b080:900:21ca:a6c1:60fa:34e7)
2023-01-22 05:56:14 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
2023-01-22 05:56:36 +0100 <Axman6> anatta: how would you tell the compiler that you want to fold over the first parameter of an Either?
2023-01-22 05:56:58 +0100 <Axman6> this is also basically a problem that lens solves
2023-01-22 05:59:03 +0100 <anatta> Axman6: To be fair, "I want to be able to fold everything" was more a "I want to be allowed to define Foldable instances for everything I think I *can* write a reasonable Foldable instance for"
2023-01-22 06:00:25 +0100 <anatta> I saw something about lens when I googled, but unfortunately I know nothing about optics
2023-01-22 06:00:47 +0100 <anatta> and it looks difficult at a glance so I haven't really looked into it in depth
2023-01-22 06:03:58 +0100 <Axman6> they literally exist to solve the problem you have
2023-01-22 06:04:28 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2023-01-22 06:05:11 +0100 <Axman6> > sumOf (traverse . _1) $ zip [1..10] "Hello, world!"
2023-01-22 06:05:13 +0100 <lambdabot> 55
2023-01-22 06:05:47 +0100 <Axman6> > zip [1..10] "Hello, world!" ^.. traverse
2023-01-22 06:05:49 +0100 <lambdabot> [(1,'H'),(2,'e'),(3,'l'),(4,'l'),(5,'o'),(6,','),(7,' '),(8,'w'),(9,'o'),(10...
2023-01-22 06:05:54 +0100 <Axman6> > zip [1..10] "Hello, world!" ^.. traverse . _1
2023-01-22 06:05:56 +0100 <lambdabot> [1,2,3,4,5,6,7,8,9,10]
2023-01-22 06:06:33 +0100mizlan(~mizlan@89.46.114.143)
2023-01-22 06:09:10 +0100 <anatta> so you can do like
2023-01-22 06:09:24 +0100 <anatta> @let newtype IList = IL [Int] deriving (Show, Eq)
2023-01-22 06:09:26 +0100 <lambdabot> Defined.
2023-01-22 06:09:38 +0100 <Axman6> > ("Hello", ("there", ["are","several"]),Left "Strings", "in", "here") & partsOf template %~ (reverse :: [String] -> [String])
2023-01-22 06:09:39 +0100 <lambdabot> ("here",("in",["Strings","several"]),Left "are","there","Hello")
2023-01-22 06:09:45 +0100 <anatta> > (IL [1..10]) ^.. traverse
2023-01-22 06:09:47 +0100 <lambdabot> error:
2023-01-22 06:09:47 +0100 <lambdabot> • Couldn't match type ‘t0 b’ with ‘IList’
2023-01-22 06:09:47 +0100 <lambdabot> Expected type: Getting (Endo [b]) IList b
2023-01-22 06:09:48 +0100 <Axman6> > ("Hello", ("there", ["are","several"]),Left "Strings", "in", "here") & partsOf template %~ (reverse :: String -> String)
2023-01-22 06:09:51 +0100 <lambdabot> ("erehn",("isgni",["rtS","lareves"]),Left "eraereh","to","lleH")
2023-01-22 06:09:58 +0100 <Axman6> Lens is crazy powerful
2023-01-22 06:10:30 +0100 <Axman6> no, you'd need an Iso between IL and [Int]
2023-01-22 06:10:37 +0100 <anatta> yeah, but crazy complicated as well :(
2023-01-22 06:10:52 +0100 <anatta> I see
2023-01-22 06:10:57 +0100 <Axman6> it's really not, once you understand the pieces.
2023-01-22 06:11:13 +0100 <Axman6> (that particular example is complicated by the use of Data.Data, not lens)
2023-01-22 06:11:26 +0100mizlan(~mizlan@89.46.114.143) (Ping timeout: 272 seconds)
2023-01-22 06:11:53 +0100 <anatta> to be fair, I thought parser combinators were impossible to understand before learning them as well
2023-01-22 06:12:13 +0100 <anatta> so I guess it's possible that I'll be able to use lenses as well some day
2023-01-22 06:12:52 +0100 <anatta> or lens, if there is a difference between lenses and lens
2023-01-22 06:12:53 +0100 <Axman6> they're quite a simple idea, and the implementation is actually quite understandable if you sit down and work though it a bit
2023-01-22 06:13:46 +0100 <anatta> if I were to do so, what version of lenses is considered the better one nowadays?
2023-01-22 06:15:03 +0100 <energizer> what is a killer app of lenses?
2023-01-22 06:15:05 +0100 <Axman6> they're all just functions of the form (a -> f b) -> (s -> f t), so a concrete example: fstL :: Functor f => (a -> f b) -> ((a,c) -> f (b,c)); fstL aToFb (a,c) -> (\b -> (b,c)) <$> f a
2023-01-22 06:15:11 +0100 <Axman6> energizer: all apps
2023-01-22 06:15:43 +0100haritz(~hrtz@user/haritz) (Read error: Connection reset by peer)
2023-01-22 06:16:01 +0100 <Axman6> I wrote a program that converted GeoJSON into CZML (a similar JSON based geospatial format) using lens, and it was only 20 or so lines and ran in constant memory
2023-01-22 06:16:30 +0100 <Axman6> lens is a DSL for talking about data, extracting, modifying and transforming it
2023-01-22 06:17:03 +0100 <anatta> when I said "what version" I meant that I've heard that there are profunctor and some other kind(?)
2023-01-22 06:17:17 +0100 <anatta> or I think I have heard
2023-01-22 06:17:21 +0100justsomeguy(~justsomeg@user/justsomeguy)
2023-01-22 06:17:45 +0100 <anatta> as I said I haven't really read a lot about optics in general, except to see that they look scary :p
2023-01-22 06:18:11 +0100 <Axman6> I still like the lens library because I know it inside out, but optics can provide a much nicer beginner experience at the cost of needing to have optics as a dependency when defining your own optics
2023-01-22 06:18:28 +0100 <anatta> Van Laarhoven was the other one
2023-01-22 06:19:23 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2023-01-22 06:19:51 +0100 <Axman6> yes, that's what lens uses. there's (probably?) some advangages to using profunctor optics over van laarhoven, but most of lens can be implemented using things defined in base and you don't need to rely on the lens library at all
2023-01-22 06:20:15 +0100gehmehgeh(~user@user/gehmehgeh)
2023-01-22 06:20:18 +0100 <anatta> I see
2023-01-22 06:20:36 +0100haritz(~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
2023-01-22 06:20:36 +0100haritz(~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
2023-01-22 06:20:36 +0100haritz(~hrtz@user/haritz)
2023-01-22 06:21:04 +0100 <anatta> I generally try a bit of both (using a library and implementing on your own) - I like to have working examples before experimenting
2023-01-22 06:21:49 +0100 <anatta> so maybe I'll try using the library until I see how stuff are supposed to work, and then I can start implementing larger and larger parts on my own
2023-01-22 06:21:55 +0100 <Axman6> optics give you a language for talking about sub parts of data, a Lens a b lets you "focus" on a b within an a - this focusing allows you to extract that b from the a, replace that b within the a, or apply a function to the b within the a to get a new a
2023-01-22 06:22:34 +0100 <anatta> I had mostly heard about it in the context of "records are unwieldy in Haskell" :p
2023-01-22 06:22:42 +0100 <Axman6> optics can be composed, so if you have Lens a b and Lens b c then you can create a Lens a c that lets you focus on a c with the a (where that c was within a b that was within the a)
2023-01-22 06:23:01 +0100 <Axman6> well, it's useful for that, but it's also much much more than that
2023-01-22 06:23:14 +0100 <Axman6> you can do jq like things on JSON data for example
2023-01-22 06:23:59 +0100 <anatta> it sounds really useful in general
2023-01-22 06:24:18 +0100 <Axman6> the example I showed above let me say "find all the strings anywhere in this arbitrary data, and let me deal with them as a collection, regardless of the shape of that original data"
2023-01-22 06:24:21 +0100 <Axman6> it us
2023-01-22 06:24:23 +0100 <Axman6> is*
2023-01-22 06:24:37 +0100 <anatta> that's what the usecase I had for wanting to fold through a custom datatype :p
2023-01-22 06:25:03 +0100 <anatta> I wanted to find a certain type of leaf in a tree
2023-01-22 06:25:57 +0100 <anatta> (I have an AST of expressions with constants and variables, and I wanted to extract all variables)
2023-01-22 06:27:19 +0100 <Axman6> sounds like a Data.Data sort of thing
2023-01-22 06:29:45 +0100 <anatta> in what sense? I barely have encountered Data.Data (I ran into it when making a quasiquoter, but only tangentially)
2023-01-22 06:30:13 +0100 <[Leary]> anatta: You might just want `data YourAST c a = Const c | Var a | ... deriving (..., Foldable)`.
2023-01-22 06:30:46 +0100 <anatta> [Leary]: Problem is that my type has kind *
2023-01-22 06:30:59 +0100 <[Leary]> It doesn't need to.
2023-01-22 06:33:13 +0100 <anatta> to be fair, I guess I could add a type variable just to be able to derive Foldable
2023-01-22 06:34:17 +0100 <Axman6> You'll be using Tree that Grow in no time
2023-01-22 06:34:55 +0100mizlan(~mizlan@89.46.114.182)
2023-01-22 06:35:49 +0100 <anatta> what is that?
2023-01-22 06:36:02 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.7.1)
2023-01-22 06:39:35 +0100 <anatta> I probably should go to bed though. But my conclusion is that I probably should start reading about optics/lenses soon, but that I might get away with just adding type parameters to the tree in this particular case.
2023-01-22 06:39:44 +0100 <anatta> thanks for the advice, and good night =)
2023-01-22 06:39:56 +0100mizlan(~mizlan@89.46.114.182) (Ping timeout: 272 seconds)
2023-01-22 06:39:56 +0100 <[Leary]> anatta: More polymorphic types are usually more useful, and that especially holds when the type parameter gives you all of Functor, Foldable, Traversable, Applicative and Monad. It doesn't really matter that you only /intend/ to use it at one type. The polymorphism also means you can give your operations more restrictive type signatures that prevent you from writing stupid bugs.
2023-01-22 06:40:29 +0100 <anatta> that makes a lot of sense
2023-01-22 06:40:55 +0100 <Axman6> Trees that Grow: https://www.jucs.org/jucs_23_1/trees_that_grow/jucs_23_01_0042_0062_najd.pdf
2023-01-22 06:41:11 +0100 <Axman6> I'm sure there's a talk about it from SPJ, but I can't find it
2023-01-22 06:41:16 +0100 <[Leary]> E.g. it's much easier to write `mapT :: forall a b. (a -> b) -> T a -> T b` correctly than `mapT :: forall a. (a -> a) -> T a -> T a` or `mapT :: (Foo -> Foo) -> T -> T`.
2023-01-22 06:43:12 +0100 <Axman6> how good is parametricity
2023-01-22 06:50:24 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-01-22 06:51:24 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2023-01-22 07:04:54 +0100mizlan(~mizlan@169.150.203.65)
2023-01-22 07:09:07 +0100shon(~shon@gateway/tor-sasl/shon) (Quit: WeeChat 3.8)
2023-01-22 07:09:22 +0100mizlan(~mizlan@169.150.203.65) (Ping timeout: 256 seconds)
2023-01-22 07:19:26 +0100wroathe(~wroathe@user/wroathe) (Quit: leaving)
2023-01-22 07:20:10 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
2023-01-22 07:21:06 +0100finsternis(~X@23.226.237.192) (Ping timeout: 272 seconds)
2023-01-22 07:21:16 +0100heartburn(~gass@2a00:d880:3:1::b1e4:b241) (Ping timeout: 256 seconds)
2023-01-22 07:21:42 +0100finsternis(~X@23.226.237.192)
2023-01-22 07:21:58 +0100heartburn(~gass@2a00:d880:3:1::b1e4:b241)
2023-01-22 07:25:59 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-01-22 07:26:56 +0100abhixec(~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2023-01-22 07:33:26 +0100mizlan(~mizlan@89.46.114.82)
2023-01-22 07:33:35 +0100razetime(~Thunderbi@117.193.4.9)
2023-01-22 07:37:42 +0100mizlan(~mizlan@89.46.114.82) (Ping timeout: 256 seconds)
2023-01-22 07:38:17 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-01-22 07:39:07 +0100Inst_(~Inst@2601:6c4:4081:54f0:d621:5cdd:9051:c240)
2023-01-22 07:39:50 +0100razetime(~Thunderbi@117.193.4.9) (Quit: See You Space Cowboy)
2023-01-22 07:42:14 +0100Inst(~Inst@2601:6c4:4081:54f0:7987:1b39:7203:fc61) (Ping timeout: 256 seconds)
2023-01-22 07:54:31 +0100accord(uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-01-22 07:59:21 +0100trev(~trev@user/trev)
2023-01-22 08:02:29 +0100mizlan(~mizlan@169.150.203.59)
2023-01-22 08:05:01 +0100biberu\(~biberu@user/biberu)
2023-01-22 08:05:34 +0100Sgeo_(~Sgeo@user/sgeo)
2023-01-22 08:05:52 +0100razetime(~Thunderbi@117.193.4.9)
2023-01-22 08:06:12 +0100trev_(~trev@109-252-35-99.nat.spd-mgts.ru)
2023-01-22 08:06:18 +0100razetime(~Thunderbi@117.193.4.9) (Client Quit)
2023-01-22 08:06:21 +0100dgb83(~dgb@astra4961.startdedicated.net)
2023-01-22 08:06:43 +0100ell8(~ellie@user/ellie)
2023-01-22 08:06:45 +0100shapr`(~user@68.54.166.125)
2023-01-22 08:06:48 +0100monochrm(trebla@216.138.220.146)
2023-01-22 08:07:02 +0100remexre_(~remexre@mail.sift.net)
2023-01-22 08:07:14 +0100mizlan(~mizlan@169.150.203.59) (Ping timeout: 260 seconds)
2023-01-22 08:07:30 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2023-01-22 08:07:31 +0100danso_o(danso@danso.ca)
2023-01-22 08:07:44 +0100kraftwerk28_(~kraftwerk@178.62.210.83)
2023-01-22 08:07:44 +0100Philonous_(~Philonous@user/philonous)
2023-01-22 08:07:51 +0100koz_(~koz@121.99.240.58)
2023-01-22 08:08:10 +0100__xor(~xor@74.215.182.83)
2023-01-22 08:08:29 +0100urdh_(~urdh@user/urdh)
2023-01-22 08:08:40 +0100leeb-(~leeb@tk2-243-31079.vs.sakura.ne.jp)
2023-01-22 08:08:43 +0100avpx_(~nick@ec2-54-214-223-1.us-west-2.compute.amazonaws.com)
2023-01-22 08:08:56 +0100kimiamania8(~65804703@user/kimiamania)
2023-01-22 08:09:08 +0100dextaa5(~DV@user/dextaa)
2023-01-22 08:09:12 +0100hololeap_(~quassel@user/hololeap)
2023-01-22 08:09:15 +0100kitzman(~kitzman@user/dekenevs)
2023-01-22 08:09:26 +0100lbseale_(~quassel@user/ep1ctetus)
2023-01-22 08:09:34 +0100shriekingnoise_(~shrieking@186.137.175.87)
2023-01-22 08:09:45 +0100micro_(~micro@user/micro)
2023-01-22 08:09:49 +0100Patternm1ster(~georg@li1192-118.members.linode.com)
2023-01-22 08:10:02 +0100aweinsto1k(~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com)
2023-01-22 08:10:04 +0100kjak_(~kjak@pool-72-66-75-40.washdc.fios.verizon.net)
2023-01-22 08:10:07 +0100_koolazer(~koo@user/koolazer)
2023-01-22 08:10:09 +0100ridcully_(~ridcully@p508acd69.dip0.t-ipconnect.de)
2023-01-22 08:10:13 +0100td__(~td@83.135.9.13)
2023-01-22 08:10:26 +0100gnyeki_(~gnyeki@user/gnyeki)
2023-01-22 08:10:29 +0100ezzieygu1wuf(~Unknown@user/ezzieyguywuf)
2023-01-22 08:10:35 +0100Momentum_(momentum@tilde.team)
2023-01-22 08:10:42 +0100pi1(~pi@173.209.64.74)
2023-01-22 08:10:47 +0100opqdonut_(opqdonut@pseudo.fixme.fi)
2023-01-22 08:10:57 +0100johnw(~johnw@2600:1700:cf00:db0:217d:20b2:d1d1:18a9)
2023-01-22 08:11:14 +0100root(~m-mzmz6l@vmi833741.contaboserver.net)
2023-01-22 08:11:38 +0100rootGuest3728
2023-01-22 08:12:49 +0100sudden(~cat@user/sudden) (Read error: Connection reset by peer)
2023-01-22 08:12:53 +0100Alex_test_(~al_test@178.34.160.228)
2023-01-22 08:13:19 +0100sudden(~cat@user/sudden)
2023-01-22 08:13:39 +0100Square2(~a@user/square)
2023-01-22 08:14:55 +0100trev(~trev@user/trev) (*.net *.split)
2023-01-22 08:14:55 +0100td_(~td@83.135.9.13) (*.net *.split)
2023-01-22 08:14:55 +0100_xor(~xor@74.215.182.83) (*.net *.split)
2023-01-22 08:14:55 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (*.net *.split)
2023-01-22 08:14:55 +0100Xeroine(~Xeroine@user/xeroine) (*.net *.split)
2023-01-22 08:14:55 +0100remexre(~remexre@user/remexre) (*.net *.split)
2023-01-22 08:14:55 +0100Sgeo(~Sgeo@user/sgeo) (*.net *.split)
2023-01-22 08:14:55 +0100shapr(~user@68.54.166.125) (*.net *.split)
2023-01-22 08:14:55 +0100biberu(~biberu@user/biberu) (*.net *.split)
2023-01-22 08:14:55 +0100micro(~micro@user/micro) (*.net *.split)
2023-01-22 08:14:55 +0100Square(~a@user/square) (*.net *.split)
2023-01-22 08:14:55 +0100johnjaye(~pi@173.209.64.74) (*.net *.split)
2023-01-22 08:14:55 +0100shriekingnoise(~shrieking@186.137.175.87) (*.net *.split)
2023-01-22 08:14:55 +0100ell(~ellie@user/ellie) (*.net *.split)
2023-01-22 08:14:55 +0100kjak(~kjak@pool-72-66-75-40.washdc.fios.verizon.net) (*.net *.split)
2023-01-22 08:14:55 +0100Alex_test(~al_test@178.34.160.228) (*.net *.split)
2023-01-22 08:14:55 +0100Philonous(~Philonous@user/philonous) (*.net *.split)
2023-01-22 08:14:55 +0100ridcully(~ridcully@p508acd69.dip0.t-ipconnect.de) (*.net *.split)
2023-01-22 08:14:55 +0100urdh(~urdh@user/urdh) (*.net *.split)
2023-01-22 08:14:55 +0100gabiruh_(~gabiruh@vps19177.publiccloud.com.br) (*.net *.split)
2023-01-22 08:14:55 +0100tdammers(~tdammers@77.109.72.175.res.static.edpnet.net) (*.net *.split)
2023-01-22 08:14:56 +0100monochrom(trebla@216.138.220.146) (*.net *.split)
2023-01-22 08:14:56 +0100lbseale(~quassel@user/ep1ctetus) (*.net *.split)
2023-01-22 08:14:56 +0100koala_man(~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split)
2023-01-22 08:14:56 +0100titibandit(7efad7d72e@jabberfr.org) (*.net *.split)
2023-01-22 08:14:56 +0100hololeap(~quassel@user/hololeap) (*.net *.split)
2023-01-22 08:14:56 +0100koz(~koz@121.99.240.58) (*.net *.split)
2023-01-22 08:14:56 +0100kimiamania(~65804703@user/kimiamania) (*.net *.split)
2023-01-22 08:14:56 +0100dextaa(~DV@user/dextaa) (*.net *.split)
2023-01-22 08:14:56 +0100avpx(~nick@ec2-54-214-223-1.us-west-2.compute.amazonaws.com) (*.net *.split)
2023-01-22 08:14:56 +0100esph(~weechat@user/esph) (*.net *.split)
2023-01-22 08:14:56 +0100aweinstock(~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) (*.net *.split)
2023-01-22 08:14:56 +0100dgb8(~dgb@astra4961.startdedicated.net) (*.net *.split)
2023-01-22 08:14:56 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split)
2023-01-22 08:14:56 +0100koolazer(~koo@user/koolazer) (*.net *.split)
2023-01-22 08:14:56 +0100Guest5476(~m-mzmz6l@vmi833741.contaboserver.net) (*.net *.split)
2023-01-22 08:14:56 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (*.net *.split)
2023-01-22 08:14:56 +0100wz1000(~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split)
2023-01-22 08:14:56 +0100danso(~danso@danso.ca) (*.net *.split)
2023-01-22 08:14:56 +0100kraftwerk28(~kraftwerk@178.62.210.83) (*.net *.split)
2023-01-22 08:14:56 +0100Patternmaster(~georg@user/Patternmaster) (*.net *.split)
2023-01-22 08:14:56 +0100byorgey(~byorgey@155.138.238.211) (*.net *.split)
2023-01-22 08:14:56 +0100nisstyre(~wes@user/nisstyre) (*.net *.split)
2023-01-22 08:14:56 +0100gnyeki(~gnyeki@user/gnyeki) (*.net *.split)
2023-01-22 08:14:56 +0100opqdonut(opqdonut@pseudo.fixme.fi) (*.net *.split)
2023-01-22 08:14:56 +0100Momentum(momentum@tilde.team) (*.net *.split)
2023-01-22 08:14:56 +0100kitzman_(~kitzman@user/dekenevs) (*.net *.split)
2023-01-22 08:14:56 +0100leeb(~leeb@tk2-243-31079.vs.sakura.ne.jp) (*.net *.split)
2023-01-22 08:14:56 +0100monochrmmonochrom
2023-01-22 08:14:56 +0100urdh_urdh
2023-01-22 08:14:56 +0100ell8ell
2023-01-22 08:14:56 +0100dgb83dgb8
2023-01-22 08:14:56 +0100leeb-leeb
2023-01-22 08:15:01 +0100burakcan-burakcank
2023-01-22 08:15:02 +0100biberu\biberu
2023-01-22 08:15:03 +0100remexre_remexre
2023-01-22 08:15:03 +0100kimiamania8kimiamania
2023-01-22 08:15:03 +0100dextaa5dextaa
2023-01-22 08:15:19 +0100koala_man(~vidar@157.146.251.23.bc.googleusercontent.com)
2023-01-22 08:16:47 +0100Xeroine(~Xeroine@user/xeroine)
2023-01-22 08:19:45 +0100byorgey(~byorgey@155.138.238.211)
2023-01-22 08:21:16 +0100wz1000(~zubin@static.11.113.47.78.clients.your-server.de)
2023-01-22 08:21:50 +0100nisstyre(wes@user/nisstyre)
2023-01-22 08:21:55 +0100esph(~weechat@user/esph)
2023-01-22 08:22:15 +0100tdammers(~tdammers@77.109.72.175.res.static.edpnet.net)
2023-01-22 08:22:31 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2023-01-22 08:22:43 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2023-01-22 08:29:52 +0100mizlan(~mizlan@89.46.114.100)
2023-01-22 08:33:29 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
2023-01-22 08:33:59 +0100mizlan(~mizlan@89.46.114.100) (Ping timeout: 246 seconds)
2023-01-22 08:41:38 +0100mei_(~mei@user/mei)
2023-01-22 08:43:39 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 08:43:42 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-01-22 08:46:49 +0100mei_(~mei@user/mei) (Quit: mei_)
2023-01-22 08:54:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-01-22 08:57:15 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2023-01-22 09:00:05 +0100shriekingnoise_(~shrieking@186.137.175.87) (Ping timeout: 260 seconds)
2023-01-22 09:02:24 +0100gehmehgeh(~user@user/gehmehgeh)
2023-01-22 09:04:10 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2023-01-22 09:07:52 +0100Guest75(~Guest75@178.141.138.233) (Quit: Ping timeout (120 seconds))
2023-01-22 09:09:56 +0100mizlan(~mizlan@89.46.114.129)
2023-01-22 09:18:01 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2023-01-22 09:19:20 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-01-22 09:24:41 +0100mizlan(~mizlan@89.46.114.129) (Ping timeout: 252 seconds)
2023-01-22 09:38:11 +0100mizlan(~mizlan@169.150.203.65)
2023-01-22 09:41:35 +0100Patternm1ster(~georg@li1192-118.members.linode.com) (Quit: leaving)
2023-01-22 09:41:50 +0100Patternmaster(~georg@user/Patternmaster)
2023-01-22 09:56:48 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 10:00:03 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:71a5:b1e9:85a5:f360) (Remote host closed the connection)
2023-01-22 10:03:17 +0100mechap1(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-01-22 10:03:31 +0100mechap(~mechap@user/mechap)
2023-01-22 10:09:48 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-01-22 10:15:47 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-01-22 10:17:28 +0100titibandit(7efad7d72e@2a00:c70:1:178:170:40:189:1)
2023-01-22 10:20:49 +0100kenran(~user@user/kenran)
2023-01-22 10:20:53 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2023-01-22 10:21:24 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-01-22 10:22:59 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Quit: o/)
2023-01-22 10:23:38 +0100Square2Square
2023-01-22 10:37:38 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2023-01-22 10:39:35 +0100mizlan(~mizlan@169.150.203.65) (Ping timeout: 260 seconds)
2023-01-22 10:42:24 +0100shapr`(~user@68.54.166.125) (Ping timeout: 260 seconds)
2023-01-22 10:43:59 +0100acidjnk(~acidjnk@p200300d6e715c45184a61eb831583be7.dip0.t-ipconnect.de)
2023-01-22 10:49:05 +0100eruditass(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-01-22 10:54:20 +0100mizlan(~mizlan@89.46.114.51)
2023-01-22 10:58:43 +0100mizlan(~mizlan@89.46.114.51) (Ping timeout: 260 seconds)
2023-01-22 11:00:33 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5d38:2665:17cb:f4aa)
2023-01-22 11:00:43 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2023-01-22 11:03:29 +0100zer0bitz(~zer0bitz@2001:2003:f443:d600:a4e6:fd8f:f654:94ad)
2023-01-22 11:04:55 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5d38:2665:17cb:f4aa) (Ping timeout: 256 seconds)
2023-01-22 11:07:31 +0100mizlan(~mizlan@169.150.203.66)
2023-01-22 11:20:08 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-01-22 11:27:49 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-01-22 11:28:03 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2023-01-22 11:30:56 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-01-22 11:38:24 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-01-22 11:40:50 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2023-01-22 11:42:30 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-01-22 11:56:16 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
2023-01-22 12:04:50 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-01-22 12:09:33 +0100mizlan(~mizlan@169.150.203.66) (Ping timeout: 260 seconds)
2023-01-22 12:10:15 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-01-22 12:13:56 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-01-22 12:24:07 +0100mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-01-22 12:24:28 +0100mechap(~mechap@user/mechap)
2023-01-22 12:26:30 +0100ozkutuk53(~ozkutuk@176.240.174.60)
2023-01-22 12:29:24 +0100gurkenglas(~gurkengla@dynamic-046-114-176-241.46.114.pool.telefonica.de)
2023-01-22 12:30:50 +0100haskl(~haskl@user/haskl) (Read error: Connection reset by peer)
2023-01-22 12:32:39 +0100haskl(~haskl@user/haskl)
2023-01-22 12:34:20 +0100mizlan(~mizlan@169.150.203.43)
2023-01-22 12:43:21 +0100CiaoSen(~Jura@p200300c9572d4e002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-01-22 12:45:54 +0100CiaoSen(~Jura@p200300c9572d4e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Client Quit)
2023-01-22 12:56:53 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 13:07:21 +0100Ranhir(~Ranhir@157.97.53.139) (Remote host closed the connection)
2023-01-22 13:09:56 +0100Ranhir(~Ranhir@157.97.53.139)
2023-01-22 13:12:18 +0100theproffesor(~theproffe@user/theproffesor) (Ping timeout: 252 seconds)
2023-01-22 13:14:55 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-01-22 13:22:28 +0100mechap(~mechap@user/mechap) (Ping timeout: 260 seconds)
2023-01-22 13:24:05 +0100mechap(~mechap@user/mechap)
2023-01-22 13:31:25 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2023-01-22 13:32:27 +0100n0den1te(~n0den1te@223.178.85.186)
2023-01-22 13:40:12 +0100cheater_(~Username@user/cheater)
2023-01-22 13:42:49 +0100mizlan(~mizlan@169.150.203.43) (Ping timeout: 265 seconds)
2023-01-22 13:43:00 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-01-22 13:43:08 +0100cheater_cheater
2023-01-22 13:43:31 +0100OscarZ(~oscarz@95.175.104.39) (Quit: Leaving)
2023-01-22 13:46:43 +0100tremon(~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl)
2023-01-22 13:54:09 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2023-01-22 13:56:47 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-01-22 14:04:12 +0100mizlan(~mizlan@169.150.203.45)
2023-01-22 14:07:18 +0100cheater_(~Username@user/cheater)
2023-01-22 14:09:55 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-01-22 14:11:02 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-01-22 14:11:03 +0100cheater_cheater
2023-01-22 14:12:11 +0100acidjnk(~acidjnk@p200300d6e715c45184a61eb831583be7.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-01-22 14:14:38 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-01-22 14:21:44 +0100cheater_(~Username@user/cheater)
2023-01-22 14:24:14 +0100Guest75(~Guest75@178.141.138.233)
2023-01-22 14:24:46 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-01-22 14:24:49 +0100cheater_cheater
2023-01-22 14:29:15 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-01-22 14:41:34 +0100Homer_Simpson(uid550301@id-550301.uxbridge.irccloud.com)
2023-01-22 14:42:31 +0100 <Homer_Simpson> I'm trying to learn haskell but the stuff that the tutorial is showing isnt working in onlinedgb.com
2023-01-22 14:43:24 +0100 <Homer_Simpson> if I remove main I get an error, if I try to in any obvious way add more code after main print "hi" I get more errors
2023-01-22 14:44:08 +0100 <Homer_Simpson> https://www.tutorialspoint.com/haskell/haskell_basic_data_models.htm
2023-01-22 14:47:45 +0100 <darkling> Can you show us the code you've written that doesn't work?
2023-01-22 14:48:06 +0100unit73e(~emanuel@184.37.249.5.rev.vodafone.pt)
2023-01-22 14:48:48 +0100 <darkling> (There's a pastebin linked in the channel /topic
2023-01-22 14:48:51 +0100 <Axman6> what's onlinedgb.com?
2023-01-22 14:48:57 +0100 <Axman6> @where paste
2023-01-22 14:48:57 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2023-01-22 14:51:23 +0100 <Homer_Simpson> https://paste.tomsmeding.com/73xsSZiX
2023-01-22 14:51:37 +0100 <Homer_Simpson> im coming from C/raku here
2023-01-22 14:51:38 +0100 <int-e> Axman6: https://www.onlinegdb.com/ (doesn't work without the www.)
2023-01-22 14:54:01 +0100CiaoSen(~Jura@p200300c9572d4e002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-01-22 14:54:57 +0100 <fendor[m]> Not sure whether somebody already said it, but please, never use tutorialspoint, especially for haskell learning
2023-01-22 14:55:36 +0100 <Axman6> Homer_Simpson: well, the reason those don't work is because they're not valid Haskell
2023-01-22 14:55:51 +0100 <Homer_Simpson> i tired youtube too
2023-01-22 14:56:01 +0100 <Homer_Simpson> tried*
2023-01-22 14:56:10 +0100 <Homer_Simpson> they all go too fast for me
2023-01-22 14:56:26 +0100 <Axman6> main = print "hi"; 2+2; doesn't mean anything in Haskell. main = dp {print "hi"; 2+2; } _might_ mean something, it's syntactically ok, but it actually doesn't make any sense either
2023-01-22 14:56:31 +0100 <Homer_Simpson> they just throw examples examples examples
2023-01-22 14:56:40 +0100 <Homer_Simpson> and dont teach the grammar
2023-01-22 14:56:43 +0100 <Axman6> do, not dp*
2023-01-22 14:56:46 +0100gurkenglas(~gurkengla@dynamic-046-114-176-241.46.114.pool.telefonica.de) (Ping timeout: 265 seconds)
2023-01-22 14:57:25 +0100 <Axman6> A friend shared this with me the other day, it might be useful for deciding on a source to learn from: https://bitemyapp.com/blog/functional-education/
2023-01-22 14:57:49 +0100 <Axman6> I might be a bit biased by the recommendations, I used to work at NICTA and teach the NICTA course in person
2023-01-22 14:58:11 +0100darklingwonders if that's a shiny metal app.
2023-01-22 14:58:20 +0100 <Homer_Simpson> • No instance for (Num (IO t0)) arising from a use of ‘+’ • In a stmt of a 'do' block: 2 + 2 In the expression: do print "hi" 2 + 2
2023-01-22 14:58:34 +0100 <Axman6> Homer_Simpson: yeah, that expression doesn't really make any sense
2023-01-22 14:59:28 +0100 <Axman6> you could try something like: main = do { putStrLn "Hello, what's your name?"; name <- getLine; putStrLn ("Nice to meet you, " ++ name) }
2023-01-22 14:59:30 +0100 <Homer_Simpson> well how do I simply print "hi\n" and then print the result of adding 2 numbers
2023-01-22 15:00:01 +0100 <Axman6> main = do {putStrLn "hi"; print (2+2) }
2023-01-22 15:00:15 +0100 <Axman6> % do {putStrLn "hi"; print (2+2) }
2023-01-22 15:00:16 +0100 <yahb2> hi ; 4
2023-01-22 15:00:30 +0100elkcl_(~elkcl@broadband-188-255-19-11.ip.moscow.rt.ru)
2023-01-22 15:00:31 +0100 <Axman6> (; means new line in yahb2's output)
2023-01-22 15:01:18 +0100 <int-e> looks like onlinegdb uses ghc 8.6.5... that's impressively old.
2023-01-22 15:01:23 +0100 <Homer_Simpson> ok thats what I was wondering, how to add a block of statement to main
2023-01-22 15:01:27 +0100 <Homer_Simpson> that worked
2023-01-22 15:02:34 +0100elkcl(~elkcl@broadband-188-255-19-11.ip.moscow.rt.ru) (Ping timeout: 260 seconds)
2023-01-22 15:02:34 +0100elkcl_elkcl
2023-01-22 15:02:34 +0100 <Homer_Simpson> I only use onlinegdb for running small bits of code cause it keeps losing internet connection and sometimes it fails to flush errors from stdout
2023-01-22 15:03:14 +0100 <Axman6> why not install ghci?
2023-01-22 15:03:24 +0100 <Homer_Simpson> I will
2023-01-22 15:03:36 +0100 <Homer_Simpson> can haskell parse strings
2023-01-22 15:03:42 +0100 <Homer_Simpson> from a file
2023-01-22 15:03:58 +0100 <Axman6> Homer_Simpson: https://www.haskell.org/ghcup/ is the place to start
2023-01-22 15:04:01 +0100 <Homer_Simpson> in C we use fscanf
2023-01-22 15:04:19 +0100 <Axman6> probably the domain Haskell is most well known for is in parsing
2023-01-22 15:04:37 +0100 <Homer_Simpson> cool.
2023-01-22 15:04:55 +0100 <Axman6> in Haskell, we use parser combinators, which are fastly more flexible than really anything C has to offer, but you're a long way from learning about that
2023-01-22 15:06:23 +0100Inst_(~Inst@2601:6c4:4081:54f0:d621:5cdd:9051:c240) (Ping timeout: 255 seconds)
2023-01-22 15:09:19 +0100mizlan(~mizlan@169.150.203.45) (Ping timeout: 252 seconds)
2023-01-22 15:09:38 +0100 <Axman6> anyway, I would strongly recommend finding a different way to learn Haskell, tutorialspoint as fendor[m]points out is a horrible resource. https://www.seas.upenn.edu/~cis1940/spring13/ is generally a great introduction, and will start you out on things that are important to learn early. maing able to write a main isn't particularly important
2023-01-22 15:09:51 +0100 <Homer_Simpson> ok thx
2023-01-22 15:17:12 +0100 <Axman6> Good lord, that tutorial is almost criminally bad, it's just bizarrely about trivially simple things
2023-01-22 15:18:07 +0100 <Axman6> wrong*
2023-01-22 15:23:49 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 15:27:49 +0100acidjnk(~acidjnk@p200300d6e715c45184a61eb831583be7.dip0.t-ipconnect.de)
2023-01-22 15:28:01 +0100razetime(~Thunderbi@117.193.4.9)
2023-01-22 15:28:27 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
2023-01-22 15:37:17 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-01-22 15:39:19 +0100 <n0den1te> speaking of tutorials, is there a rewrite of RWH coming any time?
2023-01-22 15:39:21 +0100 <fendor[m]> also, uses a compiler from 2012 or something like that
2023-01-22 15:39:54 +0100 <n0den1te> I vaguely recall seeing some community efforts around RWH, but can't find it anymore
2023-01-22 15:42:49 +0100 <n0den1te> hmm, found it here: https://github.com/tssm/up-to-date-real-world-haskell (dormant since 2020)
2023-01-22 15:42:51 +0100 <geekosaur> there's a wiki
2023-01-22 15:43:10 +0100razetime(~Thunderbi@117.193.4.9) (Quit: See You Space Cowboy)
2023-01-22 15:43:19 +0100 <geekosaur> no idea whether dons and company plan to update it at some point
2023-01-22 15:53:27 +0100Guest|15(~Guest|15@46.97.170.59)
2023-01-22 15:53:32 +0100Guest|15(~Guest|15@46.97.170.59) (Client Quit)
2023-01-22 15:54:09 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 16:00:07 +0100acidjnk_new(~acidjnk@p200300d6e715c4514d89378e6d7ee9ff.dip0.t-ipconnect.de)
2023-01-22 16:01:07 +0100acidjnk(~acidjnk@p200300d6e715c45184a61eb831583be7.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-01-22 16:05:09 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5d38:2665:17cb:f4aa)
2023-01-22 16:06:51 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 248 seconds)
2023-01-22 16:07:05 +0100mizlan(~mizlan@169.150.203.45)
2023-01-22 16:09:49 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5d38:2665:17cb:f4aa) (Ping timeout: 252 seconds)
2023-01-22 16:12:03 +0100cyphase(~cyphase@user/cyphase)
2023-01-22 16:12:09 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-01-22 16:13:09 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-01-22 16:13:52 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-01-22 16:15:43 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-01-22 16:24:17 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-01-22 16:25:37 +0100mizlan(~mizlan@169.150.203.45) (Ping timeout: 252 seconds)
2023-01-22 16:28:40 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2023-01-22 16:30:20 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-01-22 16:31:39 +0100Homer_Simpson(uid550301@id-550301.uxbridge.irccloud.com) ()
2023-01-22 16:33:36 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-01-22 16:41:48 +0100mizlan(~mizlan@89.46.114.156)
2023-01-22 16:43:08 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-01-22 16:46:24 +0100underlap(~underlap@229.171.115.87.dyn.plus.net)
2023-01-22 16:48:32 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-01-22 16:49:21 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Max SendQ exceeded)
2023-01-22 16:49:47 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-01-22 16:51:48 +0100pi1(~pi@173.209.64.74) (Read error: No route to host)
2023-01-22 17:04:07 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-01-22 17:05:56 +0100underlap(~underlap@229.171.115.87.dyn.plus.net) (Quit: Client closed)
2023-01-22 17:07:40 +0100Momentum_Momentum
2023-01-22 17:09:09 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-01-22 17:09:47 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-01-22 17:09:49 +0100ec(~ec@gateway/tor-sasl/ec)
2023-01-22 17:13:16 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-01-22 17:17:39 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-01-22 17:18:51 +0100acidjnk_new(~acidjnk@p200300d6e715c4514d89378e6d7ee9ff.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-01-22 17:23:02 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-01-22 17:25:32 +0100shapr(~user@68.54.166.125)
2023-01-22 17:26:23 +0100kimiamania(~65804703@user/kimiamania) (Quit: PegeLinux)
2023-01-22 17:27:37 +0100kimiamania(~65804703@user/kimiamania)
2023-01-22 17:34:03 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-01-22 17:36:09 +0100mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-01-22 17:37:57 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-01-22 17:40:16 +0100mechap(~mechap@user/mechap)
2023-01-22 17:44:04 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-01-22 17:44:11 +0100mizlan(~mizlan@89.46.114.156) (Ping timeout: 246 seconds)
2023-01-22 17:48:10 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 17:50:22 +0100use-value1(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-01-22 17:51:24 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Ping timeout: 256 seconds)
2023-01-22 17:51:24 +0100use-value1use-value
2023-01-22 17:51:25 +0100econo(uid147250@user/econo)
2023-01-22 17:52:36 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-01-22 17:58:56 +0100Alex_test_(~al_test@178.34.160.228) (Quit: ;-)
2023-01-22 17:59:03 +0100mizlan(~mizlan@169.150.203.43)
2023-01-22 17:59:16 +0100AlexZenon(~alzenon@178.34.160.228) (Quit: ;-)
2023-01-22 17:59:46 +0100AlexNoo(~AlexNoo@178.34.160.228) (Quit: Leaving)
2023-01-22 18:01:19 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2023-01-22 18:03:34 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5d38:2665:17cb:f4aa)
2023-01-22 18:08:38 +0100jwiegley(~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2023-01-22 18:08:38 +0100AlexNoo(~AlexNoo@178.34.160.228)
2023-01-22 18:09:33 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-01-22 18:09:44 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2023-01-22 18:09:55 +0100hololeap_hololeap
2023-01-22 18:10:35 +0100AlexZenon(~alzenon@178.34.160.228)
2023-01-22 18:13:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-01-22 18:16:55 +0100Alex_test(~al_test@178.34.160.228)
2023-01-22 18:18:13 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-01-22 18:20:08 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-01-22 18:21:17 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2023-01-22 18:22:25 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-01-22 18:25:58 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-01-22 18:29:11 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8)
2023-01-22 18:33:53 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2023-01-22 18:42:26 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-01-22 18:48:13 +0100wombat8756(~wombat875@2600:4041:5bea:f800:83f2:bf42:de49:b596)
2023-01-22 18:48:42 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze)
2023-01-22 18:50:34 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-01-22 18:52:23 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2023-01-22 18:54:56 +0100ddellacosta(~ddellacos@89.45.224.130)
2023-01-22 19:05:58 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-01-22 19:06:22 +0100thongpv(~thongpv87@2001:ee0:5577:f0d0:b436:353d:3a0c:35f3) (Ping timeout: 252 seconds)
2023-01-22 19:07:49 +0100danso_odanso
2023-01-22 19:10:25 +0100thongpv(~thongpv87@2001:ee0:5577:f0d0:da9e:3b7a:e545:4b37)
2023-01-22 19:12:05 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-01-22 19:13:49 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-01-22 19:14:42 +0100thongpv(~thongpv87@2001:ee0:5577:f0d0:da9e:3b7a:e545:4b37) (Ping timeout: 256 seconds)
2023-01-22 19:22:07 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-01-22 19:24:17 +0100oats(~thomas@user/oats) (Quit: until later, my friends)
2023-01-22 19:25:01 +0100oats(~thomas@user/oats)
2023-01-22 19:30:47 +0100remexre(~remexre@mail.sift.net) (Remote host closed the connection)
2023-01-22 19:30:54 +0100remexre(~remexre@user/remexre)
2023-01-22 19:44:08 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2023-01-22 19:46:37 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-01-22 19:47:34 +0100trev_(~trev@109-252-35-99.nat.spd-mgts.ru) (Remote host closed the connection)
2023-01-22 19:48:01 +0100 <hololeap> > Any list like [1,2,3,4,5,a,b,c,d,e,f] will produce an error.
2023-01-22 19:48:04 +0100 <lambdabot> <hint>:1:61: error:
2023-01-22 19:48:04 +0100 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
2023-01-22 19:48:07 +0100 <hololeap> yeah, that's pretty bad
2023-01-22 19:48:34 +0100 <hololeap> they're trying to show not to put Chars in a list of Ints, but fail to do even that
2023-01-22 19:49:07 +0100 <hololeap> and then say the "not in scope" errors are because lists need to be homogonous
2023-01-22 19:49:45 +0100 <c_wraith> > [1,2,3,a,b,c] :: [Expr]
2023-01-22 19:49:47 +0100 <lambdabot> [1,2,3,a,b,c]
2023-01-22 19:50:07 +0100 <c_wraith> It even works if you have the right libraries in scope!
2023-01-22 19:50:29 +0100mizlan(~mizlan@169.150.203.43) (Ping timeout: 246 seconds)
2023-01-22 19:51:34 +0100 <hololeap> A Tuple is an immutable data type, as we cannot modify the number of elements at runtime, whereas a List is a mutable data type.
2023-01-22 19:51:36 +0100 <hololeap> >_>
2023-01-22 19:52:03 +0100 <c_wraith> someone mistook Haskell for python?
2023-01-22 19:52:45 +0100 <hololeap> those poor people trying to learn the basics from that...
2023-01-22 19:54:49 +0100briandaed(~briandaed@185.234.210.211.r.toneticgroup.pl)
2023-01-22 20:07:19 +0100mizlan(~mizlan@169.150.203.53)
2023-01-22 20:15:39 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-01-22 20:19:02 +0100 <hololeap> speaking of tutorials, is there anything that attempts to teach the ... thing between Applicative and Monad?
2023-01-22 20:19:25 +0100 <hololeap> Selective?
2023-01-22 20:19:41 +0100 <hololeap> I never used it because I didn't understand it
2023-01-22 20:21:01 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2023-01-22 20:22:10 +0100 <c_wraith> I'm not sure it's actually useful
2023-01-22 20:22:30 +0100 <glguy> the only reason to really learn about it would be if you were using a library that happened to use it. in that case you'd just learn about the library
2023-01-22 20:23:26 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-01-22 20:23:34 +0100 <hololeap> is there a big example of something that happens to be a Selective but not a Monad?
2023-01-22 20:24:08 +0100CiaoSen(~Jura@p200300c9572d4e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-01-22 20:24:10 +0100opqdonut_opqdonut
2023-01-22 20:25:45 +0100 <c_wraith> You can use Selective to construct something that looks a whole lot like (>>=) but only if you can enumerate the values of `a' in `(a -> m b) -> m a -> m b'
2023-01-22 20:26:16 +0100 <glguy> I have my config-schema package that has specs that are applicative but not monad, so you can inspect them and produce documentation. Currently the way I handle inspecting schemas with alternatives is just a list of alternatives, but with selective I could expose a selection operation that could have documentation generated about it
2023-01-22 20:26:28 +0100 <c_wraith> This means you can introspect the data
2023-01-22 20:27:19 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5d38:2665:17cb:f4aa) (Remote host closed the connection)
2023-01-22 20:27:20 +0100 <glguy> (I don't need to use a typeclass to do that, but in that case I'd be able to instantiate the typeclass were I don't want to rely on monad
2023-01-22 20:28:01 +0100 <glguy> the benefit of using Applicative for me is I get to use ApplicativeDo . I don't know what hte benefit of making the Selective instance would be, though
2023-01-22 20:29:35 +0100 <xerox> what is Selective?
2023-01-22 20:29:48 +0100 <monochrom> I have only read the original Selective paper. And only the introductory parts of it.
2023-01-22 20:29:55 +0100 <c_wraith> xerox: https://hackage.haskell.org/package/selective-0.5/docs/Control-Selective.html#t:Selective
2023-01-22 20:30:07 +0100 <monochrom> I understand it because I was asking myself the same question already. :)
2023-01-22 20:30:40 +0100 <c_wraith> It's a way to preserve Applicative introspection while allowing something resembling monadic effect selection
2023-01-22 20:33:17 +0100 <c_wraith> I'm not sure if there's any type that can be a Selective that *can't* be a Monad. But as in glguy's case, sometimes you don't want to make it a Monad because the whole purpose of the type is introspection
2023-01-22 20:33:21 +0100 <monochrom> I was looking at eg "satisfy p = do { c <- anyChar; if p c then pure c else empty }" and wondering: It shouldn't need the full power of Monad, but Alternative falls short by just a little bit. Is there something that gives "foo >>= \c -> if then else" but no more than that?
2023-01-22 20:34:02 +0100 <hololeap> c_wraith: it looks like this might be an example of one: https://github.com/kowainik/validation-selective
2023-01-22 20:34:38 +0100 <hololeap> also, what is "introspection" in the context of Applicative?
2023-01-22 20:35:06 +0100 <c_wraith> hololeap: no, that's exactly what I was talking about. That can be made a Monad trivially, like Either. But doing so prevents introspection.
2023-01-22 20:35:55 +0100aweinsto1kaweinstock
2023-01-22 20:36:00 +0100 <c_wraith> hololeap: introspection in this context is examining the effect structure without actually performing the "result" computations
2023-01-22 20:37:28 +0100seriously_guest(~seriously@2001:1c06:2715:c200:8531:d289:8f72:ead3)
2023-01-22 20:39:17 +0100 <hololeap> The Validation data type is isomorphic to Either, but has an instance of Applicative that accumulates on the error side. That is to say, if two (or more) errors are encountered, they are appended using a Semigroup operation.
2023-01-22 20:39:18 +0100 <c_wraith> hololeap: it's not a property every instance supports. For instance, the [] instance for Applicative doesn't let you do any introspection. The important part is that Applicative doesn't prevent it.
2023-01-22 20:39:23 +0100 <hololeap> As a consequence of this Applicative instance, there is no corresponding Bind or Monad instance. Validation is an example of, "An applicative functor that is not a monad."
2023-01-22 20:40:13 +0100 <hololeap> ok, so Validation doesn't have a valid Monad instance, sort of like ZipList doesn't, because of the way their Applicative is set up
2023-01-22 20:40:13 +0100iteratee(~kyle@162.218.222.107) (Read error: Connection reset by peer)
2023-01-22 20:40:14 +0100 <glguy> hololeap: this is my example of using an Applicative interface to making schemas https://glguy.net/config-demo/
2023-01-22 20:40:31 +0100iteratee(~kyle@162.218.222.107)
2023-01-22 20:40:36 +0100 <glguy> then from the same code you can generate documentation and schema checkers, but still get the restricted applicative-do notation when defining things
2023-01-22 20:40:54 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-01-22 20:41:05 +0100 <hololeap> yeah, glguy, I've had my eye on your config-schemas lib for a while, but I still haven't used it yet
2023-01-22 20:41:17 +0100 <hololeap> I assumed it was similar to optparse-applicative in the way it functions
2023-01-22 20:41:31 +0100 <hololeap> although I don't know how the internals of optparse-applicative works
2023-01-22 20:42:04 +0100barzo(~hd@31.223.41.44)
2023-01-22 20:42:24 +0100 <c_wraith> side question: how well does ApplicativeDo work these days? I seem to recall it was documented as a best effort sort of thing, instead of actually having guarantees
2023-01-22 20:42:58 +0100 <c_wraith> But that was the very first version, and I know it's been improved.
2023-01-22 20:43:07 +0100 <glguy> it works fine, you just have to avoid the things that make something use Monad
2023-01-22 20:43:45 +0100 <hololeap> I use it all the time for parser libraries, I also turn on -foptimal-applicative-do and never noticed any problems
2023-01-22 20:44:23 +0100 <hololeap> but, yeah it's sometimes a mystery if it's using the Monadic do instead. there should be a way to force Applicative other than trying to make a non-monadic version of whatever it is
2023-01-22 20:45:07 +0100 <glguy> You get a type error if you used monadic do and your type didnt' support it, so it's not a complete mystery
2023-01-22 20:45:13 +0100 <glguy> and if your type does support Monad it doesn't matter
2023-01-22 20:45:36 +0100 <hololeap> true, so it's not a mystery for optparse-applicative, but for instance attoparsec has a Monad instance for its parser, so it's harder to tell for that one
2023-01-22 20:45:47 +0100 <hololeap> I guess it might not matter in the latter case
2023-01-22 20:46:03 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:5d38:2665:17cb:f4aa)
2023-01-22 20:46:27 +0100seriously_guest(~seriously@2001:1c06:2715:c200:8531:d289:8f72:ead3) (Quit: Client closed)
2023-01-22 20:47:43 +0100 <hololeap> I remember hearing something about parsers being faster if you can stick to their Applicative instance, but that might have been complete nonsense
2023-01-22 20:48:17 +0100 <c_wraith> It... depends.
2023-01-22 20:48:39 +0100 <hololeap> I noticed that the parser-combinators library says to use the Monad versions because they are faster
2023-01-22 20:48:51 +0100 <hololeap> it's all pretty mysterious to me...
2023-01-22 20:49:05 +0100 <glguy> If performance matters at that level of detail you're probably not using parser combinators
2023-01-22 20:52:06 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2023-01-22 20:52:25 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-01-22 20:52:56 +0100 <hololeap> Due to the nature of the Applicative and Alternative abstractions, they are prone to memory leaks and not as efficient as their monadic counterparts. Although all the combinators we provide in this module are perfectly expressible in terms of Applicative and Alternative, please prefer Control.Monad.Combinators instead when possible.
2023-01-22 20:54:27 +0100 <hololeap> so, some like me is like "I don't memory leaks! I want efficiency!" and I do what it says without really understanding why
2023-01-22 20:55:59 +0100shriekingnoise(~shrieking@186.137.175.87)
2023-01-22 20:56:23 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-01-22 20:57:03 +0100 <c_wraith> There are some cases where it really does matter
2023-01-22 20:57:12 +0100jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c)
2023-01-22 20:57:24 +0100 <EvanR> I thought due to the nature of the Applicative you can form a compiler to an arbitrary better form
2023-01-22 20:58:04 +0100 <c_wraith> Like with permutation parsing. Doing it efficiently with only Applicative requires a certain amount of laziness in the parser that not all will have - and that laziness isn't compatible with introspection, for instance.
2023-01-22 20:58:28 +0100 <c_wraith> The monadic interface for permutation parsing has much better memory use guarantees
2023-01-22 20:59:15 +0100briandaed(~briandaed@185.234.210.211.r.toneticgroup.pl) (Remote host closed the connection)
2023-01-22 21:00:19 +0100 <c_wraith> I like the Earley parser library, but permutation parsing is awkward for it. It works by introspecting parsers to build its transition tables.
2023-01-22 21:00:47 +0100 <hololeap> I was hoping for more discussion here: https://github.com/mrkkrp/parser-combinators/pull/8
2023-01-22 21:00:47 +0100 <c_wraith> permutation parsers will always be large in that representation
2023-01-22 21:04:27 +0100 <hololeap> c_wraith: it's interesting you say that, because Control.Monad.Permutations wasn't added until later
2023-01-22 21:04:40 +0100 <hololeap> so I wonder what the initial motivation was
2023-01-22 21:11:22 +0100 <hololeap> does anyone know of something that could generate a man page from an optparse-applicative ParserInfo?
2023-01-22 21:12:33 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-01-22 21:13:12 +0100hololeapfound this: https://github.com/pcapriotti/optparse-applicative/issues/176
2023-01-22 21:13:24 +0100 <hololeap> but nothing linking to existing solutions at this point
2023-01-22 21:15:01 +0100 <Clint> i believe the existing solution is to pipe --help output to help2man
2023-01-22 21:15:23 +0100 <hololeap> would that work with subcommands?
2023-01-22 21:15:50 +0100pavonia(~user@user/siracusa)
2023-01-22 21:16:37 +0100Sgeo(~Sgeo@user/sgeo)
2023-01-22 21:16:41 +0100__xor_xor
2023-01-22 21:23:27 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow)
2023-01-22 21:24:38 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 21:26:36 +0100 <Clint> well, you could run help2man for each subcommand
2023-01-22 21:31:15 +0100Guest|20(~Guest|20@c-73-176-81-178.hsd1.il.comcast.net)
2023-01-22 21:32:20 +0100 <Guest|20> I get this error when trying to install on macos.   curl: (60) SSL certificate problem: certificate has expired
2023-01-22 21:33:07 +0100 <glguy> What day does the date commands say it is?
2023-01-22 21:33:29 +0100 <Guest|20> Sun Jan 22 14:33:16 CST 2023
2023-01-22 21:33:36 +0100 <glguy> And what command are you running to install something?
2023-01-22 21:33:55 +0100 <Guest|20> curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
2023-01-22 21:34:53 +0100 <Guest|20> from https://www.haskell.org/ghcup/
2023-01-22 21:36:31 +0100 <glguy> Are you on a network that replaces TLS certificates perhaps requiring you to install their own local CA? Like school, work?
2023-01-22 21:36:38 +0100 <Guest|20> no
2023-01-22 21:37:11 +0100 <Guest|20> unless comcast does that
2023-01-22 21:38:11 +0100 <Guest|20> older os, macos 10.14
2023-01-22 21:38:53 +0100 <geekosaur> https://stackoverflow.com/questions/69521959/ssl-certificate-problem-certificate-has-expire-in-macos
2023-01-22 21:39:11 +0100mizlan(~mizlan@169.150.203.53) (Ping timeout: 264 seconds)
2023-01-22 21:39:35 +0100 <geekosaur> especially with an older macos which would mean apple's not updating certs any more and probably has expired ISRG /; Let's Encrypt certs
2023-01-22 21:42:45 +0100 <Guest|20> seems reasonable, "Another possible solution is to use curl's -k/--insecure flag" this seems like the easiest solution.
2023-01-22 21:43:06 +0100 <geekosaur> easy but not one I'd suggest getting used to; security is for a reason
2023-01-22 21:44:35 +0100 <Guest|20> understood, thanks for the help!
2023-01-22 21:45:56 +0100remedan(~remedan@ip-89-177-74-251.bb.vodafone.cz) (Quit: Bye!)
2023-01-22 21:46:30 +0100 <Guest|20> perhaps brew install ghcup is a more secure option, I think I'll try that first
2023-01-22 21:46:46 +0100remedan(~remedan@ip-89-177-74-251.bb.vodafone.cz)
2023-01-22 21:47:29 +0100jumper149(~jumper149@base.felixspringer.xyz)
2023-01-22 21:48:34 +0100 <Guest|20> damn brew's ghcup requires higher than 10.14
2023-01-22 21:50:46 +0100abhixec(~abhinav@c-67-169-139-16.hsd1.ca.comcast.net)
2023-01-22 21:51:48 +0100 <Guest|20> looks like i've got to update the certificates on this machine, thanks again
2023-01-22 21:52:38 +0100 <geekosaur> hm, I wonder if it'll work though. brew may be telling you indirectly that there's no working ghc binaries for 10.14
2023-01-22 21:54:24 +0100 <geekosaur> I know the minimum OS X version has been bumped a few times due to missing OS features needed by ghc's runtime
2023-01-22 21:56:29 +0100ec(~ec@gateway/tor-sasl/ec)
2023-01-22 21:59:02 +0100acidjnk_new(~acidjnk@p200300d6e715c429699c669626622ebf.dip0.t-ipconnect.de)
2023-01-22 21:59:02 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2023-01-22 22:01:54 +0100gurkenglas(~gurkengla@dynamic-046-114-183-023.46.114.pool.telefonica.de)
2023-01-22 22:03:05 +0100 <Guest|20> I updated the cert and it is installing using curl
2023-01-22 22:03:22 +0100 <Guest|20> the macos minimum right now is 10.13
2023-01-22 22:04:19 +0100 <Guest|20> thanks again!
2023-01-22 22:12:27 +0100 <jumper149> geekosaur: Yeah, I guess you're right. Should've probably posted here, sorry. But no I don't want to support old library versions.
2023-01-22 22:15:04 +0100 <geekosaur> `#if !MIN_VERSION_FOO(...)\n# error "foo package too old"\n#endif`… although that's probably best done with a cabal dependency. I'm not sure what you get with a flag unless the dependency is part of the flag
2023-01-22 22:17:15 +0100 <jumper149> Yeah, I just use regular cabal version boundaries. I think that suffices.
2023-01-22 22:17:43 +0100 <jumper149> I do have another question though: Is there a way for cabal flags to imply other cabal flags?
2023-01-22 22:23:20 +0100 <geekosaur> that might be a #hackage question
2023-01-22 22:23:48 +0100 <geekosaur> doesn't look like it to me, though; you can't set (or clear) a flag in a cabal file
2023-01-22 22:24:21 +0100 <geekosaur> might be possible to put a `default:` for a flag definition in a conditional involving another flag, though
2023-01-22 22:25:36 +0100 <c_wraith> the main reason I use MIN_VERSION CPP is when I'm creating instances when the type or class is owned by another library, and they tend to change.
2023-01-22 22:26:39 +0100 <c_wraith> Like, I've added some instances to lens that work differently with different versions of base, because base only added a type recently, or Foldable used to not have that function, or whatever
2023-01-22 22:27:07 +0100 <sclv> by design flags don’t imply other flags
2023-01-22 22:27:24 +0100 <sclv> flags are not supposed to change the surface api of a package
2023-01-22 22:27:34 +0100 <c_wraith> And as much visual noise as it is, it's easier to use those CPP macros than to conditionally include extra files that define those instances.
2023-01-22 22:28:05 +0100 <jumper149> sclv: I think it's fine for optional orphan instances.
2023-01-22 22:28:29 +0100 <sclv> i’m not saying an opinion. i’m saying the design and the reason
2023-01-22 22:28:49 +0100Lycurgus(~juan@user/Lycurgus)
2023-01-22 22:29:25 +0100 <jumper149> sclv: Ok, let me rephrase. Are optional orphan instances part of the surface API?
2023-01-22 22:29:42 +0100 <sclv> yes
2023-01-22 22:29:48 +0100 <c_wraith> haddock documents them!
2023-01-22 22:30:25 +0100 <c_wraith> (that's a relatively new feature of haddock. It's only been around for a few years. But it's very nice to actually have now.)
2023-01-22 22:30:38 +0100 <geekosaur> jumper149, consider that Hackage would be unmanageable and unreliable if packages' APIs changed depending on flags
2023-01-22 22:31:39 +0100 <jumper149> geekosaur: I see. You would have to build the docs for every combination of flags.
2023-01-22 22:32:16 +0100 <geekosaur> you might have to build dependent packages for every combination of flags as well
2023-01-22 22:32:19 +0100 <c_wraith> jumper149: and every combination of flags for all dependnecies
2023-01-22 22:32:56 +0100 <jumper149> Yeah that doesn't sound good.
2023-01-22 22:35:19 +0100theproffesor(~theproffe@2601:282:8800:3f30::b942)
2023-01-22 22:35:19 +0100theproffesor(~theproffe@2601:282:8800:3f30::b942) (Changing host)
2023-01-22 22:35:19 +0100theproffesor(~theproffe@user/theproffesor)
2023-01-22 22:41:31 +0100ddellacosta(~ddellacos@89.45.224.130) (Ping timeout: 260 seconds)
2023-01-22 22:41:58 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2023-01-22 22:42:59 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-01-22 22:44:20 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 22:45:40 +0100remedan(~remedan@ip-89-177-74-251.bb.vodafone.cz) (Quit: Bye!)
2023-01-22 22:47:02 +0100theproffesor(~theproffe@user/theproffesor) (Remote host closed the connection)
2023-01-22 22:47:02 +0100remedan(~remedan@ip-89-177-74-251.bb.vodafone.cz)
2023-01-22 22:49:28 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
2023-01-22 22:50:34 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-01-22 22:51:13 +0100theproffesor(~theproffe@2601:282:8800:3f30::b942)
2023-01-22 22:51:13 +0100theproffesor(~theproffe@2601:282:8800:3f30::b942) (Changing host)
2023-01-22 22:51:13 +0100theproffesor(~theproffe@user/theproffesor)
2023-01-22 22:54:27 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2023-01-22 22:54:47 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-01-22 22:55:30 +0100ddellacosta(~ddellacos@86.106.143.117)
2023-01-22 23:02:36 +0100mizlan(~mizlan@169.150.203.43)
2023-01-22 23:03:10 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2023-01-22 23:10:46 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-01-22 23:23:44 +0100n0den1te(~n0den1te@223.178.85.186) (Quit: leaving)
2023-01-22 23:25:22 +0100biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-01-22 23:29:59 +0100biberu(~biberu@user/biberu)
2023-01-22 23:37:02 +0100mizlan(~mizlan@169.150.203.43) (Ping timeout: 268 seconds)
2023-01-22 23:44:04 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-01-22 23:48:03 +0100merijn(~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
2023-01-22 23:49:20 +0100Feuermagier(~Feuermagi@user/feuermagier)
2023-01-22 23:49:59 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)