Home liberachat/#haskell: Logs Calendar

Logs on 2024-10-14 (liberachat/#haskell)

00:00:37 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:03:39 × tcard__ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
00:03:55 tcard__ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
00:05:33 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:10:57 Pixi joins (~Pixi@user/pixi)
00:16:24 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:17:07 × tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in)
00:19:17 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
00:21:14 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
00:21:36 <Square> How do you deal with multimodule project (cabal.project) when using nix? Separate callCabal2Nix for each module?
00:31:08 × tabemann quits (~tabemann@2600:1700:7990:24e0:14d2:2457:bd7:5741) (Remote host closed the connection)
00:32:10 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:32:40 Guest66 joins (~Guest66@2601:152:4a80:2300:c948:b43e:8f75:aa7b)
00:33:11 <jackdk> The two approaches I use are: "have nix provide GHC+cabal, let cabal do packages", or "use haskell.nix". This avoids lots of fiddly package set overlay splicing, and regenerating the shell when a dependency changes.
00:34:09 <Inst> incoherence can be handled at the compilation stage, i.e, if you're trying to use an instance for which there is no imported typeclass, you throw an error
00:34:21 tabemann joins (~tabemann@2600:1700:7990:24e0:14d2:2457:bd7:5741)
00:35:23 <geekosaur> that's not incoherence
00:35:48 <geekosaur> incoherence is "two modules use different instances for the same type"
00:35:56 <Inst> is it reasonable to wish to control the exporting of instances / typeclasses?
00:37:06 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:37:19 <geekosaur> not when it leads to incoherence, no
00:37:38 <geekosaur> and the only way to prevent incoherence is to force instances to be global
00:37:47 <jackdk> IMHO no. That way lies madness, like the producer and consumer of a `Ord k => Map k v` disagreeing on which `Ord` to use for `k`. And then you just can't find entries which you are 100% certain that you put into your map.
00:38:24 <geekosaur> well, for that one it's actually something of a hack. IMO SML/NJ does it the right way
00:39:31 <geekosaur> (the Ord instance equivalent is owned by the Map, not by what Ord instance is in scope at use sites)
00:40:49 <geekosaur> *not determined by
00:45:03 × Guest66 quits (~Guest66@2601:152:4a80:2300:c948:b43e:8f75:aa7b) (Quit: Client closed)
00:47:58 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:48:45 <Square> jackdk, thanks
00:52:52 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:55:29 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:58:15 <monochrom> Perhaps the misguided want of localized unexported instances comes from mistaking type classes for OO interfaces.
01:03:15 <probie> geekosaur: without the one true Ord instance for a type, how do you efficiently union two maps? SML/NJ sidesteps this because two maps instantiated with different ORD_KEYs will be different types.
01:03:41 <geekosaur> isn't that kinda the point, though?
01:03:47 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:04:16 <monochrom> You can union two maps created from the same instantiated module.
01:04:48 <monochrom> Recall that an instantiated module gives you a suite of map functions, not a map.
01:04:57 <geekosaur> right
01:05:25 <monochrom> So use the same suite to create two maps and use the same suite to union the two maps.
01:05:38 <probie> But how do you do that in Haskell?
01:06:05 <monochrom> Haskell doesn't have SML's parameterized module system. OK OK I will emulate it.
01:06:09 <geekosaur> that was my point: you don't. we use a typeclass hack instead
01:06:40 <geekosaur> and I don't think Backpack can quite pull off emulating this, for all its pretensions toward providing MLish "functors"
01:07:13 <monochrom> I will also need existential type.
01:08:14 zmt00 joins (~zmt00@user/zmt00)
01:08:48 <monochrom> data M a = forall t. M{empty :: t, insert :: a -> t -> t, union :: t -> t -> a, etc etc}
01:10:02 <monochrom> instantiate :: (a -> a -> Ordering) -> M a; instantiate cmp = M{empty = ... ; insert = ... use cmp ..., union = ... use cmp ..., etc}
01:10:28 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:11:18 <geekosaur> Inst did earlier hint that he thought we were trying to find ways to emulate OOP in Haskell. (No, we aren't. OOP is something else. If I want OOP, I'll use an OO language, not Haskell; I have and use multiple tools.)
01:11:53 <probie> I think we're probably all in agreement about every fact here. I just misinterpreted intent and mistook the comment as "Haskell should do what SML/NJ" does, not "SML/NJ does this in a nice a way, unlike Haskell"
01:12:10 tonyday567 joins (~tonyday56@125-63-10-162.ip4.superloop.au)
01:12:15 <geekosaur> right, I meant the latter
01:12:34 <monochrom> A user will have to do everything under the same instantiate call. user = let m{empty, insert, union} = instantiate myCompare in union (insert 2 (insert 3 empty)) (insert 1 (insert 2 empty)))
01:13:07 <probie> s/" does/does"/
01:13:32 <monochrom> Eh, I think Haskell has a nice way and SML has a nice way.
01:13:56 <geekosaur> (I like SML/NJ's approach, but not so much that I'm abandoning Haskell for it…)
01:14:47 <c_wraith> And if you *really* need bad hacks, just remember there's always the reflection package!
01:14:58 <monochrom> :( :)
01:14:58 raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
01:15:03 <probie> Haskell's way means I can't safely use a `Double` as a key in a `Map` without needing to wrap it in a newtype
01:15:07 <geekosaur> I did for a moment wonder if that could be abused to do this…
01:15:21 <monochrom> Yes it totally can.
01:15:57 <monochrom> I think it is the whole point. When some abuses have just causes and don't count as abuses.
01:17:22 × alexherbo2 quits (~alexherbo@2a02-8440-3108-bfa0-f1d8-4d0f-e5fc-d7b0.rev.sfr.net) (Remote host closed the connection)
01:17:35 <monochrom> But here is a clean hack someone and I thought up: https://mail.haskell.org/pipermail/haskell-cafe/2017-May/127147.html
01:18:04 <dolio> What part can't backpack do? Not that it's nice to do this.
01:18:33 alexherbo2 joins (~alexherbo@2a02-8440-3108-bfa0-ddfb-d52c-f0fd-2cc2.rev.sfr.net)
01:18:39 <geekosaur> local open, I think, so you can parameteerize different maps differently?
01:18:46 <geekosaur> within the same module
01:19:37 <dolio> Oh. Well, you can parameterize the map functor multiple ways, I think. But it's not going to happen very locally.
01:20:13 <dolio> Like, not within a definition in a module, certainly.
01:20:48 <geekosaur> I thought that was what `open` was for?
01:21:33 <dolio> Only like, 'this module uses multiple map implementations, which happen to be two different instantiations of the same functor.'
01:21:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:22:02 × tonyday567 quits (~tonyday56@125-63-10-162.ip4.superloop.au) (Changing host)
01:22:02 tonyday567 joins (~tonyday56@user/tonyday567)
01:22:07 × alexherbo2 quits (~alexherbo@2a02-8440-3108-bfa0-ddfb-d52c-f0fd-2cc2.rev.sfr.net) (Remote host closed the connection)
01:22:34 <monochrom> Haskell doesn't have local open, not even for unparametrized 0th-order modules. Let's not talk about local open.
01:23:03 <dolio> Yeah.
01:23:40 <monochrom> So with backpack you have to split code into more files than SML requires, but you can still import multiple instantiations into the same user file.
01:24:01 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
01:24:06 <geekosaur> that was my point. backpack claims to add parameterized modules, but it doesn't and can't provide this so it's not anywhere near as useful as it should be
01:24:27 <monochrom> If you instantiate Map two ways, you write two files, one per instantiation. In a third file---the user file---you import both.
01:24:33 <dolio> I don't understand what you mean by "it doesn't."
01:24:52 <dolio> It does, but you still can't only import a module in a where clause or something.
01:25:07 <geekosaur> exactly
01:25:24 <geekosaur> let's put it this way: they're not first class if you cant' do that
01:25:52 <dolio> But they are parameterized.
01:26:12 <monochrom> I don't know, here is what I think, maybe too extreme: Nevermind paramtrizing. Would this make sense: "Haskell claims to have modules, but there is no open so it doesn't count".
01:27:05 <geekosaur> I didn't say either of those. I said it does not emulate ML functors. The MLish concept of functor includes first-class-ness, including local instantiation.
01:27:31 <geekosaur> I specifically did not limit it to parameterization
01:28:39 <geekosaur> (I will grant that Backpack was always on the losing side of that one: it requires an actual language change, it can't be simulated the way simply parameterizing modules sort-of can be)
01:35:48 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
01:38:43 × identity quits (~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91))
01:46:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:51:39 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
02:04:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:05:50 × td_ quits (~td@i5387090D.versanet.de) (Ping timeout: 252 seconds)
02:07:49 td_ joins (~td@83.135.9.1)
02:09:04 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
02:19:30 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:24:21 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
02:24:32 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:28:14 Sciencentistguy3 joins (~sciencent@hacksoc/ordinary-member)
02:30:20 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 265 seconds)
02:30:21 Sciencentistguy3 is now known as Sciencentistguy
02:35:17 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:40:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:52:10 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:58:48 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 246 seconds)
02:58:55 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
03:01:46 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds)
03:03:45 gmg joins (~user@user/gehmehgeh)
03:12:43 ephilalethes joins (~noumenon@113.51-175-156.customer.lyse.net)
03:15:19 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:20:16 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:22:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:27:35 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:31:11 aforemny joins (~aforemny@2001:9e8:6cdf:9f00:9304:f095:b881:d5be)
03:32:03 × aforemny_ quits (~aforemny@i577BEEEB.versanet.de) (Ping timeout: 245 seconds)
03:33:39 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 265 seconds)
03:35:28 vanishingideal joins (~vanishing@user/vanishingideal)
03:38:30 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:42:08 fun-safe-math joins (~fun-safe-@24.21.106.247)
03:43:13 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
03:50:45 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
03:50:45 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
03:52:06 Lord_of_Life_ is now known as Lord_of_Life
03:54:15 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:59:08 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:02:48 × Square quits (~Square@user/square) (Ping timeout: 252 seconds)
04:08:27 × raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 265 seconds)
04:10:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:10:36 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
04:15:17 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
04:23:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:28:25 × ZLima12 quits (~zlima12@user/meow/ZLima12) ()
04:30:08 ZLima12 joins (~zlima12@user/meow/ZLima12)
04:30:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:32:36 × tonyday567 quits (~tonyday56@user/tonyday567) (Ping timeout: 252 seconds)
04:38:39 × bh34e5_ quits (~bh34e5@user/bh34e5) (Ping timeout: 260 seconds)
04:41:46 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:47:07 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
04:51:03 × ZLima12 quits (~zlima12@user/meow/ZLima12) ()
04:52:34 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
04:52:36 ZLima12 joins (~zlima12@user/meow/ZLima12)
04:53:02 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
04:57:57 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Ping timeout: 276 seconds)
04:59:21 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:03:26 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
05:03:43 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
05:04:22 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:09:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
05:09:10 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
05:10:09 × ZLima12 quits (~zlima12@user/meow/ZLima12) (Ping timeout: 260 seconds)
05:17:53 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
05:18:19 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:19:30 ZLima12 joins (~zlima12@user/meow/ZLima12)
05:20:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:20:53 rvalue joins (~rvalue@user/rvalue)
05:21:50 raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
05:28:11 × raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 255 seconds)
05:28:35 michalz joins (~michalz@185.246.207.203)
05:29:00 rosco joins (~rosco@175.136.22.30)
05:29:32 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
05:30:05 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:35:53 arahael joins (~arahael@user/arahael)
05:39:25 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:40:30 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:45:21 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
05:48:28 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
05:56:16 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:56:34 euphores joins (~SASL_euph@user/euphores)
06:01:29 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
06:02:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:12:03 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:16:05 CiaoSen joins (~Jura@2a05:5800:2ca:cd00:ca4b:d6ff:fec1:99da)
06:17:15 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
06:25:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:29:52 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:30:33 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
06:33:43 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:41:29 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:46:05 ljdarj joins (~Thunderbi@user/ljdarj)
06:46:29 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
06:47:24 × ljdarj quits (~Thunderbi@user/ljdarj) (Client Quit)
06:51:37 acidjnk_new joins (~acidjnk@p200300d6e72cfb26e8fbd6c0b96dfe0a.dip0.t-ipconnect.de)
06:56:54 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
06:57:18 alp_ joins (~alp@2001:861:e3d6:8f80:2d2d:a36f:43f3:6f49)
06:59:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:00:03 × caconym quits (~caconym@user/caconym) (Quit: bye)
07:00:46 caconym joins (~caconym@user/caconym)
07:03:45 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
07:08:11 × rosco quits (~rosco@175.136.22.30) (Quit: Lost terminal)
07:10:45 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
07:22:05 tonyday567 joins (~tonyday56@125-63-10-162.ip4.superloop.au)
07:25:14 × ridcully quits (~ridcully@p57b52b67.dip0.t-ipconnect.de) (Quit: WeeChat 4.4.2)
07:34:18 mrtz joins (~mrtz@lewi-19-b2-v4wan-169604-cust1264.vm4.cable.virginm.net)
07:36:14 briandaed joins (~root@185.234.210.211)
07:36:52 ridcully joins (~ridcully@p57b52138.dip0.t-ipconnect.de)
07:37:18 × mrtz quits (~mrtz@lewi-19-b2-v4wan-169604-cust1264.vm4.cable.virginm.net) (Remote host closed the connection)
07:46:30 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving)
07:49:20 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 265 seconds)
07:50:19 euleritian joins (~euleritia@dynamic-176-006-129-042.176.6.pool.telefonica.de)
07:52:54 × synchrom1 quits (~john@2406:5a00:2497:300:b017:a602:11fc:4e3b) (Read error: Connection reset by peer)
07:54:04 synchromesh joins (~john@2406:5a00:2497:300:b017:a602:11fc:4e3b)
07:54:36 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 260 seconds)
07:56:12 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
07:56:32 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:56:33 × acidjnk_new quits (~acidjnk@p200300d6e72cfb26e8fbd6c0b96dfe0a.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
07:57:39 synchrom1 joins (~john@2406:5a00:2497:300:b017:a602:11fc:4e3b)
07:57:59 × fr33domlover quits (~fr33domlo@towards.vision) (Quit: The Lounge - https://thelounge.chat)
07:57:59 merijn joins (~merijn@77.242.116.146)
07:57:59 × merijn quits (~merijn@77.242.116.146) (Client Quit)
08:00:14 CrunchyFlakes joins (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de)
08:00:33 × synchromesh quits (~john@2406:5a00:2497:300:b017:a602:11fc:4e3b) (Ping timeout: 244 seconds)
08:03:20 fr33domlover joins (~fr33domlo@towards.vision)
08:05:29 cfricke joins (~cfricke@user/cfricke)
08:06:08 × euleritian quits (~euleritia@dynamic-176-006-129-042.176.6.pool.telefonica.de) (Ping timeout: 255 seconds)
08:07:15 euleritian joins (~euleritia@dynamic-176-007-155-010.176.7.pool.telefonica.de)
08:08:03 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
08:08:44 lxsameer joins (~lxsameer@Serene/lxsameer)
08:18:34 × euleritian quits (~euleritia@dynamic-176-007-155-010.176.7.pool.telefonica.de) (Ping timeout: 260 seconds)
08:19:06 euleritian joins (~euleritia@77.22.252.56)
08:30:19 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Remote host closed the connection)
08:31:39 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
08:31:58 × tonyday567 quits (~tonyday56@125-63-10-162.ip4.superloop.au) (Remote host closed the connection)
08:33:49 mreh joins (~matthew@host86-128-2-51.range86-128.btcentralplus.com)
08:34:06 × CiaoSen quits (~Jura@2a05:5800:2ca:cd00:ca4b:d6ff:fec1:99da) (Ping timeout: 246 seconds)
08:35:56 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 272 seconds)
08:36:03 euleritian joins (~euleritia@dynamic-176-007-155-010.176.7.pool.telefonica.de)
08:41:09 wootehfoot joins (~wootehfoo@user/wootehfoot)
08:42:08 kenran joins (~user@user/kenran)
08:53:42 ash3en joins (~Thunderbi@89.246.174.164)
08:54:24 × vanishingideal quits (~vanishing@user/vanishingideal) (Read error: Connection reset by peer)
08:56:30 vanishingideal joins (~vanishing@user/vanishingideal)
09:03:06 × ash3en quits (~Thunderbi@89.246.174.164) (Ping timeout: 252 seconds)
09:03:06 × euleritian quits (~euleritia@dynamic-176-007-155-010.176.7.pool.telefonica.de) (Ping timeout: 252 seconds)
09:03:33 euleritian joins (~euleritia@dynamic-176-007-155-010.176.7.pool.telefonica.de)
09:04:26 × wanted quits (~wanted@2.219.56.221) (Ping timeout: 272 seconds)
09:16:01 mari-estel joins (~mari-este@user/danza)
09:18:04 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:26:53 ash3en joins (~Thunderbi@89.246.174.164)
09:29:25 × turlando quits (~turlando@user/turlando) (Quit: No Ping reply in 180 seconds.)
09:30:50 turlando joins (~turlando@user/turlando)
09:34:00 __monty__ joins (~toonn@user/toonn)
09:34:02 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:34:05 comonad joins (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de)
09:35:28 acidjnk_new joins (~acidjnk@p200300d6e72cfb26e8fbd6c0b96dfe0a.dip0.t-ipconnect.de)
09:42:03 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 245 seconds)
09:44:51 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds)
09:49:45 × jcarpenter2 quits (~lol@2603:3016:1e01:b9e0:c859:568e:44d5:6cfd) (Read error: Connection reset by peer)
09:59:56 × ash3en quits (~Thunderbi@89.246.174.164) (Ping timeout: 252 seconds)
10:02:02 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
10:02:12 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
10:05:23 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 255 seconds)
10:09:26 × euleritian quits (~euleritia@dynamic-176-007-155-010.176.7.pool.telefonica.de) (Ping timeout: 255 seconds)
10:11:00 euleritian joins (~euleritia@dynamic-176-000-159-238.176.0.pool.telefonica.de)
10:11:52 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
10:19:44 × euleritian quits (~euleritia@dynamic-176-000-159-238.176.0.pool.telefonica.de) (Ping timeout: 252 seconds)
10:21:40 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
10:21:53 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
10:25:36 × malte quits (~malte@mal.tc) (Remote host closed the connection)
10:26:54 alexherbo2 joins (~alexherbo@2a02-8440-320a-9d11-44be-f9da-6c83-482e.rev.sfr.net)
10:28:45 euleritian joins (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de)
10:30:21 × mreh quits (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 252 seconds)
10:35:08 × euleritian quits (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de) (Ping timeout: 252 seconds)
10:39:58 × AlexNoo quits (~AlexNoo@178.34.163.62) (Read error: Connection reset by peer)
10:40:20 AlexNoo joins (~AlexNoo@178.34.163.62)
10:49:57 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 248 seconds)
10:49:57 ash3en joins (~Thunderbi@89.246.174.164)
10:58:49 ash3en1 joins (~Thunderbi@146.70.124.222)
10:59:00 rmca joins (~rob@user/rmca)
11:00:26 × ash3en quits (~Thunderbi@89.246.174.164) (Ping timeout: 252 seconds)
11:00:26 ash3en1 is now known as ash3en
11:02:39 wootehfoot joins (~wootehfoo@user/wootehfoot)
11:02:51 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:09:21 blase joins (~wanted@2.219.56.221)
11:09:30 × fr33domlover quits (~fr33domlo@towards.vision) (Quit: The Lounge - https://thelounge.chat)
11:13:10 fr33domlover joins (~fr33domlo@towards.vision)
11:15:35 CiaoSen joins (~Jura@2a05:5800:2ca:cd00:ca4b:d6ff:fec1:99da)
11:20:42 × acidjnk_new quits (~acidjnk@p200300d6e72cfb26e8fbd6c0b96dfe0a.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
11:29:02 × kenran quits (~user@user/kenran) (Remote host closed the connection)
11:32:00 acidjnk_new joins (~acidjnk@p200300d6e72cfb26e8fbd6c0b96dfe0a.dip0.t-ipconnect.de)
11:33:41 euleritian joins (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de)
11:40:38 ljdarj joins (~Thunderbi@user/ljdarj)
11:52:03 × mari-estel quits (~mari-este@user/danza) (Ping timeout: 245 seconds)
11:52:08 sayola joins (~sayola@2a00:20:d308:54cb:f901:4267:f16e:dff0)
11:54:32 ljdarj1 joins (~Thunderbi@user/ljdarj)
11:55:42 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 246 seconds)
11:57:33 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
11:57:33 ljdarj1 is now known as ljdarj
11:59:44 mari-estel joins (~mari-este@user/danza)
12:07:03 × euleritian quits (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de) (Remote host closed the connection)
12:07:12 euleritian joins (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de)
12:07:28 × euleritian quits (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de) (Remote host closed the connection)
12:08:00 euleritian joins (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de)
12:09:05 ljdarj1 joins (~Thunderbi@user/ljdarj)
12:11:34 × mari-estel quits (~mari-este@user/danza) (Ping timeout: 252 seconds)
12:12:45 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
12:12:46 ljdarj1 is now known as ljdarj
12:12:54 mari-estel joins (~mari-este@user/danza)
12:17:14 × sayola quits (~sayola@2a00:20:d308:54cb:f901:4267:f16e:dff0) (Read error: Connection reset by peer)
12:18:16 sayola joins (~sayola@2a00:20:d308:54cb:f901:4267:f16e:dff0)
12:21:02 × euleritian quits (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
12:21:22 euleritian joins (~euleritia@84.19.220.82)
12:28:12 chexum joins (~quassel@gateway/tor-sasl/chexum)
12:34:23 identity joins (~identity@user/ZharMeny)
12:38:42 × mari-estel quits (~mari-este@user/danza) (Ping timeout: 252 seconds)
12:40:04 mari-estel joins (~mari-este@user/danza)
12:43:18 × ash3en quits (~Thunderbi@146.70.124.222) (Ping timeout: 246 seconds)
12:45:37 × euleritian quits (~euleritia@84.19.220.82) (Ping timeout: 265 seconds)
12:45:55 euleritian joins (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de)
12:49:19 × CiaoSen quits (~Jura@2a05:5800:2ca:cd00:ca4b:d6ff:fec1:99da) (Ping timeout: 264 seconds)
12:50:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:53:24 rosco joins (~rosco@175.136.22.30)
12:59:58 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 252 seconds)
13:14:16 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
13:17:01 stiell joins (~stiell@gateway/tor-sasl/stiell)
13:27:16 × alexherbo2 quits (~alexherbo@2a02-8440-320a-9d11-44be-f9da-6c83-482e.rev.sfr.net) (Remote host closed the connection)
13:27:17 × acidjnk_new quits (~acidjnk@p200300d6e72cfb26e8fbd6c0b96dfe0a.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
13:30:21 bh34e5 joins (~bh34e5@user/bh34e5)
13:32:11 Achylles joins (~Achylles@45.182.57.52)
13:32:51 mreh joins (~matthew@host86-128-2-51.range86-128.btcentralplus.com)
13:34:46 alexherbo2 joins (~alexherbo@2a02-8440-320a-9d11-14e2-d135-c40b-29b1.rev.sfr.net)
13:44:18 × alp_ quits (~alp@2001:861:e3d6:8f80:2d2d:a36f:43f3:6f49) (Ping timeout: 248 seconds)
13:44:41 <haskellbridge> <oak> Isn't callCabal2Nix a bit bad solution anyway because it causes import-from-derivation?
13:44:41 <haskellbridge> <oak> but basically yes I think
13:44:42 <haskellbridge> <oak> It is somewhat confusing many examples and documentation show the usage of the callCabal2Nix although I wouldn't recommend to use it because it causes import-from-derivation. Instead you should have something like git pre-commit check to make sure your generated default.nix file stays up-to-date with the .cabal file. (IFD means Nix has to build a derivation first as part of the evaluation in order to be able to...
13:44:47 <haskellbridge> ... completely evaluate your Nix expression. Usually you want to evaluate first and after that start to build.)
13:44:48 <haskellbridge> <thirdofmay18081814goya> what's the proper way to write an AST using the freer monad on containers?
13:44:48 <haskellbridge> <thirdofmay18081814goya> datatypes a la carte uses the free monad and no containers
13:45:33 acidjnk_new joins (~acidjnk@p200300d6e72cfb260d771c799cc2fd22.dip0.t-ipconnect.de)
13:46:30 ash3en joins (~Thunderbi@146.70.124.222)
13:50:51 × ash3en quits (~Thunderbi@146.70.124.222) (Ping timeout: 246 seconds)
13:52:53 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Remote host closed the connection)
13:56:10 × alexherbo2 quits (~alexherbo@2a02-8440-320a-9d11-14e2-d135-c40b-29b1.rev.sfr.net) (Remote host closed the connection)
13:57:19 × euleritian quits (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
13:57:38 euleritian joins (~euleritia@84.19.220.82)
14:00:31 × ephilalethes quits (~noumenon@113.51-175-156.customer.lyse.net) (Read error: Connection reset by peer)
14:08:50 Square joins (~Square4@user/square)
14:08:52 Square2 joins (~Square@user/square)
14:10:16 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:10:46 alp_ joins (~alp@2001:861:e3d6:8f80:e385:c91:c412:4538)
14:11:29 × euleritian quits (~euleritia@84.19.220.82) (Ping timeout: 260 seconds)
14:12:09 euleritian joins (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de)
14:16:58 × Square2 quits (~Square@user/square) (Ping timeout: 252 seconds)
14:20:15 sayola1 joins (~sayola@2a00:20:d302:f7e6:a954:455b:b33d:c7d4)
14:22:46 × sayola quits (~sayola@2a00:20:d308:54cb:f901:4267:f16e:dff0) (Ping timeout: 265 seconds)
14:26:09 × sayola1 quits (~sayola@2a00:20:d302:f7e6:a954:455b:b33d:c7d4) (Quit: Leaving.)
14:38:57 × alp_ quits (~alp@2001:861:e3d6:8f80:e385:c91:c412:4538) (Ping timeout: 252 seconds)
14:48:07 × identity quits (~identity@user/ZharMeny) (Ping timeout: 264 seconds)
15:03:22 weary-traveler joins (~user@user/user363627)
15:03:48 identity joins (~identity@user/ZharMeny)
15:04:33 tremon joins (~tremon@83.80.159.219)
15:07:47 × mreh quits (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 255 seconds)
15:07:47 × identity quits (~identity@user/ZharMeny) (Read error: Connection reset by peer)
15:08:39 × mari-estel quits (~mari-este@user/danza) (Remote host closed the connection)
15:08:53 mari-estel joins (~mari-este@user/danza)
15:10:34 identity joins (~identity@user/ZharMeny)
15:13:53 × mari-estel quits (~mari-este@user/danza) ()
15:21:09 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
15:23:44 ash3en joins (~Thunderbi@146.70.124.222)
15:24:42 alethkit parts (23bd17ddc6@sourcehut/user/alethkit) ()
15:26:03 × rmca quits (~rob@user/rmca) (Ping timeout: 246 seconds)
15:26:51 ephilalethes joins (~noumenon@113.51-175-156.customer.lyse.net)
15:28:08 × Achylles quits (~Achylles@45.182.57.52) (Quit: Leaving)
15:34:04 LukeHoersten joins (~LukeHoers@user/lukehoersten)
15:36:06 cfricke joins (~cfricke@user/cfricke)
15:38:42 × acidjnk_new quits (~acidjnk@p200300d6e72cfb260d771c799cc2fd22.dip0.t-ipconnect.de) (Remote host closed the connection)
15:39:01 acidjnk_new joins (~acidjnk@p200300d6e72cfb260d771c799cc2fd22.dip0.t-ipconnect.de)
15:48:27 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 246 seconds)
15:57:29 × ash3en quits (~Thunderbi@146.70.124.222) (Quit: ash3en)
15:57:30 × ephilalethes quits (~noumenon@113.51-175-156.customer.lyse.net) (Read error: Connection reset by peer)
15:58:32 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 252 seconds)
16:00:25 AlexZenon joins (~alzenon@178.34.163.62)
16:01:21 × aforemny quits (~aforemny@2001:9e8:6cdf:9f00:9304:f095:b881:d5be) (Ping timeout: 248 seconds)
16:02:59 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:04:45 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds)
16:08:17 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 244 seconds)
16:11:16 KicksonButt joins (~quassel@187.21.174.221)
16:18:46 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
16:23:16 AlexZenon joins (~alzenon@178.34.163.62)
16:23:34 mehlon joins (~mehlon@user/mehlon)
16:27:01 × euleritian quits (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de) (Ping timeout: 248 seconds)
16:28:00 × pavonia quits (~user@user/siracusa) (Ping timeout: 246 seconds)
16:32:15 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 252 seconds)
16:40:45 <haskellbridge> <hellwolf> newbie question: what is the (perhaps obvious but not so for newbies) reason that GHC AST and TH AST are independent of each other?
16:40:50 LukeHoersten joins (~LukeHoers@user/lukehoersten)
16:45:07 <ghoulguy> I don't know the exact reasons, but I would expect them to be different for at least two reasons. The compiler's AST is likely to track slightly different information and template-haskell should aspire to be useable by more than just GHC
16:46:17 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:48:04 mreh joins (~matthew@host86-128-2-51.range86-128.btcentralplus.com)
16:53:17 × mehlon quits (~mehlon@user/mehlon) (Remote host closed the connection)
16:53:23 spew joins (~spew@201.141.99.170)
16:53:36 mehlon joins (~mehlon@user/mehlon)
16:58:05 × mehlon quits (~mehlon@user/mehlon) (Ping timeout: 256 seconds)
16:58:31 mehlon__ joins (~mehlon__@user/mehlon)
16:58:34 alexherbo2 joins (~alexherbo@2a02-8440-3210-e74e-e0a7-371d-4485-da44.rev.sfr.net)
17:00:26 <geekosaur> the compiler AST is much more complex than TH's (and that got even worse with the change to TTG back in 7.x)
17:01:36 <geekosaur> and you rarely care about most of that, and don't want to have to fight with how to deal with TTG
17:02:24 × rosco quits (~rosco@175.136.22.30) (Quit: Lost terminal)
17:02:36 Square2 joins (~Square@user/square)
17:03:21 <kaol> How stupid idea would it be to implement a compiler by parsing source code and transforming it to TH AST? I'm not seriously contemplating doing anything like that but it was an idle thought I had while doing something else.
17:04:18 <geekosaur> it'd probably need more than the TH AST gives you, for one
17:04:49 <geekosaur> but in general that sounds like "writing a compiler" 🙂
17:04:53 × Square quits (~Square4@user/square) (Ping timeout: 248 seconds)
17:05:19 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
17:05:38 × mehlon__ quits (~mehlon__@user/mehlon) (Remote host closed the connection)
17:06:22 morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
17:06:25 <geekosaur> (for one example of additional information: GHC's AST carries around source information. what's the source information for a TH splice?)
17:06:40 <geekosaur> (and, perhaps more to the point: how do you get it?)
17:06:59 <haskellbridge> <hellwolf> I may have code snippets for that, one sec
17:08:02 <kaol> Everyone's done a compiler that targets C.
17:09:30 geekosaur raises a guilty hand
17:09:58 <geekosaur> (but Haskell didn't exist back when I was doing that…)
17:11:03 × morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
17:18:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:20:35 alp_ joins (~alp@2001:861:e3d6:8f80:655:8e2f:b4d3:203)
17:22:15 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:22:21 AlexZenon joins (~alzenon@178.34.163.62)
17:22:29 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
17:25:22 <briandaed> so it was before 90s...
17:26:05 <geekosaur> I did most of my parser and compiler/transpiler stuff from 1986-1989, yes
17:26:19 <briandaed> respect
17:26:27 <geekosaur> sadly most of it is gone with my then employer who shut down in 1996
17:27:05 <briandaed> I was beating nettles with a stick at that time
17:27:11 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Remote host closed the connection)
17:29:25 × alp_ quits (~alp@2001:861:e3d6:8f80:655:8e2f:b4d3:203) (Ping timeout: 248 seconds)
17:32:44 cheater joins (~Username@user/cheater)
17:34:13 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 248 seconds)
17:39:02 euleritian joins (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de)
17:41:41 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
17:43:18 AlexZenon joins (~alzenon@178.34.163.62)
17:44:32 hiredman joins (~hiredman@frontier1.downey.family)
17:49:03 st_aldini joins (~Thunderbi@2605:a601:a07c:af00:627a:78b9:acf4:2bd7)
17:49:23 × briandaed quits (~root@185.234.210.211) (Remote host closed the connection)
17:52:55 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 264 seconds)
17:53:21 <haskellbridge> <hellwolf> Language.Haskell.TH.location
17:53:21 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/hvbdpMkvfmGDWucRVSIYIRmN/Cp4UpcGhnc0 (4 lines)
17:54:03 × euleritian quits (~euleritia@dynamic-176-000-144-052.176.0.pool.telefonica.de) (Ping timeout: 276 seconds)
17:57:29 euleritian joins (~euleritia@dynamic-176-003-034-161.176.3.pool.telefonica.de)
17:59:06 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:02:11 <monochrom> Bluntly, reusing TH's AST saves you only a small and the easiest part of a compiler. https://simon.peytonjones.org/trees-that-grow/ will tell you how many dozens more AST types you would need if not for one cool trick. (TH's AST does not use that trick, so it is of no help.)
18:02:47 AlexZenon joins (~alzenon@178.34.163.62)
18:08:02 ljdarj1 joins (~Thunderbi@user/ljdarj)
18:09:01 <lxsameer> hey folks, what's the proper way of implementing a sum function with the type `[IO Int] -> IO Int`
18:09:21 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
18:09:32 alp_ joins (~alp@2001:861:e3d6:8f80:db99:b16a:1356:52e1)
18:09:34 ljdarj joins (~Thunderbi@user/ljdarj)
18:10:43 <monochrom> @type foldM
18:10:44 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
18:10:49 <monochrom> That should help.
18:12:17 × ljdarj1 quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
18:12:26 <lxsameer> thanks
18:15:33 <Lears> % :t (coerce `asTypeOf` fmap getSum) . foldMap (coerce `asTypeOf` fmap Sum)
18:15:33 <yahb2> (coerce `asTypeOf` fmap getSum) . foldMap (coerce `asTypeOf` fmap Sum) ; :: (Coercible (f (Sum b)) (f b), Functor f, Foldable t, ; Monoid (f (Sum b))) => ; t (f b) -> f b
18:15:40 × son0p quits (~ff@186.119.83.52) (Ping timeout: 252 seconds)
18:15:52 <Lears> lxsameer: ^
18:16:23 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 252 seconds)
18:17:47 × Axman6 quits (~Axman6@user/axman6) (Ping timeout: 248 seconds)
18:18:41 × synchrom1 quits (~john@2406:5a00:2497:300:b017:a602:11fc:4e3b) (Read error: Connection reset by peer)
18:19:24 synchromesh joins (~john@2406:5a00:2497:300:b017:a602:11fc:4e3b)
18:25:22 synchrom1 joins (~john@2406:5a00:2497:300:b017:a602:11fc:4e3b)
18:25:32 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
18:25:57 × mreh quits (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 246 seconds)
18:27:47 × synchromesh quits (~john@2406:5a00:2497:300:b017:a602:11fc:4e3b) (Ping timeout: 244 seconds)
18:30:31 <lxsameer> Lears: thank you
18:34:07 × cross quits (~cross@spitfire.i.gajendra.net) (Remote host closed the connection)
18:34:15 vanishingideal joins (~vanishing@user/vanishingideal)
18:41:15 × KicksonButt quits (~quassel@187.21.174.221) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
18:43:31 AlexZenon joins (~alzenon@178.34.163.62)
18:48:20 <yin> is base decoupled from ghc already?
18:48:43 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
18:51:36 <monochrom> Not yet.
18:53:26 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
18:53:37 × vanishingideal quits (~vanishing@user/vanishingideal) (Quit: leaving)
18:54:09 × identity quits (~identity@user/ZharMeny) (Ping timeout: 248 seconds)
18:54:42 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 272 seconds)
18:55:22 identity joins (~identity@user/ZharMeny)
19:00:01 × caconym quits (~caconym@user/caconym) (Quit: bye)
19:00:20 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
19:00:40 caconym joins (~caconym@user/caconym)
19:01:51 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 252 seconds)
19:10:15 AlexZenon joins (~alzenon@178.34.163.62)
19:12:57 mreh joins (~matthew@host86-128-2-51.range86-128.btcentralplus.com)
19:14:40 infinity0 joins (~infinity0@pwned.gg)
19:15:04 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 252 seconds)
19:20:51 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
19:27:30 AlexZenon joins (~alzenon@178.34.163.62)
19:28:20 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Ping timeout: 255 seconds)
19:29:51 × euleritian quits (~euleritia@dynamic-176-003-034-161.176.3.pool.telefonica.de) (Read error: Connection reset by peer)
19:30:10 euleritian joins (~euleritia@84.19.220.82)
19:32:03 × mjrosenb quits (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
19:32:54 mjrosenb joins (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net)
19:35:45 <yin> i am having trouble building an old project due to version constraints on setup.Cabal but nowhere in my project is there an indication of those constraints
19:37:06 <haskellbridge> <sm> how'd you know there's contraints ?
19:37:21 <haskellbridge> <sm> (and what's setup.Cabal ?)
19:43:28 LukeHoersten joins (~LukeHoers@user/lukehoersten)
19:49:58 <monochrom> We know of Setup.hs/lhs and I know of *.cabal, but the *.cabal is unlikely to be actually called setup.cabal
19:50:22 <monochrom> s/and I know of/and we know of/ # even
19:51:26 <sprout> using the royal plural for oneselves makes for delightful conversations
19:52:17 <monochrom> But it was not the royal plural!
19:52:41 <sprout> regardless, you're my monarch now
19:52:52 <monochrom> "Don't mind if I do" ? >:)
19:53:22 <yin> https://paste.jrvieira.com/1728935598635
19:54:00 <yin> this is my .cabal file: https://paste.jrvieira.com/1728935627215
19:55:32 <mauke> don't those have to start with a 'cabal-version' line nowadays?
19:55:52 <int-e> no cabal-version field, is that where `Cabal>=1.0 && <1.25` comes from?
19:56:14 <yin> ah. i removed it in order to use a newer cabal version :p
19:56:27 <yin> ty
19:57:23 <monochrom> "cabal-version: 2.4" is what I use and it has been uneventful with new cabal-install versions for years.
19:57:23 <int-e> `cabal check` would probably point that out
19:57:47 <mauke> https://cabal.readthedocs.io/en/stable/cabal-package-description-file.html#pkg-field-cabal-version
19:57:52 <int-e> Hmm, what does this mean? "constraint from minimum version of Cabal used by Setup.hs requires >=3.8"
19:58:09 <int-e> (still looking at yin's cabal-install output)
20:00:45 <monochrom> probably just the opposite way of stating the same dilemma
20:00:51 <int-e> (So the question is, where would cabal-install take that constraint from? Some cabal.project* file maybe?)
20:01:48 <yin> i have no Setup.hs file anywhere in my project (iiuc it can trigger cabal version constraints)
20:02:48 <yin> my cabal.project only reads "packages: ./sete.cabal"
20:03:58 <yin> everything is fine now, ty
20:04:20 <yin> i don't like that cabal-version field at all
20:09:31 × CrunchyFlakes quits (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Quit: ZNC 1.8.2 - https://znc.in)
20:09:36 <haskellbridge> <sm> sounds like you figured it out, the #hackage channel will know more
20:10:45 Everything parts (~Everythin@static.208.206.21.65.clients.your-server.de) ()
20:14:58 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 245 seconds)
20:19:55 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:22:45 × mreh quits (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 248 seconds)
20:26:11 son0p joins (~ff@190.69.120.153)
20:27:43 <tomsmeding> yin: it's a minimum version field: "this cabal file requires cabal version _at least_ 2.4 to read"
20:27:56 <tomsmeding> if you use specific newer syntax, cabal requires you to set a higher minimum version
20:28:12 <tomsmeding> e.g. ^>= requires a relatively recent version
20:28:20 <tomsmeding> "relatively"
20:30:15 Square joins (~Square4@user/square)
20:32:01 <tomsmeding> sm: I think 'setup.Cabal' means "The `Cabal` dependency of the `setup` component", hence the peculiar capitalisation
20:33:18 × Square2 quits (~Square@user/square) (Ping timeout: 245 seconds)
20:38:40 × identity quits (~identity@user/ZharMeny) (Ping timeout: 252 seconds)
20:43:09 × michalz quits (~michalz@185.246.207.203) (Remote host closed the connection)
20:43:33 malte joins (~malte@mal.tc)
20:48:48 oraculo joins (~mirc-rc@177.100.68.254)
20:50:26 <tomsmeding> (you thought `.` was not overloaded enough in haskell? Just look at cabal :p)
20:56:13 <monochrom> hahaha
20:57:08 <monochrom> I thought cabal overloads colon instead >:)
20:57:18 <mauke> everybody wants the colon
20:57:38 <tomsmeding> monochrom: a cabal freeze file also has `.`
20:57:41 <monochrom> I guess "why not both" is the universal truth.
20:57:54 <tomsmeding> where I guess the `any` refers to any package in the dependency tree?
20:58:11 <haskellbridge> <hellwolf> https://youtu.be/jf_OxE3j4AQ?si=QKtujJqDYXUtUWXx
20:58:11 <haskellbridge> good night :)
20:58:14 <monochrom> cabal works in mysterious way. (There!)
20:58:27 <tomsmeding> -s (English)
20:58:55 <tomsmeding> (I'm correcting only because I highly suspect you'll find this amusing)
20:59:13 <monochrom> In general, "X is a Y language" claims are overrated.
20:59:29 <monochrom> You know what, s/overrated/click baits/
21:00:02 <c_wraith> Haskell is a fish language. I heard some sturgeon speaking it.
21:00:59 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
21:01:02 × malte quits (~malte@mal.tc) (Remote host closed the connection)
21:05:03 malte joins (~malte@mal.tc)
21:05:29 <yin> for a moment there i thought the haskellbridge itself wished us good night
21:06:04 <tomsmeding> I guess geekosaur removed the space before the second line in order to allow the newline workaround to call bots? :p
21:06:13 <monochrom> That trick is currently the only way matrix users can talk to lambdabot.
21:06:15 <tomsmeding> s/to call/for calling/
21:09:15 <geekosaur> I didn't, upstream did. it appeared 2 updates ago and disappeared again last update
21:09:44 <tomsmeding> interesting
21:09:45 <haskellbridge> <zwro> oh nice
21:09:45 <haskellbridge> > take 7 $ iterate (recip . succ) 1 :: [Rational]
21:09:47 <lambdabot> [1 % 1,1 % 2,2 % 3,3 % 5,5 % 8,8 % 13,13 % 21]
21:10:01 <monochrom> :)
21:10:28 <tomsmeding> cute continued fraction :p
21:10:55 <haskellbridge> <zwro> it approximates 1/φ :)
21:11:36 <mauke> or φ-1?
21:12:20 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:12:32 <monochrom> and φ-1
21:15:23 <yin> even φ-1!
21:15:32 <monochrom> :)
21:19:54 <mauke> km/mi
21:20:33 <geekosaur> [14 18:48:21] <yin> is base decoupled from ghc already? <-- it's in progress, `ghc-base` exists but rewiring and splitting of definitions is still in progress
21:21:27 <monochrom> km/mi = k/i = -ki >:)
21:21:41 <yin> i'm impatient!
21:22:24 <sprout> another few centuries and you'll have haskell on the desktop
21:22:37 <tomsmeding> monochrom: makes me think of kWh/100h that seems to be a popular unit around here for energy usage of home appliances
21:24:17 <monochrom> People have lost the ability to divide by 100 for themselves so now they need corporate marketing to do it for them.
21:24:26 <haskellbridge> <zwro> hectohour... that useful unit
21:24:54 <tomsmeding> not just that, the whole unit is just 10W!
21:25:05 <tomsmeding> just use W if that's what you want
21:25:23 <monochrom> Oh people have also lost the ability to multiply by 10. >:)
21:25:39 <haskellbridge> <zwro> 25 sixths of a day
21:25:43 <tomsmeding> instead, they prefer to let corporate first multiply by 1000 and then divide by 10
21:25:45 <tomsmeding> *by 100
21:27:10 <monochrom> I understand starting with kW instead of W because the bills use kW. Similar to how we use kg more than we use g.
21:27:35 <haskellbridge> <zwro> 4 days and 4 hours
21:29:17 <yin> monochrom: we even use kg when we should use liters!
21:29:25 <geekosaur> cgs vs. mks wars have returned?
21:29:40 <monochrom> I support mgs
21:31:11 <geekosaur> but those are only indirectly related!
21:31:30 × alexherbo2 quits (~alexherbo@2a02-8440-3210-e74e-e0a7-371d-4485-da44.rev.sfr.net) (Remote host closed the connection)
21:31:36 <geekosaur> I blame whoever came up with the metric system to make the unit of mass based around centimeters instead of meters
21:31:55 × malte quits (~malte@mal.tc) (Remote host closed the connection)
21:32:01 <monochrom> But yeah it's interesting that they make a standard m rule, a standard second clock, and then a standard kg ball rather than a standard g ball.
21:32:28 <monochrom> OK maybe they didn't make an s clock. I don't actually know.
21:33:06 malte joins (~malte@mal.tc)
21:33:26 <yin> because "second" is obviously the fundamental unit....
21:33:40 × son0p quits (~ff@190.69.120.153) (Ping timeout: 252 seconds)
21:33:43 <yin> pars minuta seconda
21:34:35 <geekosaur> time's even worse, the standard time unit is defined by the transition of an electron in a cesium atom and is in femtoseconds or soemthing like that
21:34:49 <tomsmeding> not sure if you guys in the US have right to complain :p
21:35:12 <tomsmeding> I guess monochrom is not originally US and might get a pass
21:35:18 <geekosaur> we don't even try, you guys find out why trying is folly
21:35:26 <yin> i wish all systems used powers of 2
21:35:31 <geekosaur> monochrom's npot even currently US
21:35:42 <geekosaur> (utoronto I think?)
21:35:51 <tomsmeding> _oh_ of course, I knew that
21:35:53 <monochrom> Yeah Canadian and Hong Kong
21:36:46 <monochrom> Very happy that I can continue to spell colour as colour!
21:36:52 <tomsmeding> :D
21:37:19 <yin> i remember reading about the "farsee", a unit of distance where the basic unit is how far you can see
21:39:27 <yin> monochrom: i recently used 2 libraries in a project where one used a type Color and the other a type Colour
21:39:41 <yin> that was fun
21:42:19 <yin> oh it was worse than that. i contributed to ansi-terminal-game which had Color and i introduced a dependency which has Colour
21:42:27 <monochrom> At least you can just import without qualified :)
21:43:11 <tomsmeding> regardless of how much I prefer British spelling, for better or for worse I do think we've settled on American spelling in identifiers
21:43:21 <tomsmeding> so the Colour one is the awkward one there :p
21:43:23 <haskellbridge> <sm> ha speak for yourself
21:43:45 <yin> (the dependency was https://hackage.haskell.org/package/colour itself :p)
21:44:13 <tomsmeding> juicy
21:44:45 <yin> the description is "A model for human colour/color perception"
21:45:24 ljdarj1 joins (~Thunderbi@user/ljdarj)
21:45:31 <yin> they should have done a type synonym
21:47:44 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
21:47:50 ljdarj1 is now known as ljdarj
21:48:40 <monochrom> Ever heard of Generalised ADT? >:)
21:49:22 <yin> how would that help?
21:49:36 <yin> (of course there is also a Color package)
21:49:56 <monochrom> Fortunately they avoided another war by deciding that you just have to write -XGADTs
21:50:22 <tomsmeding> {-# SPECIALIZE #-}
21:50:35 <monochrom> haha
21:50:46 × oraculo quits (~mirc-rc@177.100.68.254) (Quit: pop!_os channel on irc #pop!_os)
21:50:49 <tomsmeding> -XGeneralizedNewtypeDeriving
21:52:03 <tomsmeding> and the "specialize" spelling also appears in a bunch of command-line arguments to GHC
21:52:22 <tomsmeding> (ghc --show-options | grep -i z) >:D
21:52:32 <monochrom> he
21:57:19 <yin> oh no, package names are case sensitive?
21:57:35 <yin> so besides Color and colour we can still have color and Colour
21:58:27 <monochrom> Something about the package name being hscolour and the exe name being HsColour.
21:58:53 ljdarj1 joins (~Thunderbi@user/ljdarj)
22:00:14 <geekosaur> funny enough, it was originally GeneralizedNewtypeDeriving, I found a ticket once about adding the "correct" spelling
22:00:32 <monochrom> oh heh
22:01:19 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds)
22:01:19 ljdarj1 is now known as ljdarj
22:01:37 <geekosaur> (we go through this with DCSS as well, every so often someone patches up some name to Australian spelling)
22:03:04 <monochrom> I... didn't know that there is also Australian spelling.
22:04:04 <yin> monochrom: you just add {-# LANGUAGE GennerTippiesM8^^ #-}
22:04:59 <monochrom> haha
22:05:10 <tomsmeding> omg TIL GeneralisedNewtypeDeriving is written in British spelling as the standard in GHC
22:05:50 <geekosaur> it is the *Glasgow* Haskell Compiler, after all
22:06:06 <tomsmeding> but SPECIALIZE is the other way around: "(UK spelling also accepted.)"
22:06:07 <monochrom> Oh haha both spellings are supported.
22:06:34 <yin> *Glorious
22:06:41 <tomsmeding> *Glorious Glasgow
22:07:18 <tomsmeding> the ghc user's guide is mightily inconsistent about specialize/specialise
22:07:19 <yin> is it [Glorious Glasgow] Haskell Compiler or is it Glorious [Glasgow Haskell Compiler]?
22:07:24 × mjrosenb quits (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
22:07:48 <tomsmeding> the prose seems to use "specialise", the inline code snippets in the prose "SPECIALIZE", but then the larger code blocks have "SPECIALISE"
22:07:54 <monochrom> [[Glorious Glasgow] Haskell] Compiler
22:08:11 <tomsmeding> Glorious [Glasgow [Haskell Compiler]] is how I'd read it
22:08:39 <geekosaur> oh, is that why ($) is infixr? 😛
22:08:46 <monochrom> >:)
22:09:02 <yin> [avoid success] [at all costs] :p
22:20:29 st_aldini1 joins (~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0)
22:21:50 ljdarj1 joins (~Thunderbi@user/ljdarj)
22:23:23 <monochrom> @djinn join :: ((((a -> s) -> a) -> s) -> ((a -> s) -> a)) -> ((a -> s) -> a)
22:23:23 <lambdabot> Cannot parse command
22:24:06 <monochrom> @djinn ((((a -> s) -> a) -> s) -> ((a -> s) -> a)) -> ((a -> s) -> a)
22:24:06 <lambdabot> f a b = a (\ c -> b (c b)) b
22:24:27 × st_aldini quits (~Thunderbi@2605:a601:a07c:af00:627a:78b9:acf4:2bd7) (Ping timeout: 276 seconds)
22:24:27 st_aldini1 is now known as st_aldini
22:25:12 <monochrom> (That would be join for the monad S s a = (a -> s) -> a. I am studying it because of a recent post on the discourse.)
22:25:49 <monochrom> (I thought Cont was hard enough, but I aced it. Now this one is even worse.)
22:26:06 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
22:26:06 ljdarj1 is now known as ljdarj
22:26:24 todi_away joins (~todi@vm4634378.25ssd.had.wf)
22:26:50 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
22:27:11 <dolio> Search monad?
22:28:08 mjrosenb joins (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net)
22:28:13 <monochrom> Yeah
22:29:58 × acidjnk_new quits (~acidjnk@p200300d6e72cfb260d771c799cc2fd22.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
22:30:35 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:33:39 × malte quits (~malte@mal.tc) (Remote host closed the connection)
22:37:23 <yin> i had little trouble with Cont. I have Tardis on my todo list
22:38:34 × AlexZenon quits (~alzenon@178.34.163.62) (Ping timeout: 252 seconds)
22:39:16 AlexNoo_ joins (~AlexNoo@178.34.151.233)
22:40:03 × AlexNoo quits (~AlexNoo@178.34.163.62) (Ping timeout: 276 seconds)
22:40:15 <monochrom> @djinn ((a -> s) -> a) -> (a -> (b -> s) -> b) -> ((b -> s) -> b)
22:40:15 <lambdabot> f a b c = b (a (\ d -> c (b d c))) c
22:40:21 × mjrosenb quits (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net) (Ping timeout: 248 seconds)
22:40:45 <monochrom> And that's for (>>=). @_@
22:44:33 AlexNoo joins (~AlexNoo@178.34.151.233)
22:45:22 × todi_away quits (~todi@vm4634378.25ssd.had.wf) (Read error: Connection reset by peer)
22:45:43 × AlexNoo_ quits (~AlexNoo@178.34.151.233) (Ping timeout: 264 seconds)
22:45:48 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
22:46:47 <dolio> Seems very inefficient.
22:48:24 × haritz quits (~hrtz@user/haritz) (Ping timeout: 272 seconds)
22:51:12 st_aldini1 joins (~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0)
22:51:50 AlexZenon joins (~alzenon@178.34.151.233)
22:52:45 todi_away joins (~todi@5.154.181.23)
22:53:42 × st_aldini quits (~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0) (Ping timeout: 276 seconds)
22:53:42 st_aldini1 is now known as st_aldini
22:53:55 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
22:54:57 haritz joins (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk)
22:55:37 malte joins (~malte@mal.tc)
22:55:58 mjrosenb joins (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net)
22:56:11 × todi_away quits (~todi@5.154.181.23) (Read error: Connection reset by peer)
22:56:45 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
22:56:47 × haritz quits (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk) (Changing host)
22:56:47 haritz joins (~hrtz@user/haritz)
23:00:26 × malte quits (~malte@mal.tc) (Remote host closed the connection)
23:00:36 pavonia joins (~user@user/siracusa)
23:03:51 malte joins (~malte@mal.tc)
23:04:17 × mjrosenb quits (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net) (Ping timeout: 265 seconds)
23:06:43 todi_away joins (~todi@p57803331.dip0.t-ipconnect.de)
23:07:09 × malte quits (~malte@mal.tc) (Remote host closed the connection)
23:07:10 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
23:07:11 × AlexZenon quits (~alzenon@178.34.151.233) (Ping timeout: 265 seconds)
23:09:18 <sam113101> sorry it's me again with the same question as the other day
23:10:34 malte joins (~malte@mal.tc)
23:10:43 <haskellbridge> <sm> Do go on. :)
23:11:49 <sam113101> how would you write this, first the idiomatic way (for haskell), and second in a way that preserves the "flow", i.e. from left to right
23:11:51 <sam113101> (0...1000).filter { |x| x % 3 == 0 || x % 5 == 0 }.sum
23:13:50 <sam113101> (that was ruby btw)
23:14:43 <sam113101> that's elixir:
23:14:45 <sam113101> 0..999 |> Enum.filter(fn x -> rem(x, 3) == 0 || rem(x, 5) == 0 end) |> Enum.sum
23:16:57 Sgeo joins (~Sgeo@user/sgeo)
23:17:26 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
23:17:31 AlexZenon joins (~alzenon@178.34.151.233)
23:20:05 × todi_away quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
23:20:14 <haskellbridge> <sm> most idiomatic would probably be sum [x | x <- [0..1000], x "mod" 3 == 0, x "mod" 5 == 0]
23:20:44 <haskellbridge> <sm> * "sum [x | x <- [0..1000], x `mod` 3 == 0, x `mod` 5 == 0]"
23:23:58 <haskellbridge> <sm> * 0 || x `mod` 5 == 0]" [corrected]
23:24:08 <haskellbridge> <sm> from left to right would be "import Data.Function ((&))" "[0..1000] & filter (\x -> x`mod`3 == 0 || x`mod`5==0) & sum"
23:24:19 <haskellbridge> <sm> from left to right would be
23:24:19 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/vjQfLuREsoEJecoXcpehsPYR/jMVxugiTxGA (3 lines)
23:24:19 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
23:25:23 <sam113101> thank you my man
23:25:23 <sm> sorry, forgot this was IRC
23:27:06 todi_away joins (~todi@vm4634378.25ssd.had.wf)
23:29:00 × AlexZenon quits (~alzenon@178.34.151.233) (Ping timeout: 244 seconds)
23:29:08 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
23:30:31 jcarpenter2 joins (~lol@2603:3016:1e01:b9e0:dd36:cbb0:bd68:c718)
23:39:11 todi_away is now known as todi
23:41:51 AlexZenon joins (~alzenon@178.34.151.233)
23:42:48 son0p joins (~ff@190.69.120.153)
23:44:07 morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
23:44:46 mjrosenb joins (~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net)
23:47:30 morby joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
23:50:13 × morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds)
23:51:57 × yin quits (~z@user/zero) (Remote host closed the connection)
23:52:18 zero joins (~z@user/zero)
23:52:44 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
23:52:56 × morby quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds)
23:56:10 morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
23:57:25 × todi quits (~todi@vm4634378.25ssd.had.wf) (Ping timeout: 244 seconds)

All times are in UTC on 2024-10-14.