Home liberachat/#haskell: Logs Calendar

Logs on 2022-11-21 (liberachat/#haskell)

00:05:08 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds)
00:07:20 mauke_ joins (~mauke@p57b6e7eb.dip0.t-ipconnect.de)
00:07:46 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99)
00:08:22 × mauke quits (~mauke@p57b6ed34.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
00:08:22 mauke_ is now known as mauke
00:21:24 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 256 seconds)
00:22:14 freeside joins (~mengwong@103.252.202.193)
00:24:42 nilradical joins (~nilradica@user/naso)
00:25:32 <nilradical> using hedgehog, how can i test multiple Groups?
00:25:37 <nilradical> e.g., i have
00:25:40 <nilradical> main :: IO Bool
00:25:41 <nilradical> main =
00:25:41 <nilradical> checkSequential $
00:25:43 <nilradical> Group
00:25:45 <nilradical> "Test.GroupA"
00:25:47 <nilradical> [ ("prop_myProp", prop_myProp)]
00:25:50 <nilradical> how do i add a second group after that
00:25:56 mncheck joins (~mncheck@193.224.205.254)
00:26:55 × mncheck quits (~mncheck@193.224.205.254) (Remote host closed the connection)
00:30:39 <dsal> What is a Group?
00:31:27 <dsal> Ohh, I see. You're doing a slightly weird thing.
00:31:46 <nilradical> defined here https://hackage.haskell.org/package/hedgehog-1.2/docs/Hedgehog.html
00:32:18 <dsal> The main documentation index says you can use that if you don't want to do any of the other mechanisms. Do you not want to use any of the other mechanisms?
00:33:01 <dsal> I use tasty in my personal projects and hspec for work. But the docs also show how you can use its built-in discover thing for just finding tests within your file.
00:33:05 <nilradical> the template haskell thing, checkParallel $$(discover), did not work for me
00:33:16 <nilradical> let me try again, i forgot what error it gave...
00:33:53 <dsal> Did it say you don't have TemplateHaskell enabled?
00:34:51 <nilradical> Oh, it's working now! No, actually i had left a comment there. It previously gave an error about "symbol not found"
00:34:54 <dsal> checkParallel and checkSequential are `MonadIO m => Group -> m Bool`
00:34:58 <nilradical> that was actually on a different machine
00:35:09 <dsal> :t foldM
00:35:10 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
00:35:27 <dsal> That will run multiple groups. Or just something like
00:35:43 <dsal> :t and <$> traverse
00:35:44 <lambdabot> error:
00:35:44 <lambdabot> • Couldn't match type ‘f (t0 b)’ with ‘Bool’
00:35:44 <lambdabot> Expected type: (a -> f b) -> t0 a -> Bool
00:36:09 <dsal> I don't have all the symbols here, but fmapping and to traverse would do it.
00:36:23 × accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
00:36:26 <dsal> :t and <$> traverse (const True)
00:36:27 <lambdabot> error:
00:36:27 <lambdabot> • Couldn't match type ‘t b0’ with ‘Bool’
00:36:28 <lambdabot> Expected type: t b -> t0 Bool
00:36:41 <dsal> :t and <$> traverse (const $ pure True)
00:36:42 <lambdabot> error:
00:36:42 <lambdabot> • Couldn't match type ‘t Bool’ with ‘Bool’
00:36:42 <lambdabot> Expected type: t b -> t0 Bool
00:36:48 <dsal> Heh. I don't know what I'm doing.
00:37:32 <dsal> :t fmap and . traverse (pure $ const True)
00:37:33 <lambdabot> Traversable t => t a -> b -> Bool
00:37:42 <nilradical> yeah i tried : checkSequential <$> [groupA, groupB]
00:37:55 <nilradical> didnt work. i figured it was some monad magic stuff needed
00:38:11 <dsal> You need traverse there, not fmap
00:38:30 <dsal> I'm using fmap to collapse the results.
00:39:30 <nilradical> fmap traverse checkSequential [..] ?
00:39:54 <dsal> If you used foldM, you'd need to do something like foldM (fmap And . checkSequential) groups
00:40:20 <dsal> traverse checkSequential groups will be of type MonadIO m => [Group] -> m [Bool]
00:40:38 <dsal> (well, it would be if I didn't have `groups` in there)
00:41:15 <nilradical> yeah traverse checkSequential [] is IO [Bool] but it should be IO Bool
00:41:26 <dsal> Why should it be `IO Bool`?
00:41:38 <nilradical> i mean it needs to be, because that is the type of `main`
00:41:42 <dsal> IMO, it's silly to even mention `Bool` here.
00:41:54 <dsal> main should be ` IO ()`
00:42:10 <dsal> :t fmap and
00:42:12 <lambdabot> (Functor f, Foldable t) => f (t Bool) -> f Bool
00:42:17 <nilradical> hedgehog wants it to be IO Bool
00:42:22 × acidjnk quits (~acidjnk@p200300d6e7137a2348c5e2c763436845.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
00:42:28 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) (Remote host closed the connection)
00:42:31 <dsal> You might just be confusing me by naming a function `main` that isn't `main`
00:43:07 <nilradical> oh of course, `fmap and $ traverse checkSequential [..]` works fine thank u
00:44:37 <dsal> Yeah, so `doLots = fmap and . traverse checkSequential :: MonadIO m => [Group] -> m Bool`
00:45:06 <nilradical> thanks :)
00:45:16 <dsal> But I just use tasty or something. :)
00:45:25 × Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
00:48:17 × zeenk quits (~zeenk@2a02:2f04:a208:3600::fba) (Quit: Konversation terminated!)
00:53:41 jtomas joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
00:55:16 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 248 seconds)
00:55:19 × nilradical quits (~nilradica@user/naso) ()
00:56:15 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99)
00:56:55 × `2jt quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
01:05:40 mvk joins (~mvk@2607:fea8:5ce3:8500::efb)
01:05:55 × mvk quits (~mvk@2607:fea8:5ce3:8500::efb) (Client Quit)
01:05:55 ub joins (~Thunderbi@91.141.78.146.wireless.dyn.drei.com)
01:06:45 × ubert quits (~Thunderbi@178.165.166.23.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
01:06:45 ub is now known as ubert
01:13:24 × Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 260 seconds)
01:16:27 × xff0x quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 268 seconds)
01:20:23 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
01:21:34 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
01:22:27 [yella] joins (~yell@2607:fb90:8069:b3d:936f:934c:4449:dde4)
01:24:34 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
01:24:52 × yella quits (~yell@2607:fb90:8061:645e:b50a:8579:b31d:1eec) (Ping timeout: 256 seconds)
01:25:40 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:27:20 × [yella] quits (~yell@2607:fb90:8069:b3d:936f:934c:4449:dde4) (Max SendQ exceeded)
01:28:38 [yella] joins (~yell@2607:fb90:8069:b3d:936f:934c:4449:dde4)
01:33:59 srz joins (~srz@181.228.49.93)
01:34:44 freeside joins (~mengwong@103.252.202.193)
01:34:57 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
01:36:31 causal joins (~user@50.35.83.177)
01:40:43 yella__ joins (~yell@2607:fb90:8060:7ed8:b221:6907:f900:9d31)
01:41:39 adium joins (adium@user/adium)
01:41:41 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
01:43:30 × [yella] quits (~yell@2607:fb90:8069:b3d:936f:934c:4449:dde4) (Ping timeout: 260 seconds)
01:52:16 jargon joins (~jargon@184.101.188.35)
01:55:13 freeside joins (~mengwong@103.252.202.193)
01:56:18 × jargon quits (~jargon@184.101.188.35) (Remote host closed the connection)
02:01:03 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:04:11 × mastarija quits (~mastarija@2a05:4f46:e03:6000:a553:6552:13c1:4f41) (Quit: WeeChat 3.5)
02:07:37 × bollu quits (~bollu@159.65.151.13) (Remote host closed the connection)
02:08:03 bollu joins (~bollu@159.65.151.13)
02:12:34 accord joins (uid568320@id-568320.hampstead.irccloud.com)
02:14:19 × jtomas quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Remote host closed the connection)
02:15:56 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
02:16:43 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
02:17:54 <carter> sooo ummm, anyone have the linker config issues with ghc 9.4.3 on Arm Macs?
02:18:52 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:20:06 × srz quits (~srz@181.228.49.93) (Remote host closed the connection)
02:22:47 jargon joins (~jargon@184.101.188.35)
02:28:20 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 256 seconds)
02:28:25 × bobbingbob quits (~bobbingbo@2604:3d09:207f:f650::b469) (Ping timeout: 260 seconds)
02:29:44 <c_wraith> carter: I think I've seen several people asking about that. Something about brew-installed compilers being in the path makes the configure process grab info on the wrong linker?
02:29:56 <carter> its worse than that
02:30:03 <carter> it also seems to be emiting gc-sections
02:30:07 <carter> flag
02:30:08 <carter> in code gen
02:30:37 <c_wraith> do you have a linker from a source other than xcode installed?
02:30:47 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
02:30:48 <carter> i guess i can uninstall ALL llvms
02:30:59 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
02:31:22 <c_wraith> this is definitely a bug, fwiw. Your system isn't wrong.
02:31:33 <carter> yeah ... thx
02:31:46 <c_wraith> But the workarounds I've seen for it are to remove all other compile pipelines, reinstall ghc, then you can reinstall other compilers
02:31:46 <carter> if i'm hitting it .... and i've been the "OSX guy" ... something is wrong
02:31:59 <carter> yeah
02:32:01 <carter> its bad
02:32:26 <carter> i cant figure out how on earth its even trying to emit gc-sections to the linker
02:33:20 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:33:33 <carter> "clang: error: invalid linker name in argument '-fuse-ld=lld' >ghc-9.4.3: `gcc' failed in phase `Linker'. (Exit code: 1)"
02:33:37 <carter> fff
02:33:37 <c_wraith> I think if you're willing to install GHC by hand, you can make sure it gets the correct flags to its configure script. But I don't know what they are.
02:35:04 <carter> its worse than that
02:35:12 <carter> i'm hand editing the settings file to figure out whats different
02:36:16 <carter> lets see if copying the 9.4.2 settings file over fixees it
02:36:21 <carter> wtfff
02:39:47 dsrt^ joins (~dsrt@76.145.185.103)
02:40:52 <carter> found the fix
02:41:00 <carter> the settings file generated by 9.4.2 works
02:41:01 <carter> wtf
02:42:52 <carter> heres whats different https://usercontent.irccloud-cdn.com/file/K4ZF8hGJ/Screen%20Shot%202022-11-20%20at%209.40.47%20PM.png
02:43:18 <c_wraith> yeah, looks like the installer found the wrong ld
02:44:51 <Inst> does Haskell automatically shrink Enum types?
02:45:01 <c_wraith> shrink to what?
02:45:13 <Inst> say, if I have an sum type which has 10 members, under O2, does Haskell depict them as 4 bits?
02:45:37 <c_wraith> that'd completely wreck performance in most cases, so no
02:45:59 <carter> theres no magic
02:46:05 <carter> theres just "hopefully good defaults"
02:46:21 <carter> generally for representation details the RTS and compiler are the best "current" story
02:46:42 <c_wraith> The main case where a more compact representation would be helpful is when storing massive arrays.
02:47:02 <c_wraith> And.. hey, that's one thing Storable arrays or vectors are for!
02:49:29 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
02:56:21 [yella] joins (~yell@2607:fb90:8067:f8f1:5691:21e7:585a:a086)
02:58:45 × yella__ quits (~yell@2607:fb90:8060:7ed8:b221:6907:f900:9d31) (Ping timeout: 256 seconds)
03:04:49 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
03:05:44 × td_ quits (~td@83.135.9.29) (Ping timeout: 256 seconds)
03:06:04 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Quit: leaving)
03:07:12 td_ joins (~td@83.135.9.24)
03:12:00 marc___ joins (~marc@5.83.191.225)
03:15:00 × marc__ quits (~marc@5.83.191.103) (Ping timeout: 248 seconds)
03:17:10 freeside joins (~mengwong@103.252.202.193)
03:21:43 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
03:25:23 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
03:32:56 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
03:35:12 freeside joins (~mengwong@103.252.202.193)
03:35:18 dextaa0 joins (~DV@user/dextaa)
03:37:40 × dextaa quits (~DV@user/dextaa) (Ping timeout: 268 seconds)
03:37:40 dextaa0 is now known as dextaa
03:42:24 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
03:43:46 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
03:45:04 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
03:45:22 nate4 joins (~nate@98.45.169.16)
03:45:25 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
03:45:55 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:45:55 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:45:55 finn_elija is now known as FinnElija
03:46:01 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
03:48:25 Kaiepi joins (~Kaiepi@108.175.84.104)
03:50:30 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
03:52:17 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
03:52:17 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
03:52:17 wroathe joins (~wroathe@user/wroathe)
04:02:47 × td_ quits (~td@83.135.9.24) (Ping timeout: 260 seconds)
04:04:14 td_ joins (~td@83.135.9.7)
04:22:27 <Inst> are there any alternatives to accelerate that work on GHC 9.2.4?
04:22:31 <Inst> I can't even install it with Cabal
04:22:36 <Inst> i need GPU parallelization
04:22:45 mbuf joins (~Shakthi@49.205.82.244)
04:24:59 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
04:25:15 × ubert quits (~Thunderbi@91.141.78.146.wireless.dyn.drei.com) (Remote host closed the connection)
04:25:35 ubert joins (~Thunderbi@91.141.78.146.wireless.dyn.drei.com)
04:26:30 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 240 seconds)
04:30:28 jakalx parts (~jakalx@base.jakalx.net) ()
04:37:32 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
04:38:53 freeside joins (~mengwong@103.252.202.193)
04:43:24 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
04:46:11 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
04:48:32 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
04:48:48 freeside joins (~mengwong@103.252.202.193)
04:48:59 dknite joins (~dknite@65.20.68.77)
04:49:14 azimut joins (~azimut@gateway/tor-sasl/azimut)
04:54:45 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 268 seconds)
04:56:44 freeside joins (~mengwong@103.252.202.193)
05:02:59 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 260 seconds)
05:04:00 kimjetwav joins (~user@2607:fea8:235e:b600:a711:1a92:88bb:85cd)
05:07:10 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 252 seconds)
05:15:13 motherfsck joins (~motherfsc@user/motherfsck)
05:19:17 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
05:19:19 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
05:19:57 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:21:31 freeside joins (~mengwong@103.252.202.193)
05:23:30 jakalx joins (~jakalx@base.jakalx.net)
05:23:36 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
05:27:15 biberu joins (~biberu@user/biberu)
05:28:59 × califax quits (~califax@user/califx) (Remote host closed the connection)
05:30:42 califax joins (~califax@user/califx)
05:32:59 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
05:33:34 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
05:34:12 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
05:34:44 pierrot_ joins (~pi@user/pierrot)
05:34:48 × pierrot quits (~pi@user/pierrot) (Ping timeout: 252 seconds)
05:35:32 × Arsen quits (arsen@managarm/dev/Arsen) (Ping timeout: 252 seconds)
05:35:53 Arsen joins (arsen@managarm/dev/Arsen)
05:36:10 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
05:38:34 chromoblob joins (~user@37.113.164.122)
05:38:46 <Axman6> Inst: "I can't even install it" - Accelerate is basically the only thing there is, and it is difficult to install because it needs the appropriate nvidia stuff installed too. if you tell us what went wrong you might be able to get help here, but in the first instance I would be looking at the documentation - iirc it goes into a lot of detail on how to install
05:39:31 <Inst> i'm on Windows and its installation instructions for Windows are : "lol, we have no Windows users"
05:39:41 <Axman6> sounds about right to me
05:39:41 <Inst> to learn and use Accelerate:
05:39:56 <Inst> I need to learn Stack, Windows Subsystem for Linux, then Accelerate
05:39:59 <Inst> I decided to say fuck it
05:40:37 <Inst> and make my CPU hot for 60 hours instead of making my GPU hot for 4 hours
05:41:32 <Inst> if i run out of memory, i SHOULD have a spare SSD
05:43:29 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 260 seconds)
05:50:07 titibandit joins (~titibandi@xdsl-87-78-52-100.nc.de)
05:55:09 <jackdk> . o ( Could also switch to GNU/Linux )
05:55:32 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 248 seconds)
06:15:55 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
06:17:55 cytokine_storm joins (~cytokine_@user/cytokine-storm/x-1083107)
06:21:28 evanvarvell joins (~evanvarve@097-088-181-216.res.spectrum.com)
06:24:09 × dolio quits (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
06:25:06 dolio joins (~dolio@130.44.134.54)
06:29:10 × cytokine_storm quits (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 256 seconds)
06:36:32 × dtman34 quits (~dtman34@2601:447:d080:83c8:3fe9:6f54:f618:67a8) (Ping timeout: 256 seconds)
06:37:37 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:42:45 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 260 seconds)
06:51:06 mei_ joins (~mei@user/mei)
07:08:06 <maerwald[m]> Inst: WSL2 works ok, WSL1 not
07:13:41 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
07:18:29 kenran joins (~user@user/kenran)
07:23:00 × evanvarvell quits (~evanvarve@097-088-181-216.res.spectrum.com) (Ping timeout: 256 seconds)
07:23:45 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:28:05 gnyeki_ is now known as gnyeki
07:34:43 evanvarvell joins (~evanvarve@097-088-181-216.res.spectrum.com)
07:39:31 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
07:39:52 × mauke quits (~mauke@p57b6e7eb.dip0.t-ipconnect.de) (Quit: leaving)
07:40:27 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
07:43:18 azimut joins (~azimut@gateway/tor-sasl/azimut)
07:45:27 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
07:46:57 nate4 joins (~nate@98.45.169.16)
07:47:17 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
07:48:56 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
07:51:54 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
07:58:09 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
07:59:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
08:00:16 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
08:02:19 × califax quits (~califax@user/califx) (Remote host closed the connection)
08:03:21 lortabac joins (~lortabac@2a01:e0a:541:b8f0:745a:dad5:a10b:a4d7)
08:05:34 califax joins (~califax@user/califx)
08:12:55 constxd joins (~brad@77.241.136.65.bredband.3.dk)
08:14:59 chele joins (~chele@user/chele)
08:15:56 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:19:18 × ft quits (~ft@p508dbd59.dip0.t-ipconnect.de) (Quit: leaving)
08:20:40 michalz joins (~michalz@185.246.207.197)
08:24:04 mmhat joins (~mmh@p200300f1c72dc6e0ee086bfffe095315.dip0.t-ipconnect.de)
08:41:18 InstX1 joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
08:46:11 nschoe joins (~q@141.101.51.197)
08:46:34 cfricke joins (~cfricke@user/cfricke)
08:48:50 × constxd quits (~brad@77.241.136.65.bredband.3.dk) (Ping timeout: 240 seconds)
08:49:41 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:51:02 constxd joins (~brad@77.241.136.117.bredband.3.dk)
08:51:30 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
08:53:39 × evanvarvell quits (~evanvarve@097-088-181-216.res.spectrum.com) (Quit: Leaving)
08:54:16 acidjnk joins (~acidjnk@p200300d6e7137a2348c5e2c763436845.dip0.t-ipconnect.de)
08:56:34 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e090:a1b4:58fc:3f99) (Remote host closed the connection)
09:03:41 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:10:52 × Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
09:11:16 Batzy joins (~quassel@user/batzy)
09:12:38 × titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Remote host closed the connection)
09:14:24 razetime joins (~quassel@117.193.4.209)
09:20:26 × andjjj23 quits (~irc@107.170.228.47) (Read error: Software caused connection abort)
09:20:44 andjjj23 joins (~irc@107.170.228.47)
09:24:19 × bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (Read error: Software caused connection abort)
09:24:28 bwe joins (~bwe@2a01:4f8:1c1c:4878::2)
09:25:20 × Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
09:26:31 Batzy joins (~quassel@user/batzy)
09:30:07 kenran` joins (~user@user/kenran)
09:32:01 × kenran quits (~user@user/kenran) (Ping timeout: 256 seconds)
09:32:01 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
09:35:24 × ubert quits (~Thunderbi@91.141.78.146.wireless.dyn.drei.com) (Quit: ubert)
09:37:42 __monty__ joins (~toonn@user/toonn)
09:40:36 × rune quits (sid21167@id-21167.ilkley.irccloud.com) (Read error: Software caused connection abort)
09:40:43 rune joins (sid21167@id-21167.ilkley.irccloud.com)
09:46:46 ubert joins (~Thunderbi@91.141.78.146.wireless.dyn.drei.com)
09:47:50 × bw quits (sid2730@user/betawaffle) (Read error: Software caused connection abort)
09:48:14 bw_ joins (sid2730@user/betawaffle)
09:50:38 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
09:50:56 × scav quits (sid309693@user/scav) (Read error: Software caused connection abort)
09:51:05 scav joins (sid309693@user/scav)
09:52:14 × Adran quits (adran@botters/adran) (Read error: Software caused connection abort)
09:54:18 Adran joins (~adran@botters/adran)
09:55:25 × mbuf quits (~Shakthi@49.205.82.244) (Quit: Leaving)
09:57:03 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1)
09:59:19 × Digit quits (~user@user/digit) (Ping timeout: 260 seconds)
09:59:20 × Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 260 seconds)
10:00:09 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 260 seconds)
10:01:40 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1) (Ping timeout: 260 seconds)
10:01:40 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
10:03:58 × kenran` quits (~user@user/kenran) (Remote host closed the connection)
10:04:14 <Inst> I've considered switching to Linux
10:04:31 <Inst> I used to use Arch, but Arch was too confusing, #1, #2, Arch has terrible Haskell support
10:04:54 <merijn> Inst: FYI, WSL2 is "literally just Ubuntu" ;)
10:05:03 <dminuoso> Inst: Hah it was quite a revelation to learn *why* arch has terrible Haskell support.
10:05:21 <dminuoso> It's a demonstration why Arch Linux is just a very poor hobbyist distribution.
10:05:24 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
10:07:03 <dminuoso> Short story is: Arch Haskell packages were built on the private machine of the singular haskell maintainer, imagine his laptop if you will. Now because he has very poor internet speed, he recognized that uploading haskell packages as dynamic libraries saved a lot of of bandwidth.
10:07:16 <dminuoso> And that's the reason why Arch Haskell packages are dynamically built.
10:07:35 <dminuoso> It's mind numbing.
10:09:19 Digit joins (~user@user/digit)
10:09:48 <dminuoso> A distribution that lets this situation arise does not appear to have any bars for quality for their package ecosystem. People compiling software on their laptop, and manually uploading these as official packages.
10:10:10 <loonycyborg> Can haskell even use dynamic libraries? Some distros would prefer that because it would make security updates less disruptive and more thorough
10:10:28 <merijn> loonycyborg: Yes, but it's not the default
10:10:35 <merijn> loonycyborg: It wouldn't
10:10:50 <merijn> loonycyborg: Because GHC doesn't have a stable ABI, so you can't "just link in" a new version
10:11:02 <merijn> Parts of your dependency might be inlined in the application
10:11:03 <Inst> honestly, is what i'm doing really challenging, or am i just a bad programmer?
10:11:04 <loonycyborg> I think here on gentoo it does static as per default
10:11:10 <merijn> So you have to recompile *anyway*
10:11:36 <merijn> loonycyborg: GHC ships "static" by default, because it's the oldest, most tested, and most sensible way to link GHC Haskell
10:11:54 <Inst> i feel like what i'm doing, is making Haskell look bad
10:11:59 <Inst> it's all business logic man
10:12:28 <merijn> loonycyborg: Note that external (i.e. C) libraries are linked dynamically by default
10:13:25 <loonycyborg> Not surprised, most of them don't even have static versions easily available.
10:13:26 `2jt joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
10:13:57 × alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (Read error: Software caused connection abort)
10:14:10 alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba)
10:15:08 <Inst> just realized a major logic bug
10:16:07 chromoblob joins (~user@37.113.164.122)
10:16:55 mikoto-chan joins (~mikoto-ch@164.5.249.78)
10:20:40 × `2jt quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Remote host closed the connection)
10:21:03 `2jt joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
10:21:57 × avpx quits (~nick@ec2-54-214-223-1.us-west-2.compute.amazonaws.com) (Read error: Software caused connection abort)
10:23:48 freeside joins (~mengwong@103.252.202.193)
10:25:34 avpx joins (~nick@ec2-54-214-223-1.us-west-2.compute.amazonaws.com)
10:25:39 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
10:25:45 MajorBiscuit joins (~MajorBisc@145.94.146.35)
10:27:01 madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net)
10:27:44 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:27:46 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
10:32:18 × idnar quits (sid12240@debian/mithrandi) (Read error: Software caused connection abort)
10:32:27 idnar joins (sid12240@debian/mithrandi)
10:33:55 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
10:33:58 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
10:34:22 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (Read error: Software caused connection abort)
10:34:41 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
10:35:40 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
10:37:09 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 255 seconds)
10:37:24 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
10:43:40 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:44:35 freeside joins (~mengwong@103.252.202.193)
10:48:53 chromoblob joins (~user@37.113.164.122)
10:51:48 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 268 seconds)
10:53:40 freeside joins (~mengwong@103.252.202.193)
10:57:50 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 240 seconds)
11:02:49 Kaiepi joins (~Kaiepi@108.175.84.104)
11:04:15 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:08:18 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
11:11:30 × `2jt quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Remote host closed the connection)
11:11:51 × ericson2314 quits (~ericson23@2001:470:69fc:105::70c) (Read error: Software caused connection abort)
11:12:09 ericson2314 joins (~ericson23@2001:470:69fc:105::70c)
11:12:21 <Hecate> grrr I'm so envious of Elixir's ExDoc https://hexdocs.pm/ex_doc/cheatsheet.html
11:12:21 <Inst> nah, i realized why i'm getting this behavior
11:12:24 <Inst> oh, hi
11:12:30 <Hecate> hello Inst
11:12:36 <Inst> we spoke at the same time
11:12:39 <Inst> nothing much to say
11:12:51 <Inst> although i'd go beggar you about Accelerate
11:13:04 <Inst> and the fact that Haskell has only one good CUDA library that's not really usable
11:13:17 <Inst> without Stack
11:13:39 <Hecate> are you using https://flora.pm/packages/@hackage/accelerate-llvm-ptx ?
11:14:20 <Inst> thanks for being helpful
11:15:00 <dminuoso> Hecate: Out of curiosity.. what is it that cheatsheet is trying to tell me?
11:15:04 <tomsmeding> Inst: what errors do you get with cabal
11:15:04 <Inst> attempting to install
11:15:12 <Inst> "cannot match libraries, etc"
11:15:18 <Inst> hackage accelerate seems to be built for 8.6 GHC
11:15:21 <Inst> I'm using 9.2.4
11:15:53 <Hecate> dminuoso: it's the cheatsheet for the "cheatsheet" feature of ExDoc
11:16:10 <tomsmeding> Inst: https://paste.tomsmeding.com/9zQPzlRW
11:16:20 <dminuoso> Hecate: Sure, but I dont quite understand what its trying to convey.
11:16:36 <Inst> could be an issue with my implementation
11:16:43 <Inst> i abuse --lib very heavily and am planning to switch to stack
11:16:45 <Hecate> dminuoso: it's just a showcase of the layout
11:16:55 <Hecate> dminuoso: I don't there is more to it
11:17:00 <dminuoso> Hecate: Oh okay. I would have expected the input right next to it.
11:17:00 <Inst> because my VSC HLS is fubared
11:17:07 <dminuoso> Just to get an idea of "type this, get that"
11:17:24 <dminuoso> but just "get that" is a bit confusing since it really doesnt tell me much, beyond that it is capable of rendering tlike that
11:17:37 <Hecate> dminuoso: you get that by clicking on the source button on the top-right corner -> https://github.com/elixir-lang/ex_doc/blob/v0.29.1/Cheatsheet.cheatmd#L1
11:17:50 <dminuoso> Hecate: Which part of this UX do you envy?
11:17:52 <dminuoso> :>
11:18:06 <dminuoso> "Click on source to make sense of it" we have on hackage plenty already
11:18:16 <Inst> my attempted cabal isntall
11:18:16 <Inst> https://paste.tomsmeding.com/Pl8JGQfA
11:18:20 <Inst> of accelerate-llvm
11:18:38 <Hecate> dminuoso: I never said I was envying the UX
11:18:43 <dminuoso> Ah.
11:18:43 <Hecate> just the "cheatsheet" feature
11:18:51 <tomsmeding> Inst: try that source-repository-package for llvm-hs and some allow-newer
11:18:53 <Hecate> And the guides
11:18:56 <tomsmeding> the llvm-hs on hackage is old
11:19:03 <Inst> how do i try it?
11:19:04 <Hecate> the fact that we can have prose and guides outside of modules
11:19:11 <tomsmeding> Inst: put my paste in cabal.project
11:19:26 <tomsmeding> Inst: https://cabal.readthedocs.io/en/3.8/cabal-project.html
11:19:35 <Inst> i see
11:19:47 <Inst> am i the only guy who uses a single Haskell directory?
11:19:56 <tomsmeding> what do you mean?
11:20:06 <Inst> that's probably what's messed up my HLS, i.e, I have multiple cabal files in my VSC directory
11:20:12 <dminuoso> Hecate: Oh I see, sort of what we hijack cabal description for, right?
11:20:19 <tomsmeding> Inst: that has... never been supported by anything?
11:20:27 <dminuoso> (but that only offers a singular place where you can put a cheatsheet)
11:20:33 <Inst> i guessed as much
11:20:35 <dminuoso> Usually I guess you provide a link to some README.md hosted on github
11:20:44 <tomsmeding> Inst: how does that even work with anything :p
11:20:52 <Inst> --lib
11:21:02 <Inst> also, the cabal files are in different directories
11:21:11 <Hecate> dminuoso: thank god I'm not looking for any hack or workaround to do it in haddock today, I live with the knowledge that we'll be able to do it in haddock tomorrow
11:21:21 <tomsmeding> Inst: the cabal files are in different directories, but they're in the same directory?
11:21:27 <tomsmeding> So which is it lol
11:21:44 <Inst> they're in different directories, but VSC is loading all the directories as they're in subhierarchies
11:21:48 <dminuoso> Hecate: Is there exciting changes on the horizon? Or is "tomorrow" just some very much unspecified point that is on the future half of the time scale?
11:21:49 <tomsmeding> _ah_
11:21:57 <Inst> right now, I have an error where all the files I'm working have a complaint "please assign me to module main"
11:21:58 <tomsmeding> Inst: that's a standard setup actually
11:22:14 <Inst> ack, well, excuse me, i'm STILL not feeling well
11:22:18 <Inst> i should go debug that error
11:22:22 <Inst> so I can get rid of accused --lib
11:22:46 <tomsmeding> Inst: one way to make haskell tooling understand your collection of projects is to put a cabal.project in the parent folder (i.e. your VSC folder I guess?) with packages: folder1/ folder2/ ...
11:22:59 <tomsmeding> but that _should_ not be necessary
11:23:22 <Inst> it could also be the extensions dueling with each other, as I have Rust and Julia support on VSC
11:23:24 <Hecate> dminuoso: I will have to underpromise on that one, but rest assured that the next technical changes in haddock will enable more UI/UX work to be done
11:24:04 <Inst> also what is a cabal.project file?
11:24:10 <Inst> my cabal init tends to produce x.cabal
11:24:34 <tomsmeding> Inst: https://cabal.readthedocs.io/en/3.8/cabal-project.html
11:24:40 <tomsmeding> separate thing
11:24:43 <tomsmeding> optional
11:25:01 <tomsmeding> it's kiiiinda like stack.yaml but larger-scoped
11:25:08 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 248 seconds)
11:25:16 xff0x joins (~xff0x@ai071162.d.east.v6connect.net)
11:25:18 <tomsmeding> seeing as there's packages:, with-compiler:, etc
11:25:41 <Inst> is it ill-advised to dump your pastebin into my global cabal file?
11:25:45 <Inst> cabal.config file?
11:25:50 <tomsmeding> oh yeah don't do that
11:26:31 <tomsmeding> the idea of a cabal.project is that it you can put that in the top level directory of a repository, to have shared configuration for the various haskell packages in subdirectories
11:27:13 freeside joins (~mengwong@103.252.202.193)
11:27:18 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
11:27:30 <Inst> see, the thing is
11:27:37 <Inst> VSC is reading my entire Haskell directory as one project
11:28:49 <Inst> that's interesting, cabal is just hanging on trying to install accelerate
11:28:52 <tomsmeding> Inst: try creating a hie.yaml file in your Haskell directory with these contents https://paste.tomsmeding.com/ngjWTcJQ (modify paths to the actual subdirrectory names)
11:28:59 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
11:29:12 <tomsmeding> that may direct HLS to do the right thing (only HLS reads hie.yaml, cabal doesn't care about it)
11:30:34 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:30:43 teo joins (~teo@user/teo)
11:31:22 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
11:31:32 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds)
11:31:54 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
11:36:18 yuribarros joins (~Srain@2804:14c:65e4:865c::1000)
11:37:19 <Inst> i ran implicit-hie and got a crash
11:37:20 <Inst> ;_;
11:37:40 <Inst> yeah, ummm, okay
11:37:46 <Inst> i'll try that later, but otherwise, not going to try it
11:37:51 <Inst> i'm pretty reckless with my haskell folder
11:37:56 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 248 seconds)
11:37:57 <Inst> like, i have 20-40 different projects
11:38:04 <Inst> i have an entire folder named scratch which is done without cabal files, etc
11:38:32 <Inst> considering that, might be a good idea to clean up the haskell folder and port the projects i actually care about to the new one
11:39:40 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
11:41:02 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:41:06 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
11:41:11 chromoblob joins (~user@37.113.164.122)
11:41:53 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
11:42:44 <yuribarros> Anyone can help with this issue:
11:42:46 <yuribarros> https://github.com/albertov/bindings-gdal/issues/20
11:42:52 <yuribarros> Thanks in advance!
11:44:36 freeside joins (~mengwong@103.252.202.193)
11:45:44 <dminuoso> yuribarros: You have already done the right thing. :)
11:46:13 <dminuoso> That library has not followed https://gitlab.haskell.org/haskell/prime/-/wikis/libraries/proposals/monad-fail
11:46:21 <dminuoso> (And thus has incorrect base bounds)
11:46:40 <dminuoso> Well I guess any package without an upper base constraint is incorrect.
11:48:28 nate4 joins (~nate@98.45.169.16)
11:48:30 <jackdk> One of these days I will write up my rant about stack's default templates, because it's very fond of generating <5 upper bounds on base
11:51:17 <yuribarros> @dminuoso Thanks. I thought this was related to GHC version.
11:51:17 <lambdabot> Unknown command, try @list
11:51:25 <dminuoso> yuribarros: It is.
11:51:36 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:51:40 <dminuoso> yuribarros: Each GHC version has a corresponding base package at a particular version.
11:52:01 <dminuoso> They are decoupled for other reasons, which from a casual user perspective is sadly terribly confusing.
11:52:07 <yuribarros> But it should be identified in the cabal file, right?
11:52:18 <dminuoso> Yes, but it has an incorrect wide open bound on the base version
11:52:28 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
11:52:33 <dminuoso> https://github.com/albertov/bindings-gdal/blob/master/bindings-gdal.cabal#L81
11:53:14 <dminuoso> Nobody can tell you when, or if, we ever reach base 5.0. So this essentially says "compatible with all future GHC versions until some indeterminate time in the future"
11:53:37 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
11:54:41 zeenk joins (~zeenk@2a02:2f04:a208:3600::7fe)
11:54:50 <yuribarros> I understand now. So theoretically it's just a matter of finding the upper constraint for base?
11:55:14 <dminuoso> That will at least improve the quality of the package, but will leave you with sorrow if you want or must use a newer GHC version.
11:55:55 <dminuoso> Presumably 8.4 should work
11:57:04 <dminuoso> A better solution is to a) either make changes following the monad fail proposal wiki entry linked above, or b) just supply a MonadFail instance and tighten the lower bound (as to not support older GHC anymore)
11:58:53 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1)
12:00:07 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
12:01:37 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
12:01:43 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:02:13 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:03:06 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
12:03:30 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1) (Ping timeout: 256 seconds)
12:08:49 <yuribarros> Thank you @dminuoso. So I'll try to figure out this base version and try to work something to use a newer GHC later (or even hopefully I get the response of the maintainer before this)
12:09:22 <dminuoso> yuribarros: The above wiki has all the bits necessary to make the adaption.
12:09:27 <dminuoso> Feel free to ask if you need further help
12:09:56 <dminuoso> Or maybe not mmm
12:10:55 <dminuoso> It has at least some of the bits, depending on which path you chose.
12:11:25 × califax quits (~califax@user/califx) (Write error: Connection reset by peer)
12:11:25 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer)
12:12:40 <yuribarros> Nice. I may be adventurous myself and make a fork x) I'll figure out later. I'll study the monadfail class, this should be a nice exercise.
12:13:00 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:13:17 califax joins (~califax@user/califx)
12:13:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:15:36 <yuribarros> It even has a section "adapting old code", very convenient
12:15:42 <dminuoso> yuribarros: I'll give you a slight hint, however. You will not need a MonadFail insatnce. :)
12:15:57 <dminuoso> (That's with the understanding *where* and *why* the error occurs)
12:16:30 <dminuoso> Take note that this error does not occur in the library, just in this tiny executable.
12:16:59 <yuribarros> I actually tried this yesterday, it looked like the obvious solution
12:17:41 <yuribarros> The more you learn
12:19:02 × bw_ quits (sid2730@user/betawaffle) ()
12:19:42 bw_ joins (sid2730@id-2730.ilkley.irccloud.com)
12:22:03 bw_ is now known as betawaffle
12:22:49 × betawaffle quits (sid2730@id-2730.ilkley.irccloud.com) (Changing host)
12:22:49 betawaffle joins (sid2730@user/betawaffle)
12:22:49 betawaffle is now known as bw
12:30:49 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
12:32:16 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
12:34:01 <Profpatsch> Has anybody tried a HasField-based approach to environment passing?
12:35:17 jakalx joins (~jakalx@base.jakalx.net)
12:35:19 <Profpatsch> e.g. startServer :: (HasField "database" conf DB, Monad m) => conf -> m ()
12:35:22 Guest61 joins (~Guest61@213.231.141.4)
12:35:56 × xilo quits (~yourname@84.32.165.17) (Changing host)
12:35:56 xilo joins (~yourname@user/xilo)
12:36:32 <Profpatsch> Or in combination with RIO: (HasField "database" env DB) => RIO env ()
12:37:37 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
12:38:27 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Ping timeout: 256 seconds)
12:39:19 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:39:53 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Client Quit)
12:46:54 <dminuoso> Profpatsch: Its somewhat frequently seen with optics/lens
12:47:27 <dminuoso> (see makeClassy)
12:48:09 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
12:50:26 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
12:50:46 <probie> I've seen it, but never done it. I prefer something concrete like `HasDatabase env`.
12:52:23 <dminuoso> Well, I suppose makeClassy could be adapted to the sake effect
12:56:43 <jean-paul[m]> I have a toy project where I tried the HasX approach but I had a lot of Xs and it got really annoying really quickly. I was going to try to figure out something more succinct but I haven't gotten back to it since then.
12:58:42 <dminuoso> The HasX approach is nice if you have a lot of duplication going on
12:58:54 califax joins (~califax@user/califx)
12:59:55 <dminuoso> Its not entirely random you see this more frequently with lens/optics, since if you have these deeply nested types, where you have repetition of some structures, that you can suddenly write code that works polymorphic over anything that has the same shared structure in them somewhere
13:01:08 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
13:02:02 freeside joins (~mengwong@103.252.202.193)
13:03:55 jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
13:04:42 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
13:06:28 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds)
13:08:20 Feuermagier joins (~Feuermagi@user/feuermagier)
13:18:41 Guest75 joins (~Guest75@178.141.130.118)
13:21:08 × madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds)
13:23:00 madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net)
13:24:22 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 252 seconds)
13:24:27 <Dominik[m]1> Yes. I think the HasX approach is especially useful if you have many different data types having X. But it does not work too well if you only have a few data types with many different Xs (e.g., X, Y, Z, ...), so to speak.
13:26:23 × accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
13:26:34 freeside joins (~mengwong@103.252.202.193)
13:28:36 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 255 seconds)
13:35:14 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:39:50 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Read error: Connection reset by peer)
13:40:04 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
13:41:04 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
13:42:12 × jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
13:44:17 mei joins (~mei@user/mei)
13:44:21 <merijn> Profpatsch: tbh, I don't really like that approach, since it's fairly verbose and leaking a bunch of internal info
13:45:04 <kuribas> If possible, I prefer monomorphic functions, and I just extract the right handle from the environment.
13:45:30 mei__ joins (~mei@user/mei)
13:45:43 <merijn> kuribas: The polymorphism can be nice, but that's very little benefit to "HasDatabase env" vs an mtl-style "MonadDatabase m"
13:46:30 <dminuoso> Note that you can also invert the control here:
13:46:43 <kuribas> merijn: what else is there?
13:46:44 sawilagar joins (~sawilagar@user/sawilagar)
13:46:50 <dminuoso> withReaderT :: (r' -> r) -> ReaderT r m a -> ReaderT r' m a
13:46:52 <carbolymer> merijn: well, you don't have write instances for classes everywhere
13:47:12 × mei_ quits (~mei@user/mei) (Ping timeout: 256 seconds)
13:47:23 <dminuoso> Things like that let you express code rather as `RIO MyType s` and you just select the environment at the call site.
13:47:23 <carbolymer> merijn: imo `HasDatabase m` is more flexible
13:47:56 cafkafk joins (~cafkafk@fsf/member/cafkafk)
13:48:02 <dminuoso> carbolymer: Its less flexible since you have less information.
13:48:36 <dminuoso> With MonadDatabase it is implied you also be supplied with methods like `connect :: MonadDatabase m => m ()`
13:48:47 <merijn> carbolymer: You only have to write "classes everywhere" if you plan to have tons of instances, in which case I will argue "you are doing it wrong"
13:48:50 <dminuoso> (Or rather, you can simply conjure their existence)
13:49:10 × mei quits (~mei@user/mei) (Ping timeout: 260 seconds)
13:49:57 <kuribas> I just do "inner :: MyDbHandle -> ...", "outer :: Env -> ... ; outer env = ... inner (getHandle env) ...
13:50:19 <kuribas> merijn: what's wrong with this?
13:50:51 <kuribas> no polymorphism, type classes, or monad stacks needed.
13:50:53 <carbolymer> dminuoso: `HasDatabase m` implies that you can extract some DB type from `m` with all those methods you need
13:52:05 <carbolymer> s/methods/functions
13:52:05 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
13:52:16 <carbolymer> (you can leave java, but java won't leave you)
13:52:44 <merijn> kuribas: That's nice if you know the structure of your entire code, but if you're doing exploratory stuff and dunno where to put everything
13:52:44 × Guest61 quits (~Guest61@213.231.141.4) (Quit: Client closed)
13:53:25 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
13:53:26 <kuribas> merijn: huh? I just use the handle if needed, how does that imply that I need to know the whole structure?
13:55:19 <carbolymer> merijn: well not everywhere, but I had to maintain a few redundant instances, one proper one, one for tests, one for one level-higher monad stack used in this weird part of the codebase - too much of boilerplate; for me `Has Db env, MonadReader env m => m ()` seems to be the sweet spot
13:57:29 gentauro joins (~gentauro@user/gentauro)
14:00:31 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1)
14:00:43 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
14:01:21 akegalj joins (~akegalj@141-136-210-147.dsl.iskon.hr)
14:03:42 jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
14:04:57 <merijn> kuribas: If something deeply nested needs access to the database you have refactor the entire transitive call tree to pass the argument
14:05:02 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1) (Ping timeout: 255 seconds)
14:05:22 chromoblob joins (~user@37.113.164.122)
14:05:22 <merijn> carbolymer: tbh, MonadReader (and all of the classes in mtl) are giant anti-patterns, imo
14:05:34 <carbolymer> merijn: why?
14:06:15 <carbolymer> I mean, I see the point for the other ones; but what's wrong with MonadReader?
14:06:32 <kuribas> merijn: no, I just pass the env
14:06:55 × chromoblob quits (~user@37.113.164.122) (Read error: Connection reset by peer)
14:07:20 <merijn> carbolymer: They don't compose, you can only have a single instance in your code, so you can never have it in a public API (that'd prevent people from using their own) and it's just to generic
14:08:03 <merijn> kuribas: My point is, that if my program suddenly needs some db logic somewhere 10 calls away from where the Env is currently available, I need to modify the entire transitive call tree of those 10 calls to pass Env
14:08:04 <carbolymer> merijn: so what instead? specialized classes like `MonadEnvironment` ?
14:08:19 <kuribas> merijn: https://jaspervdj.be/posts/2018-03-08-handle-pattern.html
14:08:31 <merijn> carbolymer: Yes, the more (program) specific, the better
14:08:45 <kuribas> merijn: well, otherwise you have to add a typeclass to 10 calls
14:09:19 <merijn> carbolymer: MonadLogger/MonadDatabase, etc. will only have a single sensible meaning within an application
14:09:30 <kuribas> merijn: but in my case those 10 calls already have an env
14:09:42 <merijn> kuribas: Well, *most* of my code is monomorphic where possible, so I don't have to add that when the class exists
14:10:09 <merijn> kuribas: Even functions that use nothing from the handle? you just always blindly pass a dummy argument?
14:10:20 <merijn> And if you do, how is that different from just using ReaderT? :)
14:10:23 chromoblob joins (~user@37.113.164.122)
14:10:33 <kuribas> merijn: not mutch :)
14:10:56 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
14:11:18 <kuribas> merijn: where do you get the database handle from, if you are not passing it, and not using a typeclass?
14:13:36 <dminuoso> merijn: I think its difficult to generalize.
14:13:39 × constxd quits (~brad@77.241.136.117.bredband.3.dk) (Ping timeout: 260 seconds)
14:13:49 <dminuoso> For some of our programs, having a big Env that has just everything inside is perfectly fine.
14:14:11 <dminuoso> Yes it exposes a bit much, but honestly the trade off is just simplicity in implementation
14:14:13 <kuribas> and use a smaller env for independent subsystems
14:14:38 <dminuoso> If experience shows its not abused and does not lead to problems, we have effectively saved time compared to carrying a dozen different environment types and zooming in at the appropriate places
14:14:58 <kuribas> this
14:15:37 <albet70> why Data.List doesn't have splitOn?
14:15:55 <dminuoso> albet70: Because Data.List is not well suited for that type of operation.
14:16:06 <albet70> let String as [Char], but why not splitOn?
14:16:27 <albet70> but String is always needed splitOn
14:16:45 <albet70> what's the suggestion? turn it to Text?
14:16:47 <dminuoso> Yes.
14:16:54 <dminuoso> Precisely because String ~ [Char]
14:17:06 <albet70> wtf?
14:17:41 <dminuoso> albet70: comparing substrings is already quite poor in complexity, if you do this with [Char] you do not even have locality of reference.
14:18:00 <dminuoso> s/substrings/strings.
14:22:47 <albet70> if I want a string split, turn String to Text, do splitOn, turn Text to String, this is insane
14:23:06 <dminuoso> String is not really good for textual processing.
14:23:13 <dminuoso> It's one of the biggest historical accidents we have.
14:23:41 <dminuoso> I mean you can conjure up a splitOn if you like, the `extra` package can show you how
14:23:43 <albet70> so when you guys will fix it? do you have a plan?
14:24:10 <dminuoso> I do not think this will happen any time soon.
14:24:12 <dminuoso> If ever.
14:24:40 <dminuoso> albet70: You can also just consider switching into Text and *sticking* to it.
14:24:50 <dminuoso> Which is what haskellers that do text processing tend to do
14:25:30 <dminuoso> OIr you use something like `split`
14:26:09 <albet70> but some type like FilePath is define as String not Text in some libraries
14:26:22 <dminuoso> Thing is, if you want this fast you should do something liek Rabin-Karp (which bytestring uses, for instance)
14:26:26 <albet70> String is very used in a lot of lib
14:26:37 <dminuoso> albet70: `type FilePath = String` is a prelude type alias.
14:26:39 <dminuoso> And yes.
14:26:48 <maerwald[m]> albet70: the new filepath is not String
14:26:57 <dminuoso> All hail maerwald[m] :)
14:27:10 <maerwald[m]> https://hasufell.github.io/posts/2022-06-29-fixing-haskell-filepaths.html
14:28:14 <albet70> this will relate to another question, some lib are only with the old version of ghc
14:28:48 <albet70> some are specific, not too old, not too new
14:28:58 <dminuoso> Question, can you do robin-karp on utf8?
14:29:16 <dminuoso> Or do you just have to pad each codepoint to 4 octets for that?
14:30:05 comerijn joins (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl)
14:30:14 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
14:30:59 srz joins (~srz@181.228.49.93)
14:31:10 <albet70> I don't understand what do you mean
14:31:30 Sgeo joins (~Sgeo@user/sgeo)
14:32:55 × merijn quits (~merijn@c-001-001-012.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
14:33:30 <dminuoso> albet70: So `bytestring` uses robin-karp for breakSubstring for example (which you could use to trivially build a splitOn around), which is quite nice because in many cases works in linear time
14:34:04 <dminuoso> `text` does it quite manual with o(m+n) which is still fairly good
14:35:06 <dminuoso> or well, it does *something*, not sure what.
14:35:56 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
14:36:08 <dminuoso> No explanatory note in the introducing commit, sadly
14:36:14 <dminuoso> https://hackage.haskell.org/package/text-2.0.1/docs/src/Data.Text.Internal.Search.html#indices%27
14:37:48 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
14:40:38 img joins (~img@user/img)
14:42:43 lucerne joins (~lucerne@5.116.75.203)
14:43:04 freeside joins (~mengwong@103.252.202.193)
14:43:38 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
14:44:53 <albet70> ok
14:46:21 <albet70> {do; a <- param "a"; b <- param "b" ...}, could it be with traverse?
14:47:01 <dminuoso> albet70: Not sure, perhaps. It depends on what goes into `...`
14:49:01 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
14:50:02 <[exa]> albet70: `[a,b] <- traverse param ["a","b"]` could work but at that point the variable names start getting mildly disconnected from the param names?
14:50:44 sawilagar_ joins (~sawilagar@user/sawilagar)
14:51:33 <dminuoso> [exa]: I see. We need a new extension called VerticalLayouts https://gist.github.com/dminuoso/ac3a697ed7a0d9b75e874f4dede8454e
14:51:52 <dminuoso> ski probably knows a language or two that has such layouting rules.
14:51:58 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
14:51:58 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
14:51:58 wroathe joins (~wroathe@user/wroathe)
14:52:17 <dminuoso> (I do *not* want to write a parser for that)
14:52:50 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 240 seconds)
14:53:32 <albet70> that get "/:path:/:to" in scotty is very silly to capture all unknow path, so I trying to use function to instead that lots of "param"
14:53:51 <[exa]> (the annoying part of my brain just started scheming how easy this would be to represent with 2D packrat parsers)
14:55:05 <[exa]> albet70: maybe make a small wrapper that can do something like `gluedRoute ["path","to"] $ \path to -> do stuff...` ?
14:55:12 × mikoto-chan quits (~mikoto-ch@164.5.249.78) (Read error: Connection reset by peer)
14:57:02 <dminuoso> You will want to use tuples + typeclass instead if the number of params varies.
14:57:14 <dminuoso> gluedRoute ("path", "to") \path to -> ...
14:57:24 <dminuoso> gluedRoute ("path", "to", "thing") \path to thing -> ...
14:57:43 constxd joins (~brad@77.241.136.168.bredband.3.dk)
14:57:51 <albet70> the problem is scotty use get "/:path/:to" do ... to capture the url
14:58:07 <dminuoso> albet70: well you can use gluedRoute to do both.
14:59:13 <dminuoso> A monomorphic version might be: gluedRoute (a,b) f = get ("/:" <> a <> "/:" <> b) (f <$> param a <*> param b)
14:59:25 <albet70> @hoogle gluedRoute
14:59:25 <lambdabot> No results found
15:00:19 <albet70> but the url is not just two level some times
15:00:41 <albet70> it may be a/b/c or a/b/c/d
15:00:59 <dminuoso> You can either write a bunch of functions `gluedRoute2`, `gluedRoute3`, or `gluedRoute4`, or combine them into a typeclass
15:01:12 <albet70> so need `get "/:a/:b/:c"
15:01:34 <albet70> how?
15:01:38 <dminuoso> How what?
15:01:58 <albet70> combine them into a typeclass? and how that avoid those?
15:02:28 <dminuoso> albet70: well with a typeclass you could hide gluedRoute2, gluedRoute3, gluedRoute4, etc behind a single method `gluedRoute`
15:03:14 <albet70> this gluedRoute it may have one parameter, two, three, or four, it's always unknown
15:03:35 <dminuoso> But the typeclass trick involves some extensions and is a bit more complicated. Given that I get the impression you are newer to the language, I suggest you start with gluedRoute2, gluedRoute3, gluedRoute4, etc approach.
15:03:42 <albet70> because the url leve is unknown
15:03:56 <dminuoso> Which is fine, because you know how many arguments go in there. And then you dont need a tuple either.
15:04:30 <albet70> no, I don't know how many arguments
15:04:51 <dminuoso> At each call site you do
15:05:02 <albet70> yes
15:05:43 <albet70> how to define one function to do them all
15:06:31 <dminuoso> Just write them out manually
15:07:44 <albet70> so I have to write gluedRoute, gluedRoute2, and glueRoute3, etc, but I want a glueRouteX
15:08:27 <dminuoso> It is possible to write a generalized gluedRouteX, but it will involve quite a few complicated extensions.
15:08:32 <dminuoso> https://gist.github.com/dminuoso/b4deb2d5e5e53e8f414973697a635e40
15:08:37 <dminuoso> This is *much* easier.
15:09:07 <tomsmeding> dminuoso: https://en.wikipedia.org/wiki/Epigram_(programming_language)
15:09:40 <dminuoso> tomsmeding: oh fancy! nice
15:10:11 × constxd quits (~brad@77.241.136.168.bredband.3.dk) (Ping timeout: 268 seconds)
15:10:34 <dminuoso> albet70: Sometimes programmers have an unhealthy aversion to boilerplate or repetition. It takes a while to recognize when is better to just succumb to it.
15:13:28 <kuribas> dminuoso: yeah. Especially if the boilerplate is automatically checked.
15:14:22 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
15:14:23 <[exa]> ah I messed up my example there
15:14:51 <kuribas> dminuoso: the problem with repetition is when the repeated part can become inconsistent.
15:14:52 <[exa]> should have been `gluedRoute ["a", "b"] $ \a b -> do ...`
15:15:12 <kuribas> But if that cannot happen, IMO boilerplate isn't a big problem.
15:15:22 <dminuoso> [exa]: that doesnt look like anything relevant changed there. but it should still be a tuple, see my gist
15:15:23 <[exa]> and again :D `gluedRoute ["a", "b"] $ \[a,b] -> do ...` <-- albet70
15:15:31 <kuribas> People often obsess over write a little shorter code at price of consideral complexity.
15:15:44 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
15:15:50 <[exa]> yeah the \[a,b] is so unnatural that I messed it up for the second time... wonder if it requires parentheses
15:16:11 <dminuoso> kuribas: Of course. I think one thing that quite a few programmers dont do well, is actually putting a value on time, effort and cost.
15:16:25 <tomsmeding> dminuoso: there's also https://www.cl.cam.ac.uk/~pes20/ott/paper-long.pdf (see Fig. 1 on p.6)
15:16:33 <kuribas> dminuoso: true. I am guily as well :)
15:17:08 <dminuoso> A generalization like gluedRouteN is possible, but takes particular extra effort and considerably decreases the quality of diagnostics. You are very likely to lose a lot more time there, than is ever lost on an inconsistency typo you may have in the gluedRoute1/2/3/4 route
15:18:39 <dminuoso> And there also comes the cost of readability of yourself if you look at it a week/month/year from now, or when you onboard other maintainers.
15:24:55 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
15:25:07 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
15:26:55 × acidjnk quits (~acidjnk@p200300d6e7137a2348c5e2c763436845.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
15:28:51 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
15:29:56 acidjnk joins (~acidjnk@p200300d6e7137a84584e92a62d782504.dip0.t-ipconnect.de)
15:33:54 accord joins (uid568320@id-568320.hampstead.irccloud.com)
15:34:34 opticblast joins (~Thunderbi@secure-165.caltech.edu)
15:34:48 opticblast parts (~Thunderbi@secure-165.caltech.edu) ()
15:34:54 opticblast joins (~Thunderbi@secure-165.caltech.edu)
15:36:08 × dsrt^ quits (~dsrt@76.145.185.103) (Remote host closed the connection)
15:36:53 <codedmart> I am still struggling with this a bit. How would I change this so it was recursive for multiple size lists. This type checks and works but only works for lists of 1, 2, or 3 elements long. https://gist.github.com/codedmart/c7e2fa0b91fc58cae12200d431dc0b07
15:38:59 <codedmart> I think what confuses me the most right now is the type level part ex '( or '[ and ':. Then what I have access to where in the type vs the mkId definition.
15:39:13 <albet70> func :: String -> IO () could this func return IO String?
15:39:38 <geekosaur> albet70, only if you change the type signature. IO () is fixed
15:40:22 <albet70> how to construct IO String? since IO isn't data constructor
15:40:30 <c_wraith> pure/return
15:40:36 <albet70> ok
15:46:25 <albet70> dminuoso , this is the code https://paste.tomsmeding.com/TRyxBsLL I think gluedRouteN is possible, but it still need to call gluedRouteN multiple times to match all the diffrent level url
15:46:57 srk- joins (~sorki@user/srk)
15:49:34 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
15:49:51 kenran joins (~user@user/kenran)
15:49:58 nate4 joins (~nate@98.45.169.16)
15:50:12 × srk quits (~sorki@user/srk) (Ping timeout: 248 seconds)
15:50:12 srk- is now known as srk
15:50:39 constxd joins (~brad@77.241.136.168.bredband.3.dk)
15:51:20 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
15:55:12 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
15:55:54 mauke joins (~mauke@schedar.uberspace.de)
15:56:36 × teo quits (~teo@user/teo) (Ping timeout: 248 seconds)
15:59:48 × razetime quits (~quassel@117.193.4.209) (Remote host closed the connection)
16:00:25 × mauke quits (~mauke@schedar.uberspace.de) (Changing host)
16:00:25 mauke joins (~mauke@user/mauke)
16:01:59 × tdammers quits (~tdammers@77.109.72.118.res.static.edpnet.net) (Ping timeout: 268 seconds)
16:05:29 oyster_ice_cream joins (~quassel@190.22.9.251)
16:06:45 × Guest75 quits (~Guest75@178.141.130.118) (Quit: Client closed)
16:07:28 freeside joins (~mengwong@103.252.202.193)
16:08:09 × constxd quits (~brad@77.241.136.168.bredband.3.dk) (Ping timeout: 268 seconds)
16:08:53 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
16:09:41 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
16:13:33 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
16:16:12 <sawilagar_> hi guys? could you please explain this:
16:16:18 <sawilagar_> ghci> 10252519345963644753026.0 :: Double
16:16:18 <sawilagar_> 1.0252519345963644e22
16:17:02 <comerijn> What exactly is there to explain?
16:17:29 <sawilagar_> looks like point is in the wrong place
16:17:53 <sawilagar_> ghci> fromIntegral 10252519345963644753026 :: Double
16:17:54 <sawilagar_> 1.0252519345963644e22
16:17:56 <dolio> It's in scientific notation.
16:17:58 <comerijn> sawilagar_: You might want to look up "scientific notation"
16:18:09 <comerijn> Note the e22 at the end
16:18:28 <sawilagar_> really, thanks
16:18:29 <comerijn> > 1000 == 1e3
16:18:32 <lambdabot> True
16:18:48 <comerijn> XeN -> X * 10^N
16:19:41 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
16:19:48 <mauke> > 1.0252519345963644 * 10^22
16:19:50 <lambdabot> 1.0252519345963644e22
16:20:49 <sawilagar_> I've actually got problem with this:
16:20:50 <sawilagar_> ghci> (fromIntegral 10252519345963644753026 :: Double) == (fromIntegral 10252519345963644753025 :: Double)
16:20:51 <sawilagar_> True
16:21:14 <comerijn> sawilagar_: Double cannot accurately represent integer values larger than 2^53
16:21:22 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
16:21:31 <sawilagar_> could you please advise the proper type?
16:21:34 <c_wraith> note that none of this is specific to Haskell. It's how hardware works.
16:21:36 <comerijn> (or rather, integer values larger than 2^53 are not guaranteed to be accurately representible)
16:21:46 <comerijn> sawilagar_: Integer, for one? :)
16:21:55 <c_wraith> What are your requirements for the type?
16:21:57 <akegalj> sawilagar_: you could use Rational
16:22:19 <comerijn> Yeah, if you can't use Integer because you need divisions/fractions, then Rational would be the way to go
16:23:04 califax joins (~califax@user/califx)
16:23:23 <sawilagar_> here's my source code, it's a task from CodeWars. and some really large numbers are failing https://pastebin.com/raw/Vm5qv8PS
16:23:53 <c_wraith> Rational is great for simple use cases, but it should be avoided in numeric algorithms as the amount of memory required for a Rational value isn't bounded by its magnitude
16:24:31 <c_wraith> sawilagar_: that doesn't need a do
16:25:39 <c_wraith> I'd recommend turning that logic around so that you never convert to floating point
16:26:18 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
16:26:21 <sawilagar_> thanks for your advice, I'll try it
16:27:01 <c_wraith> Hmm. That might be tough, depending on how it's called.
16:30:12 × comerijn quits (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
16:30:58 × srz quits (~srz@181.228.49.93) (Ping timeout: 256 seconds)
16:31:42 janus parts (janus@anubis.0x90.dk) ()
16:33:26 titibandit joins (~titibandi@xdsl-87-78-52-100.nc.de)
16:37:45 × oyster_ice_cream quits (~quassel@190.22.9.251) (Ping timeout: 260 seconds)
16:38:05 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1)
16:40:23 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
16:40:36 jakalx joins (~jakalx@base.jakalx.net)
16:40:40 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:9067:f459:5142:c847)
16:41:14 constxd joins (~brad@77.241.136.168.bredband.3.dk)
16:48:01 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
16:50:21 <mauke> > let findNb m = case head (dropWhile (\(_, x) -> x < m) buildings) of { (i, x) | x == m -> i; _ -> -1 } where buildings = iterate (\(i, z) -> let i' = i+1 in (i', z + i'^3)) (0, 0) in findNb 1071225
16:50:23 <lambdabot> 45
16:50:48 × constxd quits (~brad@77.241.136.168.bredband.3.dk) (Ping timeout: 256 seconds)
16:52:30 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 256 seconds)
16:54:08 tabaqui joins (~root@88.231.62.215)
16:56:15 × MajorBiscuit quits (~MajorBisc@145.94.146.35) (Ping timeout: 268 seconds)
16:56:56 merijn joins (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl)
16:58:30 × Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 240 seconds)
16:59:22 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
17:04:27 oyster_ice_cream joins (~quassel@2800:150:111:1f1a:b5ec:7d7d:95d0:903b)
17:05:59 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
17:07:02 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
17:09:15 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
17:10:50 constxd joins (~brad@77.241.136.168.bredband.3.dk)
17:11:33 Kaiepi joins (~Kaiepi@108.175.84.104)
17:12:10 × oyster_ice_cream quits (~quassel@2800:150:111:1f1a:b5ec:7d7d:95d0:903b) (Ping timeout: 260 seconds)
17:12:45 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
17:17:17 mikoto-chan joins (~mikoto-ch@164.5.249.78)
17:17:36 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
17:18:16 cafkafk joins (~cafkafk@fsf/member/cafkafk)
17:21:53 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:22:44 chromoblob joins (~user@37.113.164.122)
17:23:28 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:24:23 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:25:00 srz joins (~srz@181.228.49.93)
17:25:10 × titibandit quits (~titibandi@xdsl-87-78-52-100.nc.de) (Ping timeout: 240 seconds)
17:26:47 freeside joins (~mengwong@103.252.202.193)
17:28:29 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
17:29:00 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:29:52 ChaiTRex joins (~ChaiTRex@user/chaitrex)
17:30:47 × merijn quits (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
17:31:15 use-value1 joins (~Thunderbi@2a00:23c6:8a03:2f01:38e4:6025:87e4:a8aa)
17:31:31 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
17:33:10 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:9067:f459:5142:c847) (Ping timeout: 240 seconds)
17:33:10 use-value1 is now known as use-value
17:36:51 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:39:07 × lagash quits (lagash@lagash.shelltalk.net) (Remote host closed the connection)
17:39:55 titibandit joins (~titibandi@xdsl-78-34-153-165.nc.de)
17:41:25 oyster_ice_cream joins (~quassel@2800:150:111:1f1a:b5ec:7d7d:95d0:903b)
17:43:35 merijn joins (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl)
17:44:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
17:45:00 × kenran quits (~user@user/kenran) (Remote host closed the connection)
17:45:23 ChaiTRex joins (~ChaiTRex@user/chaitrex)
17:45:26 lagash joins (lagash@lagash.shelltalk.net)
17:47:45 arjun joins (~user@user/arjun)
17:48:10 × merijn quits (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
17:48:11 × dknite quits (~dknite@65.20.68.77) (Remote host closed the connection)
17:50:11 × nschoe quits (~q@141.101.51.197) (Ping timeout: 260 seconds)
17:51:59 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:52:38 cailtb^ joins (~cailtb@76.145.185.103)
17:53:00 Tuplanolla joins (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
17:58:42 freeside joins (~mengwong@103.252.202.193)
18:01:54 econo joins (uid147250@user/econo)
18:02:07 <dminuoso> albet70: It depends on whether you want to capture parameters or not.
18:02:35 <dminuoso> albet70: If you do, then gluedRouteN is complicated to write and requires several GHC extensions
18:03:20 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
18:03:28 × madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 268 seconds)
18:03:35 <dminuoso> albet70: And in the end, you *still* need to implement each length individually *anyway*
18:03:43 <dminuoso> That is, you do not get around that part unless you also use TemplateHaskell.
18:04:23 <dminuoso> But if you start using compile-time metaprogramming and several type extensions, all that for the mere comfort of using just `gluedRouteN` instead of gluedRoute1, gluedRoute2, gluedRoute3, gluedRoute4, you should seriously reevaluate your life choices that led you up to this point.
18:04:47 <dminuoso> It will require much more code to write, be much more complicated, induce a lot more problems.
18:05:58 <dminuoso> albet70: If you do want this automatic capturing in some way, look into servant. Be aware, that servant is a plethora of complicated type level tricks to accomplish exactly that. It's very complicated.
18:09:42 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:13:17 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
18:13:17 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
18:13:17 wroathe joins (~wroathe@user/wroathe)
18:14:21 freeside joins (~mengwong@103.252.202.193)
18:18:22 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
18:19:01 × acidjnk quits (~acidjnk@p200300d6e7137a84584e92a62d782504.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
18:19:45 sawilagar__ joins (~sawilagar@user/sawilagar)
18:19:47 × sawilagar_ quits (~sawilagar@user/sawilagar) (Remote host closed the connection)
18:19:58 dtman34 joins (~dtman34@2601:447:d000:93c9:90e9:6a34:e614:99b9)
18:24:26 × sawilagar__ quits (~sawilagar@user/sawilagar) (Ping timeout: 268 seconds)
18:24:44 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds)
18:25:05 × dtman34 quits (~dtman34@2601:447:d000:93c9:90e9:6a34:e614:99b9) (Ping timeout: 260 seconds)
18:33:11 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
18:33:58 × arjun quits (~user@user/arjun) (Remote host closed the connection)
18:36:28 × akegalj quits (~akegalj@141-136-210-147.dsl.iskon.hr) (Quit: leaving)
18:38:06 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
18:38:44 ec joins (~ec@gateway/tor-sasl/ec)
18:39:03 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
18:41:34 ec joins (~ec@gateway/tor-sasl/ec)
18:48:03 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:58:55 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:745a:dad5:a10b:a4d7) (Ping timeout: 260 seconds)
18:59:05 Player-205[m] joins (~sashaserp@2001:470:69fc:105::2:30b8)
19:04:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:06:01 ub joins (~Thunderbi@91.141.78.146.wireless.dyn.drei.com)
19:06:52 × lechner quits (~lechner@debian/lechner) (Remote host closed the connection)
19:10:09 emmanuelux joins (~emmanuelu@user/emmanuelux)
19:10:46 × constxd quits (~brad@77.241.136.168.bredband.3.dk) (Ping timeout: 256 seconds)
19:11:04 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
19:13:07 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
19:15:37 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1) (Remote host closed the connection)
19:17:28 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 268 seconds)
19:19:33 acidjnk joins (~acidjnk@p200300d6e7137a84584e92a62d782504.dip0.t-ipconnect.de)
19:20:24 × jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
19:21:37 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
19:22:15 ec joins (~ec@gateway/tor-sasl/ec)
19:24:35 × opticblast quits (~Thunderbi@secure-165.caltech.edu) (Ping timeout: 260 seconds)
19:24:59 × InstX1 quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 255 seconds)
19:25:45 × Inst quits (~Inst@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
19:27:24 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1)
19:28:42 constxd joins (~brad@77.68.183.226)
19:29:20 gmg joins (~user@user/gehmehgeh)
19:31:56 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
19:33:23 Erutuon joins (~Erutuon@user/erutuon)
19:37:05 × lucerne quits (~lucerne@5.116.75.203) (Read error: Connection reset by peer)
19:38:42 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
19:40:20 × constxd quits (~brad@77.68.183.226) (Ping timeout: 260 seconds)
19:42:03 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
19:42:07 × caryhartline quits (~caryhartl@107-140-218-181.lightspeed.rcsntx.sbcglobal.net) (Quit: caryhartline)
19:44:59 <oats> heyo, what does the "hls-powered" note mean on ghc entries in `ghcup tui`?
19:45:17 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:46:54 <yushyin> which ghc version has hls support, see also https://haskell-language-server.readthedocs.io/en/latest/support/ghc-version-support.html
19:48:08 ft joins (~ft@p508dbd59.dip0.t-ipconnect.de)
19:48:23 coot joins (~coot@213.134.171.3)
19:48:25 × mei__ quits (~mei@user/mei) (Remote host closed the connection)
19:48:51 mei__ joins (~mei@user/mei)
19:48:58 × califax quits (~califax@user/califx) (Remote host closed the connection)
19:50:06 × accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
19:50:16 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
19:50:36 opticblast joins (~Thunderbi@secure-165.caltech.edu)
19:50:40 califax joins (~califax@user/califx)
19:51:27 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
19:51:28 nate4 joins (~nate@98.45.169.16)
19:51:59 × califax quits (~califax@user/califx) (Remote host closed the connection)
19:53:07 <sm> the wording is a little confusing
19:54:52 × opticblast quits (~Thunderbi@secure-165.caltech.edu) (Ping timeout: 252 seconds)
19:55:35 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:56:19 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
19:56:26 <sm> it's the ghc versions for which there is a compatible hls binary installed, right ?
19:56:58 son0p joins (~ff@2604:3d08:5b7f:5540::6bfc)
19:57:08 opticblast joins (~Thunderbi@secure-165.caltech.edu)
19:59:32 × opticblast quits (~Thunderbi@secure-165.caltech.edu) (Remote host closed the connection)
20:00:00 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1) (Remote host closed the connection)
20:00:22 × beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 252 seconds)
20:02:37 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:02:47 califax joins (~califax@user/califx)
20:06:53 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
20:11:04 lortabac joins (~lortabac@2a01:e0a:541:b8f0:c757:b257:6ed8:adfb)
20:11:12 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Client Quit)
20:12:36 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:14:23 × srz quits (~srz@181.228.49.93) (Ping timeout: 260 seconds)
20:16:51 andreinovitcho joins (~a@132.203.169.168)
20:17:02 merijn joins (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl)
20:17:13 <andreinovitcho> @free fmap :: (a -> b) -> (F a -> F b)
20:17:14 <lambdabot> g . h = k . f => $map_F g . fmap h = fmap k . $map_F f
20:18:02 <andreinovitcho> @free fmap :: (a -> b) -> F a -> F b
20:18:02 <lambdabot> g . h = k . f => $map_F g . fmap h = fmap k . $map_F f
20:20:59 × andreinovitcho quits (~a@132.203.169.168) (Client Quit)
20:26:00 <oats> ooh what does that do
20:27:15 pavonia joins (~user@user/siracusa)
20:28:33 <mauke> generates theorems that you don't have to pay for
20:31:03 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
20:31:57 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Quit: WeeChat 3.6)
20:33:35 × whatsupdoc quits (uid509081@2a03:5180:f:4::7:c499) (Quit: Connection closed for inactivity)
20:35:04 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:c757:b257:6ed8:adfb) (Quit: WeeChat 2.8)
20:46:03 akegalj joins (~akegalj@141-136-210-147.dsl.iskon.hr)
20:46:36 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
20:46:53 × merijn quits (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
20:47:24 constxd joins (~brad@77.68.183.226)
20:48:07 sawilagar joins (~sawilagar@user/sawilagar)
20:48:40 caryhartline joins (~caryhartl@2603-8080-6a0e-8d88-d0ec-e190-f31a-ff70.res6.spectrum.com)
20:49:47 × Kaiepi quits (~Kaiepi@108.175.84.104) (Quit: Leaving)
20:52:40 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
20:54:25 Kaiepi joins (~Kaiepi@108.175.84.104)
20:59:27 freeside joins (~mengwong@103.252.202.193)
20:59:40 × [yella] quits (~yell@2607:fb90:8067:f8f1:5691:21e7:585a:a086) (Ping timeout: 260 seconds)
21:00:18 × oyster_ice_cream quits (~quassel@2800:150:111:1f1a:b5ec:7d7d:95d0:903b) (Read error: Connection reset by peer)
21:00:30 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1)
21:03:48 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds)
21:04:54 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5866:96fb:16f6:58d1) (Ping timeout: 255 seconds)
21:05:23 mc47 joins (~mc47@xmonad/TheMC47)
21:07:07 × mei__ quits (~mei@user/mei) (Ping timeout: 260 seconds)
21:14:30 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:16:27 freeside joins (~mengwong@103.252.202.193)
21:17:36 madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net)
21:20:41 × mmhat quits (~mmh@p200300f1c72dc6e0ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
21:21:19 <EvanR> theorems, they want to be free
21:22:15 InstX1 joins (~Liam@2601:6c4:4081:54f0:148c:5793:51b7:46e1)
21:23:58 <darkling> I am not a Gödel number, I an a free theorem!
21:24:25 <darkling> s/an/am/
21:25:00 × akegalj quits (~akegalj@141-136-210-147.dsl.iskon.hr) (Quit: leaving)
21:30:40 belovachap joins (~chapman@216-188-233-105.dyn.grandenetworks.net)
21:33:20 × titibandit quits (~titibandi@xdsl-78-34-153-165.nc.de) (Remote host closed the connection)
21:39:06 × cailtb^ quits (~cailtb@76.145.185.103) (Remote host closed the connection)
21:43:17 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
21:43:22 merijn joins (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl)
21:43:50 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
21:43:53 ddellacosta joins (~ddellacos@89.45.224.71)
21:47:56 × merijn quits (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
21:51:58 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
21:52:25 lucerne joins (~lucerne@5.116.75.203)
21:52:51 × lucerne quits (~lucerne@5.116.75.203) (Read error: Connection reset by peer)
21:57:06 × coot quits (~coot@213.134.171.3) (Quit: coot)
21:59:59 lucerne joins (~lucerne@5.116.75.203)
22:08:31 <probie> Is there a way to emit warnings in response to using an instance? e.g. if S and T are members of some typeclass C with function f, I want f (x :: T) to emit a warning, but not f (x :: S).
22:09:48 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
22:11:35 ec joins (~ec@gateway/tor-sasl/ec)
22:14:39 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:16:02 × lucerne quits (~lucerne@5.116.75.203) (Read error: Connection reset by peer)
22:18:32 srz joins (~srz@181.228.49.93)
22:19:00 × constxd quits (~brad@77.68.183.226) (Ping timeout: 260 seconds)
22:20:02 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
22:22:47 freeside joins (~mengwong@103.252.202.193)
22:25:07 <geekosaur> not that I'm aware of
22:25:55 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
22:27:13 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
22:28:42 <Clinton[m]> Is there a named function that folds `<|>` over a list? Or do I need to write one myself (which I know isn't hard, I just thought I should not reinvent the wheel).
22:28:46 jmorris joins (uid537181@id-537181.uxbridge.irccloud.com)
22:29:04 <monochrom> asum
22:29:08 <monochrom> @type asum
22:29:09 <lambdabot> (Foldable t, Alternative f) => t (f a) -> f a
22:29:21 <monochrom> Use t=[] for list.
22:29:52 <monochrom> "asum is awesome" >:)
22:31:24 × srz quits (~srz@181.228.49.93) (Remote host closed the connection)
22:32:16 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:33:43 merijn joins (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl)
22:34:35 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds)
22:35:31 srz joins (~srz@181.228.49.93)
22:37:07 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
22:38:30 × merijn quits (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
22:40:25 freeside joins (~mengwong@103.252.202.193)
22:43:21 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:44:42 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
22:45:07 × madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 260 seconds)
22:45:36 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:46:06 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
22:46:09 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
22:46:44 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
22:47:25 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
22:48:14 chexum joins (~quassel@gateway/tor-sasl/chexum)
22:49:59 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:51:15 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
22:52:10 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:53:17 × michalz quits (~michalz@185.246.207.197) (Remote host closed the connection)
22:53:42 kayvank joins (~user@52-119-115-185.PUBLIC.monkeybrains.net)
22:54:37 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
22:55:04 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:55:18 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
22:56:22 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:56:56 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:57:44 <xerox> @src asum @[] -- I wonder what would be needed to make this work
22:57:44 <lambdabot> Source not found. You untyped fool!
22:58:57 <hpc> @src [] join
22:58:58 <lambdabot> Source not found. I can't hear you -- I'm using the scrambler.
22:59:02 <hpc> @src join []
22:59:03 <lambdabot> Source not found. I can't hear you -- I'm using the scrambler.
22:59:05 <hpc> hmm
22:59:21 <hpc> xerox: that sort of thing is already in @src, but it's rather limited
22:59:50 <monochrom> @src [] (>>=)
22:59:51 <hpc> it's not really looking up source code, it basically just does a string lookup
23:00:13 <monochrom> But I am not sure what to do with two type variables
23:00:57 <monochrom> Oh! There is only one type variable, the one for the Alternative instance!
23:01:10 <monochrom> @src IO asum
23:01:10 <lambdabot> Source not found. Where did you learn to type?
23:01:51 <monochrom> But it probably really doesn't have asum.
23:04:42 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
23:04:50 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
23:04:58 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
23:05:35 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
23:05:55 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:06:18 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
23:06:49 chexum joins (~quassel@gateway/tor-sasl/chexum)
23:07:46 × euandreh quits (~Thunderbi@179.214.113.107) (Remote host closed the connection)
23:08:00 <xerox> yeah https://github.com/lambdabot/lambdabot/blob/master/lambdabot/State/source
23:09:39 euandreh joins (~Thunderbi@179.214.113.107)
23:12:23 × kayvank quits (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection)
23:14:27 × euandreh quits (~Thunderbi@179.214.113.107) (Client Quit)
23:16:44 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 268 seconds)
23:18:18 euandreh joins (~Thunderbi@179.214.113.107)
23:22:43 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
23:28:16 × aliosablack quits (~chomwitt@2a02:587:7a08:f700:1ac0:4dff:fedb:a3f1) (Ping timeout: 252 seconds)
23:28:51 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
23:31:01 × ubert quits (~Thunderbi@91.141.78.146.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
23:31:01 ub is now known as ubert
23:37:04 c209e6dc-4d76-47 joins (~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
23:37:26 <c209e6dc-4d76-47> Is there a way to know the stack trace for when ExceptT fails?
23:38:47 × mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 260 seconds)
23:39:16 merijn joins (~merijn@c-001-001-017.client.esciencecenter.eduvpn.nl)
23:42:06 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
23:43:15 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 268 seconds)
23:52:14 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
23:52:20 × Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 248 seconds)
23:52:58 nate4 joins (~nate@98.45.169.16)
23:54:44 freeside joins (~mengwong@103.252.202.193)
23:55:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:56:04 × caryhartline quits (~caryhartl@2603-8080-6a0e-8d88-d0ec-e190-f31a-ff70.res6.spectrum.com) (Quit: caryhartline)
23:58:10 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
23:58:15 k8yun joins (~k8yun@user/k8yun)

All times are in UTC on 2022-11-21.