2026/06/17

2026-06-17 00:00:02 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-06-17 00:01:00 +0000CiaoSen(~Jura@dynamic-046-114-193-162.46.114.pool.telefonica.de) (Ping timeout: 245 seconds)
2026-06-17 00:09:46 +0000xintron(~xintron@user/xintron) (Quit: Ping timeout (120 seconds))
2026-06-17 00:09:59 +0000xintron(~xintron@user/xintron) xintron
2026-06-17 00:10:16 +0000Natch(~natch@c-92-34-15-120.bbcust.telenor.se) (Read error: Connection reset by peer)
2026-06-17 00:10:23 +0000whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4) (Read error: Connection reset by peer)
2026-06-17 00:10:28 +0000rselim(ce261f06ff@user/milesrout) (Read error: Connection reset by peer)
2026-06-17 00:10:30 +0000whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4) jgart
2026-06-17 00:10:31 +0000mra(~mra@172-105-19-44.ip.linodeusercontent.com) (Read error: Connection reset by peer)
2026-06-17 00:10:33 +0000Franciman(~Franciman@mx1.fracta.dev) (Read error: Connection reset by peer)
2026-06-17 00:10:35 +0000cephei8(b8652603d7@user/cephei8) (Read error: Connection reset by peer)
2026-06-17 00:10:35 +0000evanrelf(3addc196af@2a03:6000:1812:100::f0) (Read error: Connection reset by peer)
2026-06-17 00:10:37 +0000rselim(ce261f06ff@user/milesrout) milesrout
2026-06-17 00:10:39 +0000mra(~mra@172-105-19-44.ip.linodeusercontent.com) mra
2026-06-17 00:10:40 +0000sp1ff``(~user@2601:1c2:4080:14c0:5df2:f2f4:8a07:70ec)
2026-06-17 00:10:42 +0000stefan-_(~cri@42dots.de) (Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in)
2026-06-17 00:10:43 +0000evanrelf(3addc196af@2a03:6000:1812:100::f0) evanrelf
2026-06-17 00:10:43 +0000cephei8(b8652603d7@user/cephei8) cephei8
2026-06-17 00:10:47 +0000Franciman(~Franciman@mx1.fracta.dev) Franciman
2026-06-17 00:10:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 00:10:58 +0000stefan-_(~cri@42dots.de) stefan-_
2026-06-17 00:11:01 +0000arkeet`(arkeet@moriya.ca)
2026-06-17 00:11:05 +0000firesquidwao(~a@put.gay)
2026-06-17 00:11:50 +0000jayanth(~jayanth@static-98-115-128-109.phlapa.fios.verizon.net) (Ping timeout: 245 seconds)
2026-06-17 00:13:00 +0000tuxpaint(~a@2600:3c06::f03c:93ff:fea6:ef0e) (Read error: Connection reset by peer)
2026-06-17 00:13:07 +0000sp1ff`(~user@2601:1c2:4080:14c0:5df2:f2f4:8a07:70ec) (Ping timeout: 276 seconds)
2026-06-17 00:13:07 +0000arkeet(arkeet@moriya.ca) (Ping timeout: 276 seconds)
2026-06-17 00:13:07 +0000arkeet`arkeet
2026-06-17 00:15:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-06-17 00:15:34 +0000Natch(~natch@c-92-34-15-120.bbcust.telenor.se)
2026-06-17 00:26:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 00:33:13 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-06-17 00:40:59 +0000Axman6(~Axman6@user/axman6) Axman6
2026-06-17 00:43:00 +0000Axma66174(~Axman6@user/axman6) (Ping timeout: 245 seconds)
2026-06-17 00:44:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 00:49:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-06-17 00:56:42 +0000xff0x(~xff0x@2405:6580:b080:900:f9b3:ddf6:f890:9081) (Ping timeout: 246 seconds)
2026-06-17 00:59:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 01:04:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 01:15:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 01:18:44 +0000weary-traveler(~user@user/user363627) user363627
2026-06-17 01:19:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-06-17 01:23:36 +0000 <raincomplex> i think abstractions are most useful when they're clear and simple (and potentially hide a lot of complexity)
2026-06-17 01:23:42 +0000 <raincomplex> like: a function is a thing that takes some input values and produces an output value
2026-06-17 01:26:16 +0000 <raincomplex> a coroutine is a function that can yield values part way through its execution, and then be resumed
2026-06-17 01:30:18 +0000 <raincomplex> these are soft definitions that help me to understand when to use these things
2026-06-17 01:30:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 01:34:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-06-17 01:40:26 +0000bdkl(~bdkl@user/bdkl) bdkl
2026-06-17 01:43:09 +0000bdkl(~bdkl@user/bdkl) (Quit: bdkl)
2026-06-17 01:44:37 +0000RMSBach(~RMSBach@24.210.2.24) (Quit: ZNC 1.9.1 - https://znc.in)
2026-06-17 01:45:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 01:47:45 +0000RMSBach(~RMSBach@2603:6013:9b40:6f2::1040) RMSBach
2026-06-17 01:49:49 +0000tremon(~tremon@83-80-159-219.cable.dynamic.v4.ziggo.nl) (Remote host closed the connection)
2026-06-17 01:50:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 01:51:49 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-06-17 01:56:55 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2026-06-17 02:01:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 02:05:34 +0000fgarcia(~lei@user/fgarcia) (Ping timeout: 276 seconds)
2026-06-17 02:06:48 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-06-17 02:07:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-06-17 02:07:58 +0000 <monochrom> I know how to formalize those too. But perhaps my point is not formalization. I mentioned "falsifiable", that's my real bottom line. It just happens that math is a very good way to do that.
2026-06-17 02:10:01 +0000 <monochrom> Here is an example. You have heard "survival of the fittest". I know how to falsify "this species survives". I don't know how to falsify "fit", unless we just say "it's just a synonym for survival", at which point we don't need it.
2026-06-17 02:10:03 +0000fgarcia(~lei@user/fgarcia) (Max SendQ exceeded)
2026-06-17 02:10:49 +0000 <monochrom> Likewise, I know how to falsify "foo is a monad". I don't know how to falsify "foo is a context", unless we just define "context = monad", at which point we don't need it either.
2026-06-17 02:11:24 +0000 <monochrom> BTW you don't really want "context = monad". Applicatives feel like "context" too.
2026-06-17 02:13:36 +0000wickedjargon(~user@64.114.24.74) wickedjargon
2026-06-17 02:15:26 +0000 <monochrom> I also mentioned "work with". I only know how to work with falsifiable definitions, that's why that's my bottom line. I have to be able to use something, not just "feel" that I "understand".
2026-06-17 02:16:49 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-06-17 02:19:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 02:19:25 +0000 <monochrom> Here is a true story. I saw https://medium.com/better-programming/monads-are-just-fancy-semicolons-ffe38401fd0e . Then I put it on an exam and the question was "show that it breaks a monad law". An example of being intuitive, makes you feel great, and falsified.
2026-06-17 02:23:26 +0000spew(~spew@user/spew) spew
2026-06-17 02:24:23 +0000 <monochrom> Ironically "semicolon" is a good idea on its own because people already expect associativity and identity of it. That I can work with.
2026-06-17 02:24:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 02:27:51 +0000 <monochrom> (But Kleisli arrow is the better destination if you want to start with semicolon.)
2026-06-17 02:28:49 +0000emilym(~Thunderbi@user/emilym) emilym
2026-06-17 02:32:49 +0000emilym(~Thunderbi@user/emilym) (Ping timeout: 245 seconds)
2026-06-17 02:34:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 02:38:42 +0000fgarcia(~lei@user/fgarcia) (Ping timeout: 256 seconds)
2026-06-17 02:39:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 254 seconds)
2026-06-17 02:40:41 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-06-17 02:50:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 02:51:44 +0000td_(~td@i53870916.versanet.de) (Ping timeout: 244 seconds)
2026-06-17 02:54:23 +0000wickedjargon(~user@64.114.24.74) (Ping timeout: 268 seconds)
2026-06-17 02:54:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-06-17 02:57:57 +0000jayanth(~jayanth@static-98-115-128-109.phlapa.fios.verizon.net)
2026-06-17 02:58:46 +0000machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 252 seconds)
2026-06-17 03:01:38 +0000leppard(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) (Ping timeout: 248 seconds)
2026-06-17 03:03:35 +0000Katarushisu6(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: Ping timeout (120 seconds))
2026-06-17 03:03:57 +0000Katarushisu6(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net)
2026-06-17 03:05:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 03:10:34 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 03:13:40 +0000Axman6352(~Axman6@user/axman6) Axman6
2026-06-17 03:15:55 +0000Axman6(~Axman6@user/axman6) (Ping timeout: 245 seconds)
2026-06-17 03:19:22 +0000m2(~travltux@user/travltux) (Quit: WeeChat 4.7.2)
2026-06-17 03:20:51 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 03:20:51 +0000synchromesh(~john@2406:5a00:247e:1500:a691:b1ff:0:f9d) (Read error: Connection reset by peer)
2026-06-17 03:22:35 +0000m(~travltux@user/travltux) travltux
2026-06-17 03:26:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 03:26:43 +0000synchromesh(~john@2406:5a00:247e:1500:a691:b1ff:0:f9d) synchromesh
2026-06-17 03:29:32 +0000oats(~oats@user/oats) (Read error: Connection reset by peer)
2026-06-17 03:29:47 +0000oats(~oats@user/oats) oats
2026-06-17 03:36:13 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 03:40:04 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2026-06-17 03:42:39 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-06-17 03:43:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 03:46:06 +0000jayanth(~jayanth@static-98-115-128-109.phlapa.fios.verizon.net) (Ping timeout: 246 seconds)
2026-06-17 03:54:16 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 03:59:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 04:00:33 +0000xal(~xal@2607:9000:3000:11::fb8d:a8a3) (Read error: Connection reset by peer)
2026-06-17 04:01:43 +0000xal(~xal@mx1.xal.systems) xal
2026-06-17 04:02:21 +0000marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2026-06-17 04:05:00 +0000Fijxu(~Fijxu@user/fijxu) (Ping timeout: 246 seconds)
2026-06-17 04:09:38 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 04:18:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 04:19:17 +0000vms14(~vms14@user/vms14) vms14
2026-06-17 04:19:27 +0000michalz(~michalz@185.246.207.200)
2026-06-17 04:20:33 +0000 <vms14> i'm playing with the state monad to make a stack
2026-06-17 04:20:36 +0000 <vms14> https://gitlab.com/ohmycat/oh/-/blob/main/oh.hs
2026-06-17 04:20:50 +0000 <vms14> although i have no idea of what i'm doing :D
2026-06-17 04:21:55 +0000 <EvanR> you used a lazy list as a stack so you're pretty much an expert now
2026-06-17 04:22:20 +0000 <EvanR> in many situations simply passing a list around works just as well
2026-06-17 04:22:45 +0000 <EvanR> e.g. in cases where you loop by recursing and never return
2026-06-17 04:24:01 +0000 <vms14> i will eventually need to make some sort of union type that allows me to put different types on the stack
2026-06-17 04:24:59 +0000 <vms14> but then i will have to unbox them it seems
2026-06-17 04:25:10 +0000 <EvanR> that there leads to dynamically typed
2026-06-17 04:25:40 +0000 <EvanR> which is in haskell leads to a lot of extraneous error calls when the dynamic type is not what you expect
2026-06-17 04:26:13 +0000 <EvanR> what you eventually need to do is encode your type system into the stack xD
2026-06-17 04:26:20 +0000 <EvanR> so it can never be invalid
2026-06-17 04:26:57 +0000 <vms14> actually i think using a stack and the state monad in general is a failure
2026-06-17 04:27:15 +0000 <EvanR> no?
2026-06-17 04:27:20 +0000 <vms14> and that i should find a way to make a rpn lang that does not need the stack, but it's an illusion made with function composition
2026-06-17 04:27:27 +0000 <vms14> although i have no idea how
2026-06-17 04:28:44 +0000 <vms14> still it's too soon and i need patience to learn the basics and get familiar with the language
2026-06-17 04:30:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 04:31:17 +0000 <monochrom> Someone did that and wrote a paper about it. They also posted on a mailing list to report that it took hours to type-check. One of those times showing that type inference takes exponential time.
2026-06-17 04:32:18 +0000 <monochrom> It was Okasaki IIRC.
2026-06-17 04:32:37 +0000 <monochrom> (the functional data structure guy)
2026-06-17 04:35:19 +0000Nosrep(~jimothy@user/nosrep) Nosrep
2026-06-17 04:35:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-06-17 04:38:59 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 04:40:09 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 248 seconds)
2026-06-17 04:40:10 +0000polykernel_polykernel
2026-06-17 04:42:19 +0000 <Leary> vms14: No need for union/sum/dynamic types: you can obtain a heterogeneous stack by recording the element types in the stack type. E.g. `data Stack xs where { Empty :: Stack '[]; Push :: x -> Stack xs -> Stack (x:xs) }`.
2026-06-17 04:45:07 +0000divlamir_(~divlamir@user/divlamir) divlamir
2026-06-17 04:46:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 04:46:25 +0000divlamir(~divlamir@user/divlamir) (Ping timeout: 245 seconds)
2026-06-17 04:46:25 +0000divlamir_divlamir
2026-06-17 04:50:01 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 04:50:33 +0000takuan(~takuan@d8D86B9E9.access.telenet.be)
2026-06-17 04:51:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-06-17 04:52:21 +0000leppard(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) Inline
2026-06-17 04:52:37 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 276 seconds)
2026-06-17 04:52:37 +0000polykernel_polykernel
2026-06-17 04:57:07 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 04:59:43 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 264 seconds)
2026-06-17 04:59:43 +0000polykernel_polykernel
2026-06-17 05:01:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 05:06:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-06-17 05:08:43 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 05:10:10 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 276 seconds)
2026-06-17 05:10:10 +0000polykernel_polykernel
2026-06-17 05:17:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 05:17:29 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Ping timeout: 272 seconds)
2026-06-17 05:20:19 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-06-17 05:23:39 +0000fgarcia(~lei@user/fgarcia) (Ping timeout: 245 seconds)
2026-06-17 05:24:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 05:25:43 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-06-17 05:31:37 +0000Nosrep(~jimothy@user/nosrep) (Quit: Konversation terminated!)
2026-06-17 05:32:01 +0000Nosrep(~jimothy@user/nosrep) Nosrep
2026-06-17 05:35:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 05:37:23 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 05:38:46 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 276 seconds)
2026-06-17 05:38:46 +0000polykernel_polykernel
2026-06-17 05:39:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-06-17 05:43:20 +0000 <mauke> type Stack = (,); empty :: Stack () (); empty = ((), ()); push :: a -> Stack b c -> Stack a (Stack b c); push = (,)
2026-06-17 05:46:40 +0000athan(~athan@98.150.216.93) athan
2026-06-17 05:47:59 +0000haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-06-17 05:49:43 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 05:51:46 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 276 seconds)
2026-06-17 05:51:46 +0000polykernel_polykernel
2026-06-17 05:53:29 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-06-17 05:53:37 +0000athan(~athan@98.150.216.93) (Quit: Konversation terminated!)
2026-06-17 05:55:16 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 05:55:28 +0000ft(~ft@p4fc2ab3f.dip0.t-ipconnect.de) (Quit: leaving)
2026-06-17 05:56:58 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 276 seconds)
2026-06-17 05:56:58 +0000polykernel_polykernel
2026-06-17 06:01:19 +0000Axman6(~Axman6@user/axman6) Axman6
2026-06-17 06:01:20 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 06:02:10 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 276 seconds)
2026-06-17 06:02:10 +0000polykernel_polykernel
2026-06-17 06:04:00 +0000Axman6352(~Axman6@user/axman6) (Ping timeout: 265 seconds)
2026-06-17 06:04:27 +0000ouilemur(~jgmerritt@user/ouilemur) (Ping timeout: 244 seconds)
2026-06-17 06:06:18 +0000athan(~athan@98.150.216.93) athan
2026-06-17 06:07:57 +0000athan(~athan@98.150.216.93) (Client Quit)
2026-06-17 06:09:40 +0000athan(~athan@98.150.216.93) athan
2026-06-17 06:09:52 +0000polykernel_(~polykerne@user/polykernel) polykernel
2026-06-17 06:12:10 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds)
2026-06-17 06:12:34 +0000polykernel(~polykerne@user/polykernel) (Ping timeout: 276 seconds)
2026-06-17 06:12:34 +0000polykernel_polykernel
2026-06-17 06:13:15 +0000wickedjargon(~user@64.114.24.74) wickedjargon
2026-06-17 06:14:34 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 06:16:55 +0000sord937(~sord937@gateway/tor-sasl/sord937) sord937
2026-06-17 06:18:23 +0000marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2026-06-17 06:19:31 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-06-17 06:25:22 +0000 <probie> Is there a practical reason why Vector doesn't provide traverse, only mapM?
2026-06-17 06:29:03 +0000 <mauke> what
2026-06-17 06:29:23 +0000 <mauke> https://hackage-content.haskell.org/package/vector-0.13.2.0/docs/src/Data.Vector.html#line-455
2026-06-17 06:29:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 06:31:12 +0000ouilemur(~jgmerritt@user/ouilemur) ouilemur
2026-06-17 06:34:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 249 seconds)
2026-06-17 06:35:30 +0000 <probie> mauke: right, that was a half baked thought, I should have clarified that to `Data.Storable.Vector` and that I didn't mean actual `traverse` or `mapM`, I meant something like https://hackage-content.haskell.org/package/vector-0.13.2.0/docs/Data-Vector-Storable.html#v:mapM
2026-06-17 06:39:24 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2026-06-17 06:39:51 +0000 <mauke> not sure
2026-06-17 06:39:55 +0000 <mauke> maybe just an oversight?
2026-06-17 06:45:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 06:50:16 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-06-17 06:51:02 +0000acidjnk_new(~acidjnk@p200300d6e700e575892860f69683d6bb.dip0.t-ipconnect.de)
2026-06-17 06:51:21 +0000acidjnk(~acidjnk@p200300d6e700e575892860f69683d6bb.dip0.t-ipconnect.de) acidjnk
2026-06-17 06:51:37 +0000CiaoSen(~Jura@2a02:3038:2ea:f5a6:4e50:ddff:fe9b:8922) CiaoSen
2026-06-17 06:53:39 +0000 <probie> It's slightly annoying though, because I need it. Well, for now I've just used `foldr` and `fromList`
2026-06-17 06:56:55 +0000ThePenguin(~ThePengui@cust-95-80-28-221.csbnet.se) (Remote host closed the connection)
2026-06-17 07:00:40 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-17 07:01:19 +0000CiaoSen(~Jura@2a02:3038:2ea:f5a6:4e50:ddff:fe9b:8922) (Ping timeout: 276 seconds)
2026-06-17 07:02:36 +0000 <mauke> could define your own instance
2026-06-17 07:04:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-06-17 07:13:04 +0000 <probie> I don't need an instance (and one is impossible), just `Applicative f => (a -> f a) -> Data.Vector.Storable a -> f (Data.Vector.Storable a)`
2026-06-17 07:13:40 +0000 <probie> Well `(Storable a, Applicative f) => ...` but close enough
2026-06-17 07:17:18 +0000dtman34_(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) (Ping timeout: 244 seconds)
2026-06-17 07:17:46 +0000 <Axman6> I feel like that'll do weird things for f ~ []
2026-06-17 07:18:12 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-06-17 07:18:39 +0000 <Axman6> straverse (\x -> [x,x]) is going to allocate a lot of vectors
2026-06-17 07:21:57 +0000danza(~danza@user/danza) danza
2026-06-17 07:22:24 +0000dtman34(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) dtman34
2026-06-17 07:22:37 +0000 <probie> Sure, but it's not like we can't already do that with `Data.Vector.Storable.mapM (\x -> [x,x])`
2026-06-17 07:23:57 +0000 <probie> The context for this is really just that I want it play nicely with lenses
2026-06-17 07:27:29 +0000 <probie> So `f` is generally going to be something like `Identity` or `Const`
2026-06-17 07:32:23 +0000 <Leary> probie: <https://github.com/haskell/vector/issues/477>; <https://github.com/haskell/vector/blob/master/vector/src/Data/Vector/Storable.hs#L1819>.
2026-06-17 07:32:43 +0000leppard(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2026-06-17 07:37:07 +0000CiaoSen(~Jura@2a02:3038:2ea:f5a6:4e50:ddff:fe9b:8922) CiaoSen
2026-06-17 07:38:03 +0000 <mauke> oh, right. element constraints
2026-06-17 07:40:17 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2026-06-17 07:48:34 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Quit: WeeChat 4.7.2)
2026-06-17 07:51:19 +0000tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 264 seconds)
2026-06-17 07:53:40 +0000merijn(~merijn@77.242.116.146) merijn
2026-06-17 07:53:51 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2026-06-17 07:55:17 +0000tabaqui(~tabaqui@167.71.80.236) tabaqui
2026-06-17 07:57:16 +0000Fijxu(~Fijxu@user/fijxu) fijxu
2026-06-17 08:10:26 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Ping timeout: 248 seconds)
2026-06-17 08:11:13 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2026-06-17 08:13:46 +0000__monty__(~toonn@user/toonn) toonn
2026-06-17 08:20:44 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds)
2026-06-17 08:21:49 +0000nyc(~nyc@user/nyc) (Remote host closed the connection)
2026-06-17 08:22:34 +0000acidjnk_new3(~acidjnk@p200300d6e700e562d35fa9de45f72808.dip0.t-ipconnect.de)
2026-06-17 08:23:38 +0000emmanuelux(~em@user/emmanuelux) (Quit: bye)
2026-06-17 08:25:49 +0000acidjnk_new(~acidjnk@p200300d6e700e575892860f69683d6bb.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2026-06-17 08:26:13 +0000acidjnk_new(~acidjnk@p200300d6e700e562d35fa9de45f72808.dip0.t-ipconnect.de)
2026-06-17 08:26:28 +0000acidjnk(~acidjnk@p200300d6e700e575892860f69683d6bb.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2026-06-17 08:40:00 +0000Axma49636(~Axman6@user/axman6) Axman6
2026-06-17 08:42:26 +0000Axman6(~Axman6@user/axman6) (Ping timeout: 257 seconds)
2026-06-17 08:52:54 +0000 <jaror> If m is not IO or ST, then mapM and similar functions on vectors just convert to lists, apply mapM there and convert back to vectors.
2026-06-17 08:53:33 +0000 <jaror> It's pretty ugly imo
2026-06-17 08:54:57 +0000Raito_Bezarius(~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) (Ping timeout: 244 seconds)
2026-06-17 09:02:09 +0000chele(~chele@user/chele) chele
2026-06-17 09:08:34 +0000Raito_Bezarius(~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) Raito_Bezarius
2026-06-17 09:13:10 +0000Enrico63(~Enrico63@host-82-59-98-253.retail.telecomitalia.it) Enrico63
2026-06-17 09:17:10 +0000CiaoSen(~Jura@2a02:3038:2ea:f5a6:4e50:ddff:fe9b:8922) (Ping timeout: 244 seconds)
2026-06-17 09:24:48 +0000 <probie> jaror: So I guess that means I should just go with `fromList . traverse f . toList`
2026-06-17 09:25:10 +0000 <probie> uh, that should be `fmap fromList`
2026-06-17 09:28:15 +0000fun-safe-math(~fun-safe-@97-120-35-225.ptld.qwest.net) (Ping timeout: 252 seconds)
2026-06-17 09:28:52 +0000ski(~ski@90-224-14-130-no600.tbcn.telia.com) (Read error: Connection reset by peer)
2026-06-17 09:28:52 +0000fun-safe-math(~fun-safe-@97-120-35-225.ptld.qwest.net) fun-safe-math
2026-06-17 09:30:49 +0000ouilemur(~jgmerritt@user/ouilemur) (Ping timeout: 272 seconds)
2026-06-17 09:37:34 +0000ouilemur(~jgmerritt@user/ouilemur) ouilemur