2026/01/22

2026-01-22 00:00:04 +0100 <pipsquak-bird> I also wonder if i could use ideas liek 9p.io
2026-01-22 00:00:21 +0100 <pipsquak-bird> so jobs are auto parallizable over grid of nodes
2026-01-22 00:00:24 +0100 <pipsquak-bird> woa wee
2026-01-22 00:00:34 +0100 <pipsquak-bird> happstack.com looks awesome
2026-01-22 00:00:41 +0100 <pipsquak-bird> but can it grid?
2026-01-22 00:00:53 +0100 <pipsquak-bird> 9p.io really seems clever more I see it
2026-01-22 00:01:01 +0100 <pipsquak-bird> the editors zonks me
2026-01-22 00:02:39 +0100 <pipsquak-bird> https://www.researchgate.net/publication/228468620_RMoX_a_Raw_Metal_occam_Experiment
2026-01-22 00:04:51 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 00:09:53 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 00:16:25 +0100DetourNe-(~DetourNet@user/DetourNetworkUK) DetourNetworkUK
2026-01-22 00:16:27 +0100trickard(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 00:16:37 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 00:16:39 +0100trickard(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 00:16:44 +0100DetourNetworkUK(~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer)
2026-01-22 00:17:05 +0100remmie(ianremsen@tilde.team) (Ping timeout: 244 seconds)
2026-01-22 00:18:40 +0100DetourNe-DetourNetworkUK
2026-01-22 00:20:12 +0100fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Quit: fp)
2026-01-22 00:21:42 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-22 00:22:46 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-01-22 00:26:48 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2026-01-22 00:28:55 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2026-01-22 00:32:23 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 00:36:42 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2026-01-22 00:37:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 00:45:52 +0100remmie(ianremsen@tilde.team) remsense
2026-01-22 00:48:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 00:48:46 +0100jmcantrell_(~weechat@user/jmcantrell) (Ping timeout: 265 seconds)
2026-01-22 00:52:29 +0100mange(~mange@user/mange) mange
2026-01-22 00:53:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-22 01:03:45 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 01:05:35 +0100trickard(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 01:05:48 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 01:08:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 01:12:00 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 01:14:03 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Quit: leaving)
2026-01-22 01:16:09 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 01:16:34 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2026-01-22 01:18:16 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2026-01-22 01:19:32 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 01:24:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-22 01:29:43 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-01-22 01:35:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 01:40:26 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-01-22 01:45:55 +0100jmcantrell_jmcantrell
2026-01-22 01:47:50 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2026-01-22 01:49:11 +0100xff0x(~xff0x@ai083101.d.east.v6connect.net) (Ping timeout: 265 seconds)
2026-01-22 01:51:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 01:53:03 +0100Brumaire(~no@94.140.114.73) (Remote host closed the connection)
2026-01-22 01:55:06 +0100trickard_trickard
2026-01-22 01:55:57 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-22 01:56:08 +0100rainbyte(~rainbyte@186.22.19.214) rainbyte
2026-01-22 01:59:44 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
2026-01-22 02:02:03 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 260 seconds)
2026-01-22 02:02:42 +0100Googulator(~Googulato@2a01:36d:106:30a:8d41:f550:2a4f:1a91) (Quit: Client closed)
2026-01-22 02:02:56 +0100Googulator(~Googulato@2a01-036d-0106-030a-8d41-f550-2a4f-1a91.pool6.digikabel.hu)
2026-01-22 02:04:42 +0100qqq(~qqq@185.54.21.105)
2026-01-22 02:06:35 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 02:08:55 +0100typedfern_(~Typedfern@53.red-83-37-43.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
2026-01-22 02:12:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-22 02:17:48 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-22 02:20:02 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-01-22 02:22:45 +0100typedfern_(~Typedfern@81.red-83-37-28.dynamicip.rima-tde.net) typedfern
2026-01-22 02:23:57 +0100Pozyomka(~pyon@user/pyon) (Quit: WeeChat 4.8.1)
2026-01-22 02:24:04 +0100Pozyomka_(~pyon@user/pyon) pyon
2026-01-22 02:24:36 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 02:29:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 02:37:37 +0100typedfern_(~Typedfern@81.red-83-37-28.dynamicip.rima-tde.net) (Ping timeout: 246 seconds)
2026-01-22 02:40:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 02:40:59 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-01-22 02:42:55 +0100FANTOM(~fantom@87.75.185.177) (Ping timeout: 240 seconds)
2026-01-22 02:44:10 +0100FANTOM(~fantom@87.75.185.177)
2026-01-22 02:44:14 +0100connrs(~connrs@user/connrs) (Ping timeout: 244 seconds)
2026-01-22 02:44:53 +0100omidmash1(~omidmash@user/omidmash) omidmash
2026-01-22 02:45:14 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-01-22 02:46:49 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 244 seconds)
2026-01-22 02:46:49 +0100omidmash1omidmash
2026-01-22 02:51:20 +0100typedfern_(~Typedfern@192.red-83-37-37.dynamicip.rima-tde.net) typedfern
2026-01-22 02:56:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 02:59:05 +0100connrs(~connrs@user/connrs) connrs
2026-01-22 03:00:52 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-22 03:05:41 +0100 <haskellbridge> <iqubic (she/her)> So, this is breaking my brain... How the heck is this the same as "liftA2" for lists: "cross f xs ys = foldr (\x rec -> (map (f x) ys) ++ rec) [] xs"
2026-01-22 03:06:03 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Read error: Connection reset by peer)
2026-01-22 03:06:11 +0100 <haskellbridge> <iqubic (she/her)> cross is the same as liftA2 if you work on lists and I have no clue why!!!
2026-01-22 03:07:00 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 03:07:42 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-22 03:08:23 +0100 <monochrom> Convert foldr back to your own recursion to see.
2026-01-22 03:08:47 +0100 <ncf> convert foldr to concatMap and remember how the list monad works
2026-01-22 03:08:48 +0100 <monochrom> Alterantively convert your own recursion to foldr to see. :)
2026-01-22 03:09:16 +0100 <monochrom> Or yeah, that.
2026-01-22 03:09:21 +0100 <haskellbridge> <iqubic (she/her)> Yeah, that makes sense...
2026-01-22 03:09:34 +0100 <ncf> cross f xs ys = xs >>= \x -> map (f x) ys = xs >>= \x -> ys >>= \y -> [f x y] = f <$> xs <*> ys
2026-01-22 03:11:47 +0100 <monochrom> The reason I prefer functional programming is that I just do algebra and see how two programs do the same thing. As opposed to what most people do for imperative programming: talk in "English" "intuition (read: mince and bend words) and call that "understanding". (LLMs proved that it is not understanding.)
2026-01-22 03:11:58 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 03:13:45 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Read error: Connection reset by peer)
2026-01-22 03:14:35 +0100FANTOM(~fantom@87.75.185.177) (Ping timeout: 240 seconds)
2026-01-22 03:14:58 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 03:16:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-22 03:21:43 +0100 <haskellbridge> <iqubic (she/her)> I see...
2026-01-22 03:21:55 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Ping timeout: 264 seconds)
2026-01-22 03:22:08 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 03:22:27 +0100 <haskellbridge> <iqubic (she/her)> for lists "sequenceA" is "foldr (liftA2 (:)) [[]]"
2026-01-22 03:22:32 +0100 <haskellbridge> <iqubic (she/her)> Huh?!?!? How does that work?
2026-01-22 03:23:27 +0100 <haskellbridge> <iqubic (she/her)> sequenceA [[11,12], [21,22]] = [[11,21],[11,22],[12,21],[12,22]]
2026-01-22 03:23:49 +0100 <haskellbridge> <iqubic (she/her)> And "foldr (liftA2 (:)) [[]]" does the same thing.
2026-01-22 03:25:17 +0100 <monochrom> I might rewrite "[[]]" as "pure []".
2026-01-22 03:26:47 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Remote host closed the connection)
2026-01-22 03:27:20 +0100 <haskellbridge> <iqubic (she/her)> I see... that's very similar to "foldr (:) []", but with applicative actions.
2026-01-22 03:27:21 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 03:28:17 +0100 <haskellbridge> <iqubic (she/her)> How does that compute a Cartesian product though?
2026-01-22 03:29:06 +0100 <haskellbridge> <iqubic (she/her)> "cart [[11,12], [21,22]]" is "[[11,21,22],[12,21,22]]"
2026-01-22 03:29:58 +0100 <haskellbridge> <iqubic (she/her)> Erm... not that. It's late and I'm tired.
2026-01-22 03:30:44 +0100 <haskellbridge> <iqubic (she/her)> But sequenceA "foldr (liftA2 (:)) (pure [])" is a Cartesian product, and I'm not sure why.
2026-01-22 03:31:58 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 03:32:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-01-22 03:43:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 03:45:49 +0100 <geekosaur> list monad with no actions is Cartesian product. maybe you'd find the list comprehension version easier to interpret?
2026-01-22 03:47:40 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-01-22 03:48:44 +0100 <haskellbridge> <iqubic (she/her)> What's the list comprehension version?
2026-01-22 03:48:56 +0100tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2026-01-22 03:49:20 +0100Inline(~User@2001-4dd6-dd24-0-41c1-f819-9bd9-d884.ipv6dyn.netcologne.de) (Ping timeout: 244 seconds)
2026-01-22 03:49:51 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-22 03:49:51 +0100typedfern_(~Typedfern@192.red-83-37-37.dynamicip.rima-tde.net) (Ping timeout: 244 seconds)
2026-01-22 03:49:55 +0100 <haskellbridge> <iqubic (she/her)> Why isn't this compiling? https://paste.tomsmeding.com/7dBnZHnU
2026-01-22 03:52:47 +0100 <haskellbridge> <iqubic (she/her)> I want a function that computes all the ways to drop a single element from a list.
2026-01-22 03:53:04 +0100 <haskellbridge> <iqubic (she/her)> drop1 [1,2,3] -> [[2,3], [1,3], [1,2]]
2026-01-22 03:53:46 +0100 <geekosaur> xs is [a], drop1 xs is [[a]], map's result type will be the same as its input type as (x:) simply prepends to the inner lists
2026-01-22 03:56:20 +0100 <haskellbridge> <iqubic (she/her)> I have "map (x:) (drop1 xs)"
2026-01-22 03:56:36 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Remote host closed the connection)
2026-01-22 03:56:57 +0100 <haskellbridge> <iqubic (she/her)> (x:) :: [a] -> [a]
2026-01-22 03:57:30 +0100 <haskellbridge> <iqubic (she/her)> (drop1 xs) :: [[a]]
2026-01-22 03:57:35 +0100 <haskellbridge> <iqubic (she/her)> I fail to see the issue here.
2026-01-22 03:57:56 +0100 <geekosaur> xxs is only [a], not [[a]]
2026-01-22 03:58:20 +0100 <haskellbridge> <iqubic (she/her)> xxs?
2026-01-22 03:58:32 +0100 <geekosaur> rename the one in map, maybe it'll be a bit clearer (its "[a]" unifies with the "[[a]]" from drop1)
2026-01-22 03:58:56 +0100 <haskellbridge> <Nguyễn Trọng Cường> I have a really stupid question: Is the very first GHC executable written in C? I analysed some modern GHC programs by Detect It Easy and all of them are flagged as "C" and "MinGW"
2026-01-22 03:58:59 +0100 <haskellbridge> <iqubic (she/her)> I'm trying to use the head of the iinput.
2026-01-22 03:59:25 +0100 <haskellbridge> <iqubic (she/her)> I'm so lost here... What am I missing?
2026-01-22 04:01:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 04:01:25 +0100 <geekosaur> ghc was originally written in HBC, a now lost compiler which was itself written in Lazy ML
2026-01-22 04:02:29 +0100Inline(~User@2001-4dd6-dd24-0-288a-d894-752e-65cf.ipv6dyn.netcologne.de) Inline
2026-01-22 04:02:54 +0100 <geekosaur> I think there's an ancient i386 binary for HBC somewhere, but no source and no guarantee the binary would run on modern systems
2026-01-22 04:03:14 +0100 <haskellbridge> <iqubic (she/her)> geekosaur: Am I missing something obvious here?
2026-01-22 04:03:19 +0100 <haskellbridge> <iqubic (she/her)> drop1 (x:xs) = xs ++ map (x:) (drop1 xs)
2026-01-22 04:03:43 +0100 <EvanR> and lazy ML was written in
2026-01-22 04:03:49 +0100 <geekosaur> drop1 :: [a] -> [[a]]
2026-01-22 04:03:50 +0100 <EvanR> rather the compiler for it
2026-01-22 04:04:09 +0100 <EvanR> (unlikely to still be available and functioning)
2026-01-22 04:04:10 +0100 <geekosaur> map (x:) (drop1 xs) :: [[a]] -> [[a]]
2026-01-22 04:04:15 +0100 <geekosaur> xs :: [a]
2026-01-22 04:04:55 +0100Raito_Bezarius(~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) (Ping timeout: 245 seconds)
2026-01-22 04:05:06 +0100 <geekosaur> yeh, I have no clue about LML
2026-01-22 04:05:33 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-01-22 04:05:36 +0100 <haskellbridge> <iqubic (she/her)> How can I fix my code here?
2026-01-22 04:06:55 +0100 <geekosaur> I'm not quite sure what you're trying to do, to be honest. (in part because my focus is all over the place, I'm working on cabal atm and chasing around various housework things…)
2026-01-22 04:07:04 +0100 <haskellbridge> <iqubic (she/her)> I see....
2026-01-22 04:07:21 +0100 <haskellbridge> <iqubic (she/her)> I want a function that computes all the ways to remove a single element from a list.
2026-01-22 04:07:28 +0100 <haskellbridge> <iqubic (she/her)> drop1 [1,2,3] -> [[2,3], [1,3], [1,2]]
2026-01-22 04:10:35 +0100qqq(~qqq@185.54.21.105) (Quit: Lost terminal)
2026-01-22 04:11:11 +0100 <haskellbridge> <iqubic (she/her)> drop1 (x:xs) = xs : map (\ys -> x:ys) (drop1 xs)
2026-01-22 04:11:15 +0100 <haskellbridge> <iqubic (she/her)> That's what I wanted.
2026-01-22 04:12:52 +0100 <haskellbridge> <iqubic (she/her)> I feel like there should be a way to rewrite this with a foldr: https://paste.tomsmeding.com/nV162kId
2026-01-22 04:15:10 +0100 <haskellbridge> <iqubic (she/her)> Or, if not a fold, something else that factors out the manual recursion
2026-01-22 04:16:30 +0100 <Leary> > (zipWith (++) . inits <*> tail . tails) [1,2,3]
2026-01-22 04:16:32 +0100 <lambdabot> [[2,3],[1,3],[1,2]]
2026-01-22 04:16:32 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 04:17:14 +0100 <haskellbridge> <iqubic (she/her)> I don't need that specific ordering, but those are the sets I want.
2026-01-22 04:17:22 +0100 <haskellbridge> <iqubic (she/her)> If shuffling the ordering is better, feel free to do it.
2026-01-22 04:17:53 +0100 <haskellbridge> <iqubic (she/her)> I want each list to contain N-1 elements of the input list, in some order.
2026-01-22 04:18:03 +0100Raito_Bezarius(~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) Raito_Bezarius
2026-01-22 04:19:03 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 04:21:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-01-22 04:21:22 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 244 seconds)
2026-01-22 04:23:16 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-01-22 04:25:35 +0100cupnoodle(~cupnoodle@223.187.121.96)
2026-01-22 04:26:42 +0100Typedfern(~Typedfern@249.red-83-37-36.dynamicip.rima-tde.net)
2026-01-22 04:32:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 04:36:58 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-01-22 04:41:22 +0100trickard(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 04:41:34 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 04:46:40 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 04:48:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 04:51:37 +0100 <ncf> Leary's answer is the way to go, but if you like lens fuckery:
2026-01-22 04:51:39 +0100 <ncf> > catMaybes . peek Nothing <$> holesOf traverse (Just <$> [1,2,3])
2026-01-22 04:51:40 +0100 <lambdabot> [[2,3],[1,3],[1,2]]
2026-01-22 04:51:52 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 04:52:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-22 04:55:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 05:00:37 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-22 05:01:27 +0100Inline(~User@2001-4dd6-dd24-0-288a-d894-752e-65cf.ipv6dyn.netcologne.de) (Quit: KVIrc 5.2.6 Quasar http://www.kvirc.net/)
2026-01-22 05:01:40 +0100omidmash(~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
2026-01-22 05:02:09 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-22 05:03:29 +0100Jackneill(~Jackneill@178-164-234-102.pool.digikabel.hu) (Ping timeout: 260 seconds)
2026-01-22 05:06:17 +0100omidmash(~omidmash@user/omidmash) omidmash
2026-01-22 05:11:01 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 05:13:54 +0100cupnoodle(~cupnoodle@223.187.121.96) (Quit: Lost terminal)
2026-01-22 05:15:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-01-22 05:26:45 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 05:31:27 +0100 <haskellbridge> <iqubic (she/her)> What the fuck is that lens fuckery?
2026-01-22 05:31:31 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-01-22 05:33:54 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-01-22 05:44:47 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 05:45:41 +0100Googulator43(~Googulato@2a01-036d-0106-030a-8d41-f550-2a4f-1a91.pool6.digikabel.hu)
2026-01-22 05:45:53 +0100Googulator(~Googulato@2a01-036d-0106-030a-8d41-f550-2a4f-1a91.pool6.digikabel.hu) (Quit: Client closed)
2026-01-22 05:49:53 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-22 05:50:13 +0100jmcantrell_jmcantrell
2026-01-22 05:58:28 +0100 <jackdk> Wow that's cool.
2026-01-22 05:59:03 +0100 <probie> :t holesOf
2026-01-22 05:59:04 +0100 <lambdabot> Conjoined p => Over p (Bazaar p a a) s t a a -> s -> [Control.Lens.Internal.Context.Pretext p a a t]
2026-01-22 05:59:48 +0100 <jackdk> I was very pleased with `bmap (zoom someRecordFieldLens)` the other day and I see I still have much more to learn.
2026-01-22 06:00:02 +0100 <probie> :t holesOf traverse
2026-01-22 06:00:03 +0100 <lambdabot> Traversable t => t a -> [Control.Lens.Internal.Context.Pretext (->) a a (t a)]
2026-01-22 06:00:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 06:02:13 +0100 <haskellbridge> <iqubic (she/her)> How the hell does "holesOf" work?
2026-01-22 06:02:47 +0100 <dibblego> @info bmap
2026-01-22 06:02:48 +0100 <lambdabot> bmap
2026-01-22 06:03:26 +0100 <haskellbridge> <iqubic (she/her)> ncf: How the hell does that work?
2026-01-22 06:03:46 +0100 <probie> :t holesOf traverse [Just 1]
2026-01-22 06:03:47 +0100 <lambdabot> Num a => [Control.Lens.Internal.Context.Pretext (->) (Maybe a) (Maybe a) [Maybe a]]
2026-01-22 06:05:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-22 06:06:27 +0100 <probie> > map (\x -> peek (reverse (pos x)) x) $ holesOf traverse $ words "hello lens world"
2026-01-22 06:06:28 +0100 <lambdabot> [["olleh","lens","world"],["hello","snel","world"],["hello","lens","dlrow"]]
2026-01-22 06:07:08 +0100 <haskellbridge> <iqubic (she/her)> What is that doing?!?!
2026-01-22 06:07:26 +0100 <haskellbridge> <iqubic (she/her)> It's doing unwords and also reversing one of the words?!?!
2026-01-22 06:07:56 +0100 <haskellbridge> <iqubic (she/her)> *doing words
2026-01-22 06:08:46 +0100 <probie> the words was just because I was too lazy to write ["hello", "lens", "world"].
2026-01-22 06:09:26 +0100 <haskellbridge> <iqubic (she/her)> Right, but how the hell are you just reversing only one element at a time?
2026-01-22 06:11:45 +0100 <probie> holesOf takes a traversal and a thing to traverse and gives you a list back, where for every traversed element, you get a "context" of what was around the element
2026-01-22 06:13:25 +0100 <probie> `pos ctx` gives you the element under focus (not used in ncf's thing), and `peek x ctx` "inserts" `x` into the context
2026-01-22 06:16:05 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 06:16:54 +0100 <haskellbridge> <iqubic (she/her)> I see!
2026-01-22 06:19:16 +0100 <jackdk> dibblego: `bmap` is what package `barbies` calls its rank-2 `fmap` (i.e. on functors of kind `(k -> Type) -> Type`)
2026-01-22 06:20:20 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-01-22 06:21:33 +0100 <jackdk> probie: `peeks reverse`
2026-01-22 06:21:53 +0100 <jackdk> Axman6: get in here we're having fun
2026-01-22 06:24:17 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 250 seconds)
2026-01-22 06:31:28 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 06:34:58 +0100mange(~mange@user/mange) (Quit: Quittin' time!)
2026-01-22 06:36:17 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-22 06:38:01 +0100Guest49(~Guest89@187.170.211.94)
2026-01-22 06:39:24 +0100 <dibblego> ah ok
2026-01-22 06:43:40 +0100 <jackdk> While we're talking about lenses, someone re-uploaded the lost SPJ talk and I think that's great: https://www.youtube.com/watch?v=dxGaKn4REaY
2026-01-22 06:47:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 06:51:59 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-01-22 06:56:14 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 07:01:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-01-22 07:04:54 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2026-01-22 07:05:45 +0100 <haskellbridge> <Axman6> Hello!
2026-01-22 07:11:05 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-01-22 07:12:05 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 07:15:49 +0100jreicher(~joelr@user/jreicher) (Quit: In transit)
2026-01-22 07:16:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 07:19:53 +0100Guest49(~Guest89@187.170.211.94) (Ping timeout: 272 seconds)
2026-01-22 07:22:44 +0100FANTOM(~fantom@87.75.185.177)
2026-01-22 07:27:06 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-01-22 07:27:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 07:32:32 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-22 07:38:04 +0100DarcsGuest(~DarcsGues@2a07:7840:0:100:d9ca:210e:81dc:9c94)
2026-01-22 07:41:11 +0100skum(~skum@user/skum) (Quit: WeeChat 4.8.1)
2026-01-22 07:43:35 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 07:45:01 +0100Inline(~User@2001-4dd7-bc56-0-fdb7-c703-fc72-e0a.ipv6dyn.netcologne.de) Inline
2026-01-22 07:48:12 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-01-22 07:48:17 +0100housemate(~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/)
2026-01-22 07:50:40 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-01-22 07:53:12 +0100housemate(~housemate@202.7.248.67) housemate
2026-01-22 07:53:36 +0100 <haskellbridge> <iqubic (she/her)> I need to watch that talk!
2026-01-22 07:55:30 +0100skum(~skum@user/skum) skum
2026-01-22 07:57:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 08:02:00 +0100trickard_trickard
2026-01-22 08:02:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-22 08:02:31 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 240 seconds)
2026-01-22 08:03:54 +0100skum(~skum@user/skum) (Quit: WeeChat 4.8.1)
2026-01-22 08:05:43 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2026-01-22 08:08:59 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 260 seconds)
2026-01-22 08:13:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 08:19:34 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-01-22 08:19:53 +0100trickard(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 08:20:06 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 08:20:35 +0100DarcsGuest(~DarcsGues@2a07:7840:0:100:d9ca:210e:81dc:9c94) (Quit: Client closed)
2026-01-22 08:29:38 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 08:34:39 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-01-22 08:35:28 +0100Jackneill(~Jackneill@178-164-234-102.pool.digikabel.hu) Jackneill
2026-01-22 08:37:52 +0100jreicher(~joelr@user/jreicher) jreicher
2026-01-22 08:41:05 +0100jreicher(~joelr@user/jreicher) (Remote host closed the connection)
2026-01-22 08:43:56 +0100danza(~danza@user/danza) danza
2026-01-22 08:45:00 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 08:45:52 +0100jreicher(~joelr@user/jreicher) jreicher
2026-01-22 08:50:02 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-22 08:58:16 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 09:03:34 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-01-22 09:07:14 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-22 09:14:03 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 09:19:03 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-01-22 09:22:34 +0100danza(~danza@user/danza) (Ping timeout: 246 seconds)
2026-01-22 09:23:39 +0100Enrico63(~Enrico63@host-79-42-228-73.retail.telecomitalia.it) Enrico63
2026-01-22 09:26:44 +0100danza(~danza@user/danza) danza
2026-01-22 09:32:02 +0100krei-se-(~krei-se@p5dea1514.dip0.t-ipconnect.de) (Quit: ZNC 1.9.1 - https://znc.in)