2024/06/26

2024-06-26 00:02:34 +0200 <safinaskar> okay, it didn't work
2024-06-26 00:02:35 +0200 <safinaskar> https://godbolt.org/z/obdE6jnMM
2024-06-26 00:02:46 +0200 <safinaskar> i tried to actually prove something and i failed
2024-06-26 00:03:03 +0200 <safinaskar> because haskell seems not to have higher order unification
2024-06-26 00:03:05 +0200 <safinaskar> or it has?
2024-06-26 00:03:12 +0200 <safinaskar> is there some way to make this code work?
2024-06-26 00:04:21 +0200ystael(~ystael@user/ystael) (Ping timeout: 255 seconds)
2024-06-26 00:05:06 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2024-06-26 00:07:48 +0200 <EvanR> on 29 you tried to refer to the same variables introduced in the type signature
2024-06-26 00:07:54 +0200 <EvanR> that doesn't work without ScopedTypeVariables
2024-06-26 00:08:50 +0200Guest89(~Guest89@bras-base-mtrlpq4706w-grc-02-174-89-234-134.dsl.bell.ca)
2024-06-26 00:09:10 +0200 <ncf> that's included in ghc2021
2024-06-26 00:09:34 +0200Guest89(~Guest89@bras-base-mtrlpq4706w-grc-02-174-89-234-134.dsl.bell.ca) (Client Quit)
2024-06-26 00:09:35 +0200 <ncf> the problem is that there are no type-level abstractions, so you can express p = λ b. Equal (c a) (c b)
2024-06-26 00:10:46 +0200 <safinaskar> ncf: thanks
2024-06-26 00:10:54 +0200 <safinaskar> ncf: this is exactly i'm trying to express
2024-06-26 00:10:54 +0200 <ncf> can't**
2024-06-26 00:12:10 +0200 <ncf> you'd need a newtype probably
2024-06-26 00:13:16 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-26 00:15:57 +0200 <safinaskar> ha! it works! https://godbolt.org/z/Pxxjvq3oe
2024-06-26 00:16:05 +0200 <safinaskar> i fixed my code and now it works!
2024-06-26 00:16:13 +0200 <safinaskar> i was able to express that lambda!
2024-06-26 00:20:40 +0200 <ncf> note https://hackage.haskell.org/package/base-4.20.0.1/docs/Data-Type-Equality.html
2024-06-26 00:21:51 +0200 <safinaskar> ncf: thanks
2024-06-26 00:21:56 +0200 <safinaskar> ncf: you are very helpful
2024-06-26 00:22:06 +0200 <safinaskar> ncf: but i did my way, because that is whole point
2024-06-26 00:24:05 +0200sp1ff(~user@c-73-11-70-111.hsd1.wa.comcast.net)
2024-06-26 00:25:44 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-06-26 00:29:46 +0200Foxxer(~Foxxer@152.250.71.122)
2024-06-26 00:29:47 +0200Foxxer(~Foxxer@152.250.71.122) (Remote host closed the connection)
2024-06-26 00:29:56 +0200michalz(~michalz@185.246.207.193) (Quit: ZNC 1.9.0 - https://znc.in)
2024-06-26 00:30:13 +0200Foxxer(~Foxxer@152.250.71.122)
2024-06-26 00:31:40 +0200Foxxer(~Foxxer@152.250.71.122) (Remote host closed the connection)
2024-06-26 00:33:33 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-06-26 00:42:11 +0200 <safinaskar> now i'm trying to prove (x + y = y + x) (or something similar) using all this machinery
2024-06-26 00:43:30 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 255 seconds)
2024-06-26 00:44:02 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-06-26 00:44:29 +0200cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2024-06-26 00:44:31 +0200acidjnk_new3(~acidjnk@p200300d6e714dc90fd0a56c96235233a.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-06-26 00:44:36 +0200cheater(~Username@user/cheater)
2024-06-26 00:46:05 +0200 <EvanR> easy
2024-06-26 00:46:07 +0200joeyadams(~joeyadams@2607:fb91:1617:1400:929b:26f0:654:cc5a)
2024-06-26 00:46:08 +0200 <EvanR> just make an axiom for that
2024-06-26 00:46:23 +0200 <EvanR> call it ring theory
2024-06-26 00:49:55 +0200causal(~eric@50.35.88.207) (Quit: WeeChat 4.3.1)
2024-06-26 00:51:57 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-06-26 01:00:20 +0200ft(~ft@p4fc2ab80.dip0.t-ipconnect.de)
2024-06-26 01:00:39 +0200 <safinaskar> ha! i proved (0 + x = x) using (x + 0 = x) and induction! https://godbolt.org/z/YMYrWW6Ee
2024-06-26 01:00:46 +0200 <safinaskar> in haskell
2024-06-26 01:00:57 +0200 <safinaskar> this means that induction actually works!
2024-06-26 01:01:13 +0200 <safinaskar> so yes, i was able to cope with all problems!
2024-06-26 01:01:52 +0200 <safinaskar> so, yes, it is possible to fake type-level lambdas!
2024-06-26 01:03:21 +0200 <EvanR> for your next trick, use haskell to prove FALSE
2024-06-26 01:04:09 +0200 <safinaskar> EvanR: unfortunately, this is easy, too. "false :: forall a. a" "false = undefined"
2024-06-26 01:04:13 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-06-26 01:04:25 +0200 <EvanR> and see that it is much more powerful than stuff like coq which cripples itself into only proving true stuff
2024-06-26 01:09:54 +0200 <safinaskar> how i will try to prove the same thing using C++ and Rust :)
2024-06-26 01:10:22 +0200 <safinaskar> i'm not sure about Rust, but in C++ this seems to be totally possible
2024-06-26 01:11:36 +0200 <safinaskar> for example, "f :: forall (a :: Type -> Type). Int" can be written in C++ so: "template <template <typename> typename T> int f()"
2024-06-26 01:34:18 +0200 <joeyadams> Records compile into somewhat large binaries, is this a known issue? For example, I have a module with 16 records (205 fields), and it produces a 490K .o file (versus 99K if I remove the records). If I derive generic Aeson instances, it becomes 2.3M, and takes several seconds to compile.
2024-06-26 01:35:44 +0200 <joeyadams> This means if I generate bindings for a database with 100 tables, I end up with an absurdly large binary. Not the end of the world, just slightly disappointing.
2024-06-26 01:43:27 +0200 <safinaskar> joeyadams: use rust. it compiles fast (compared to haskell)
2024-06-26 01:43:47 +0200 <safinaskar> joeyadams: aeson in rust world is called serde_json
2024-06-26 01:44:14 +0200 <safinaskar> joeyadams: instances for serde_json are generated automatically, too
2024-06-26 01:45:03 +0200 <joeyadams> Just curious, does serde_json use a generic system sort of like Haskell has, or is it more like C# where it's all run-time reflection?
2024-06-26 01:45:06 +0200 <safinaskar> joeyadams: binary sizes likely to be big, too. but compilation speed will be nice
2024-06-26 01:45:46 +0200 <joeyadams> So I just need to write a quick sed replace to turn my Haskell code into Rust, and I'll be set :-)
2024-06-26 01:45:55 +0200 <safinaskar> joeyadams: serde_json works in compile-time
2024-06-26 01:46:49 +0200 <safinaskar> joeyadams: first package called "serde" derives all needed instances in compile time using so-called proc macros (it is code, which executes in compile time and generates AST, similar to template haskell)
2024-06-26 01:46:56 +0200 <safinaskar> and then serde_json uses these instances
2024-06-26 01:48:19 +0200 <joeyadams> An important detail I left out: I had deriving Show on all my records. I took that off and that took off 300K.
2024-06-26 01:51:23 +0200 <joeyadams> But I am curious why derived instances might take up so much code. Deriving FromJSON/ToJSON for 15 records produces as much binary code as the whole Aeson library.
2024-06-26 01:51:39 +0200 <EvanR> Hi can you not respond to a haskell question by saying use rust
2024-06-26 01:51:40 +0200 <joeyadams> I should try writing the instances manually to see how big the code footprint is.
2024-06-26 01:52:06 +0200 <safinaskar> EvanR: okay :(
2024-06-26 01:53:00 +0200 <EvanR> joeyadams, did you try flags to reduce the binary size, did you try to strip the binary
2024-06-26 01:53:14 +0200 <EvanR> are you compiling in profiling support
2024-06-26 01:54:20 +0200 <joeyadams> I'm just using GHC 9.4.8 installed through ghcup, not sure what that compiled in. I also tried with later GHC versions and saw similar results (slow compiles and large binaries).
2024-06-26 01:55:08 +0200 <EvanR> template haskell and generics does have a compile time cost, but you were asking about binary size
2024-06-26 01:55:27 +0200 <EvanR> you can issue flags to optimize for speed or size... -Os ?
2024-06-26 01:56:06 +0200 <joeyadams> I looked into some flags a while back, it didn't help much. My results are with -O1. If I use ghc -O0 it makes the binary even bigger.
2024-06-26 01:56:16 +0200 <EvanR> what about -O2
2024-06-26 01:56:51 +0200 <EvanR> also you can try to strip the binary after the fact
2024-06-26 01:57:41 +0200 <joeyadams> Same size with -O2. Does GHC have something like -Os ?
2024-06-26 01:57:50 +0200 <EvanR> -Os
2024-06-26 01:58:31 +0200 <EvanR> guess not...
2024-06-26 01:58:52 +0200 <joeyadams> strip takes the program from 24M to 14M, and the .o file from 2.3M to 1.2M. Better, but still a lot.
2024-06-26 01:59:55 +0200 <joeyadams> (the "program" is just a single .hs file where I copied some of my records over and pruned them. It references aeson, uuid-types, scientific, text, and bytestring.
2024-06-26 02:00:47 +0200 <EvanR> there might be some more you could try https://stackoverflow.com/questions/6115459/small-haskell-program-compiled-with-ghc-into-huge-bina…
2024-06-26 02:04:54 +0200 <joeyadams> Thanks. Maybe I should just create a single record and derive FromJSON, and look at the assembly. I'm mainly curious why it takes so much code to do (what should be) so little.
2024-06-26 02:08:11 +0200joeyadams(~joeyadams@2607:fb91:1617:1400:929b:26f0:654:cc5a) (Quit: Leaving)
2024-06-26 02:08:21 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-06-26 02:18:55 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-06-26 02:19:29 +0200euleritian(~euleritia@dynamic-176-000-205-223.176.0.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-06-26 02:22:05 +0200 <jackdk> @tell joeyadams https://well-typed.com/blog/2021/08/large-records/ might be relevant here
2024-06-26 02:22:05 +0200 <lambdabot> Consider it noted.
2024-06-26 02:22:18 +0200 <Axman6> yeah that came to mind for me too
2024-06-26 02:22:38 +0200 <Axman6> also ping EvanR since you were looking into it too
2024-06-26 02:27:09 +0200philopsos1(~caecilius@user/philopsos)
2024-06-26 02:33:31 +0200 <safinaskar> @tell joeyadams also try self-unpacking binaries :)
2024-06-26 02:33:32 +0200 <lambdabot> Consider it noted.
2024-06-26 02:35:10 +0200henry40408(~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds))
2024-06-26 02:35:17 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:c9:f4bd:32a:187d)
2024-06-26 02:35:36 +0200henry40408(~henry4040@175.182.111.183)
2024-06-26 02:37:14 +0200 <joeyadams> Thanks, jackdk, looking at it now.
2024-06-26 02:42:36 +0200 <safinaskar> bye
2024-06-26 02:42:39 +0200safinaskar(~quassel@212.73.77.104) ()
2024-06-26 02:44:27 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-06-26 02:48:39 +0200safinaskar(~quassel@212.73.77.104)
2024-06-26 02:48:50 +0200safinaskar(~quassel@212.73.77.104) ()
2024-06-26 02:51:18 +0200sudden(~cat@user/sudden) (Ping timeout: 255 seconds)
2024-06-26 02:52:31 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 246 seconds)
2024-06-26 02:55:39 +0200edrx(~Eduardo@170-233-51-85.static.sumicity.net.br)
2024-06-26 02:57:01 +0200 <edrx> hi all! gmorning!
2024-06-26 02:57:44 +0200 <edrx> I wrote a program to help me typeset type inferences using underbrace diagrams - it generates figures like this: https://i.ibb.co/8mZ2VVp/sshot.png
2024-06-26 02:58:18 +0200 <edrx> but the "=>" looks ugly - i.e., the \textsf{=>} looks ugly.
2024-06-26 02:58:28 +0200 <edrx> what would you use instead? suggestions?
2024-06-26 03:01:20 +0200puke(~puke@user/puke) (Remote host closed the connection)
2024-06-26 03:01:57 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-06-26 03:02:58 +0200puke(~puke@user/puke)
2024-06-26 03:03:36 +0200sudden(~cat@user/sudden)
2024-06-26 03:03:51 +0200pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 264 seconds)
2024-06-26 03:15:35 +0200kaskal(~kaskal@213-147-165-88.nat.highway.webapn.at) (Ping timeout: 252 seconds)
2024-06-26 03:19:16 +0200 <pavonia> edrx: \Rightarrow or \Longrightarrow
2024-06-26 03:52:06 +0200CiaoSen(~Jura@2a05:5800:2d8:3a00:e6b9:7aff:fe80:3d03)
2024-06-26 03:58:53 +0200masterbuilder(~quassel@user/masterbuilder) (Ping timeout: 240 seconds)
2024-06-26 03:59:29 +0200masterbuilder(~quassel@user/masterbuilder)
2024-06-26 03:59:54 +0200glguy(g@libera/staff/glguy) (Remote host closed the connection)
2024-06-26 04:07:30 +0200dcoutts_(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848)
2024-06-26 04:08:29 +0200dcoutts(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 256 seconds)
2024-06-26 04:19:51 +0200rosco(~rosco@175.136.155.137)
2024-06-26 04:22:11 +0200xff0x(~xff0x@ai068022.d.east.v6connect.net) (Ping timeout: 264 seconds)
2024-06-26 04:26:17 +0200madhavanmiui(~madhavanm@2409:40f4:305f:dd79:8000::)
2024-06-26 04:26:41 +0200madhavanmiui(~madhavanm@2409:40f4:305f:dd79:8000::) (Client Quit)
2024-06-26 04:27:09 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2024-06-26 04:41:56 +0200zmt00(~zmt00@user/zmt00)
2024-06-26 04:49:05 +0200td_(~td@i53870933.versanet.de) (Ping timeout: 252 seconds)
2024-06-26 04:51:08 +0200td_(~td@i53870920.versanet.de)
2024-06-26 04:54:15 +0200glguy(g@libera/staff/glguy)
2024-06-26 05:11:11 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-06-26 05:15:08 +0200CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-06-26 05:17:39 +0200CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-06-26 05:18:45 +0200euleritian(~euleritia@dynamic-176-001-135-109.176.1.pool.telefonica.de)
2024-06-26 05:23:17 +0200euleritian(~euleritia@dynamic-176-001-135-109.176.1.pool.telefonica.de) (Ping timeout: 256 seconds)
2024-06-26 05:24:15 +0200euleritian(~euleritia@dynamic-176-007-155-229.176.7.pool.telefonica.de)
2024-06-26 05:37:30 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-06-26 05:38:11 +0200aforemny_(~aforemny@2001:9e8:6cc2:bc00:8b6d:59f0:33e:e82a)
2024-06-26 05:38:50 +0200MelMalikReinhilde
2024-06-26 05:39:07 +0200aforemny(~aforemny@2001:9e8:6cdd:b100:c11c:c2a2:7e21:6fd9) (Ping timeout: 246 seconds)
2024-06-26 05:43:27 +0200CiaoSen(~Jura@2a05:5800:2d8:3a00:e6b9:7aff:fe80:3d03) (Ping timeout: 264 seconds)
2024-06-26 05:46:40 +0200euleritian(~euleritia@dynamic-176-007-155-229.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
2024-06-26 05:47:57 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-06-26 05:57:22 +0200 <edrx> pavonia: thanks =)
2024-06-26 05:57:49 +0200edrx(~Eduardo@170-233-51-85.static.sumicity.net.br) (Killed buffer)
2024-06-26 06:07:08 +0200wbooze(~wbooze@2a02:908:1244:9a20:3ca9:9685:6335:ca5e) (Remote host closed the connection)
2024-06-26 06:09:48 +0200zzz(~yin@user/zero) (Ping timeout: 268 seconds)
2024-06-26 06:11:41 +0200zzz(~yin@user/zero)
2024-06-26 06:19:06 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-06-26 06:22:02 +0200vizimajac(vizimajac@shell.xshellz.com) (Remote host closed the connection)
2024-06-26 06:27:18 +0200zzz(~yin@user/zero) (Ping timeout: 255 seconds)
2024-06-26 06:29:55 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:c9:f4bd:32a:187d) (Quit: Leaving)
2024-06-26 06:32:56 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-06-26 06:34:01 +0200zzz(~yin@user/zero)
2024-06-26 06:43:58 +0200ss4(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-06-26 06:53:35 +0200 <monochrom> I have been using ASCII art to show the equiv of that kind of underbrace diagrams.
2024-06-26 06:54:34 +0200 <monochrom> For example when explaining "map (map f)" and "pure f <*> x <*> y <*> z <*> ..."
2024-06-26 06:58:20 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 252 seconds)
2024-06-26 06:58:23 +0200 <haskellbridge> <iqubic (she/her)> Isn't that second one just "lift2A" but expanded to many more args?
2024-06-26 06:59:22 +0200 <monochrom> Yes.
2024-06-26 06:59:23 +0200aaronv(~aaronv@user/aaronv)
2024-06-26 06:59:35 +0200talismanick(~user@2601:644:937c:ed10::ae5)
2024-06-26 06:59:42 +0200 <monochrom> Well, yes if s/just//
2024-06-26 07:00:12 +0200 <haskellbridge> <iqubic (she/her)> "pure f <_> x <_> y <_> z <_>..." is of type "Applicative f => a (a -> b -> c -> ...) -> f a -> f b -> f c -> ..."
2024-06-26 07:00:37 +0200 <haskellbridge> <iqubic (she/her)> Erm... "Applicative f => (a -> b -> c -> ...) -> f a -> f b -> f c -> ..."
2024-06-26 07:08:10 +0200philopsos1(~caecilius@user/philopsos)
2024-06-26 07:23:11 +0200zzz(~yin@user/zero) (Ping timeout: 268 seconds)
2024-06-26 07:30:02 +0200 <EvanR> oof at all that quadraticness of large records
2024-06-26 07:30:10 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-06-26 07:33:23 +0200 <haskellbridge> <iqubic (she/her)> Where does that come from?
2024-06-26 07:45:21 +0200acidjnk_new3(~acidjnk@p200300d6e714dc96bd88011075acd305.dip0.t-ipconnect.de)
2024-06-26 07:45:28 +0200notzmv(~daniel@user/notzmv) (Ping timeout: 246 seconds)
2024-06-26 07:48:15 +0200ft(~ft@p4fc2ab80.dip0.t-ipconnect.de) (Quit: leaving)
2024-06-26 07:54:28 +0200aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2024-06-26 07:54:52 +0200aaronv(~aaronv@user/aaronv)
2024-06-26 08:05:42 +0200generalbigm(~generalbi@2001:250:3c0f:2000::e751)
2024-06-26 08:08:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 08:13:45 +0200wbooze(~wbooze@2a02:908:1244:9a20:c630:9087:3a08:eaac)
2024-06-26 08:18:38 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-26 08:20:34 +0200raym(~ray@user/raym) (Quit: rebooting...)
2024-06-26 08:26:21 +0200killy(~killy@staticline-31-183-185-9.toya.net.pl)
2024-06-26 08:27:29 +0200michalz(~michalz@185.246.207.205)
2024-06-26 08:28:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 08:40:05 +0200rosco(~rosco@175.136.155.137)
2024-06-26 08:42:32 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-06-26 09:03:05 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-06-26 09:03:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-26 09:03:19 +0200euleritian(~euleritia@dynamic-176-007-144-132.176.7.pool.telefonica.de)
2024-06-26 09:08:02 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2024-06-26 09:09:01 +0200generalbigm1(~generalbi@2001:250:3c0f:2000::e751)
2024-06-26 09:09:15 +0200generalbigm(~generalbi@2001:250:3c0f:2000::e751) (Ping timeout: 264 seconds)
2024-06-26 09:09:39 +0200pointlessslippe1(~pointless@212.82.82.3)
2024-06-26 09:11:19 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2024-06-26 09:11:34 +0200johnny54(~johnny@2401:e180:8d50:3483:9060:7f14:5c50:80ae)
2024-06-26 09:23:38 +0200euleritian(~euleritia@dynamic-176-007-144-132.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
2024-06-26 09:23:56 +0200euleritian(~euleritia@77.22.252.56)
2024-06-26 09:25:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 09:33:07 +0200johnny54(~johnny@2401:e180:8d50:3483:9060:7f14:5c50:80ae) (Quit: Client closed)
2024-06-26 09:36:07 +0200poscat0x04(~poscat@user/poscat) (Quit: Bye)
2024-06-26 09:38:25 +0200poscat(~poscat@user/poscat)
2024-06-26 09:40:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-06-26 09:43:53 +0200euleritian(~euleritia@77.22.252.56) (Ping timeout: 252 seconds)
2024-06-26 09:44:40 +0200euleritian(~euleritia@dynamic-176-007-144-132.176.7.pool.telefonica.de)
2024-06-26 09:55:30 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 268 seconds)
2024-06-26 09:56:58 +0200notzmv(~daniel@user/notzmv)
2024-06-26 09:57:20 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-06-26 09:58:07 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-06-26 10:02:38 +0200vizimajac(~Rodney@97e7368c.skybroadband.com)
2024-06-26 10:05:41 +0200generalbigm1(~generalbi@2001:250:3c0f:2000::e751) (Ping timeout: 268 seconds)
2024-06-26 10:13:51 +0200talismanick(~user@2601:644:937c:ed10::ae5) (Remote host closed the connection)
2024-06-26 10:16:58 +0200RiXSon(~rixson@77-234-86-141.pool.digikabel.hu)
2024-06-26 10:21:32 +0200lxsameer(~lxsameer@Serene/lxsameer)
2024-06-26 10:23:22 +0200generalbigm(~generalbi@2001:250:3c0f:2000::e751)
2024-06-26 10:25:47 +0200chele(~chele@user/chele)
2024-06-26 10:26:57 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 268 seconds)
2024-06-26 10:27:41 +0200danse-nr3(~danse-nr3@151.43.199.86)
2024-06-26 10:29:45 +0200aaronv(~aaronv@user/aaronv)
2024-06-26 10:35:53 +0200cfricke(~cfricke@user/cfricke)
2024-06-26 10:39:47 +0200rosco(~rosco@175.136.155.137)
2024-06-26 10:46:32 +0200YoungFrog(~youngfrog@2a02:a03f:c9db:fc00:51d9:348e:70e7:cc59)
2024-06-26 10:52:16 +0200poscat(~poscat@user/poscat) (Quit: Bye)
2024-06-26 10:52:27 +0200__monty__(~toonn@user/toonn)
2024-06-26 10:53:01 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-06-26 10:56:06 +0200euleritian(~euleritia@dynamic-176-007-144-132.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
2024-06-26 10:56:37 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-06-26 10:57:23 +0200causal(~eric@50.35.88.207)
2024-06-26 11:16:10 +0200gehmehgeh(~user@user/gehmehgeh)
2024-06-26 11:19:36 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:1824:df35:e28:ab6b)
2024-06-26 11:20:26 +0200gehmehgehgmg
2024-06-26 11:22:49 +0200poscat(~poscat@user/poscat)
2024-06-26 11:24:10 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:1824:df35:e28:ab6b) (Remote host closed the connection)
2024-06-26 11:24:22 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:f376:2bd9:f376:d9df)
2024-06-26 11:27:20 +0200talismanick(~user@2601:644:937c:ed10::ae5)
2024-06-26 11:30:26 +0200Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no)
2024-06-26 11:33:53 +0200poscat(~poscat@user/poscat) (Quit: Bye)
2024-06-26 11:34:08 +0200poscat(~poscat@user/poscat)
2024-06-26 11:39:15 +0200 <lxsameer> hey folks, is there any ready to use functionality to collect a list of computations run them and pass the result of each of them after an automatic error handling to the next one? it should be thread safe
2024-06-26 11:39:45 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-06-26 11:40:41 +0200poscat(~poscat@user/poscat) (Quit: Bye)
2024-06-26 11:41:49 +0200 <ncf> traverse
2024-06-26 11:43:19 +0200 <ncf> oh, pass the result. then foldr (>=>) pure i guess?
2024-06-26 11:43:24 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-06-26 11:44:04 +0200poscat(~poscat@user/poscat)
2024-06-26 11:44:44 +0200 <lxsameer> ncf: what about the error handling part
2024-06-26 11:45:01 +0200 <ncf> ExceptT
2024-06-26 11:45:50 +0200aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2024-06-26 11:45:57 +0200 <lxsameer> thank you
2024-06-26 11:46:14 +0200aaronv(~aaronv@user/aaronv)
2024-06-26 11:46:53 +0200 <hc> What exactly do you mean by "thread safe" in this context?
2024-06-26 11:50:39 +0200 <lxsameer> hc: I want to have a few threads all running a list of computation. on error, i want to know which thread and which computation raised that error. so some sort of coordination between threads is needed
2024-06-26 11:54:37 +0200 <__monty__> But if each thread needs the results of the previous computation why are there threads and what would not be thread safe?
2024-06-26 11:57:46 +0200aforemny_(~aforemny@2001:9e8:6cc2:bc00:8b6d:59f0:33e:e82a) (Quit: ZNC 1.8.2 - https://znc.in)
2024-06-26 11:57:54 +0200 <lxsameer> __monty__: let's say I need to create 4 list of jobs, each list runs in a thread, I need a 5th thread to act as a coordinator. receive certain errors from the threads and decide what to do with it. (local errors that are trivial can be handled in the theard)
2024-06-26 11:58:08 +0200aforemny(~aforemny@i59F516D5.versanet.de)
2024-06-26 12:11:17 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
2024-06-26 12:14:04 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-06-26 12:18:03 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 260 seconds)
2024-06-26 12:24:44 +0200vizimajac(~Rodney@97e7368c.skybroadband.com) (Ping timeout: 268 seconds)
2024-06-26 12:28:26 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
2024-06-26 12:42:55 +0200nickiminjaj(~nickiminj@user/laxhh)
2024-06-26 12:43:06 +0200sawilagar(~sawilagar@user/sawilagar)
2024-06-26 13:05:02 +0200nickiminjaj(~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-06-26 13:14:33 +0200nickiminjaj(~nickiminj@user/laxhh)
2024-06-26 13:14:49 +0200danse-nr3(~danse-nr3@151.43.199.86) (Ping timeout: 246 seconds)
2024-06-26 13:14:58 +0200nickiminjaj(~nickiminj@user/laxhh) (Client Quit)
2024-06-26 13:15:47 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-06-26 13:16:41 +0200xff0x(~xff0x@2405:6580:b080:900:374:70e:871e:8e7b)
2024-06-26 13:21:28 +0200talismanick(~user@2601:644:937c:ed10::ae5) (Ping timeout: 268 seconds)
2024-06-26 13:27:09 +0200raym(~ray@user/raym)
2024-06-26 13:27:48 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-06-26 13:37:59 +0200spaded(~spaded@2a01:cb11:8072:832f:4262:16e4:2abb:aec0)
2024-06-26 13:38:29 +0200Wstfgl0(~me-me@kc.randomserver.name)
2024-06-26 13:38:33 +0200Me-me(~me-me@user/me-me) (Read error: Connection reset by peer)
2024-06-26 13:38:38 +0200Wstfgl0Me-me
2024-06-26 13:38:43 +0200Pixi`(~Pixi@user/pixi)
2024-06-26 13:41:49 +0200Pixi(~Pixi@user/pixi) (Ping timeout: 256 seconds)
2024-06-26 13:46:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 14:02:39 +0200destituion(~destituio@2a02:2121:6cb:fbc3:21bb:ad80:8df2:7677) (Ping timeout: 264 seconds)
2024-06-26 14:03:40 +0200destituion(~destituio@85.221.111.174)
2024-06-26 14:06:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-26 14:12:11 +0200danse-nr3(~danse-nr3@151.43.199.50)
2024-06-26 14:16:46 +0200wbooze(~wbooze@2a02:908:1244:9a20:c630:9087:3a08:eaac) (Remote host closed the connection)
2024-06-26 14:17:03 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 14:17:14 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
2024-06-26 14:25:36 +0200danse-nr3(~danse-nr3@151.43.199.50) (Ping timeout: 268 seconds)
2024-06-26 14:25:53 +0200danse-nr3(~danse-nr3@151.46.210.141)
2024-06-26 14:42:20 +0200sawilagar(~sawilagar@user/sawilagar) (Remote host closed the connection)
2024-06-26 14:42:34 +0200sawilagar(~sawilagar@user/sawilagar)
2024-06-26 14:45:54 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
2024-06-26 15:01:22 +0200TactfulCitrus(al@gateway/vpn/protonvpn/tactfulcitrus) (Ping timeout: 268 seconds)
2024-06-26 15:13:05 +0200killy(~killy@staticline-31-183-185-9.toya.net.pl) (Ping timeout: 268 seconds)
2024-06-26 15:13:24 +0200mechap(~mechap@user/mechap)
2024-06-26 15:19:33 +0200zzz(~yin@user/zero)
2024-06-26 15:21:25 +0200spaded(~spaded@2a01:cb11:8072:832f:4262:16e4:2abb:aec0) (Quit: Leaving)
2024-06-26 15:32:11 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-06-26 15:34:09 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-06-26 15:35:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
2024-06-26 15:37:06 +0200euleritian(~euleritia@dynamic-176-007-173-172.176.7.pool.telefonica.de)
2024-06-26 15:37:13 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-06-26 15:37:41 +0200gorignak(~gorignak@user/gorignak)
2024-06-26 15:37:48 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-26 15:41:06 +0200RedFlamingos(~RedFlamin@user/RedFlamingos) (Read error: Connection reset by peer)
2024-06-26 15:43:11 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Quit: Konversation terminated!)
2024-06-26 15:44:32 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
2024-06-26 15:46:18 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Remote host closed the connection)
2024-06-26 15:46:50 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
2024-06-26 15:47:37 +0200danse-nr3(~danse-nr3@151.46.210.141) (Ping timeout: 256 seconds)
2024-06-26 15:48:35 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Remote host closed the connection)
2024-06-26 15:49:12 +0200ystael(~ystael@user/ystael)
2024-06-26 15:49:58 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
2024-06-26 15:51:44 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Remote host closed the connection)
2024-06-26 15:52:42 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6)
2024-06-26 15:53:47 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 268 seconds)
2024-06-26 15:55:43 +0200jespada(~jespada@148.252.129.210)
2024-06-26 15:56:59 +0200zzz(~yin@user/zero) (Ping timeout: 264 seconds)
2024-06-26 16:03:16 +0200zzz(~yin@user/zero)
2024-06-26 16:05:54 +0200jespada(~jespada@148.252.129.210) (Read error: Connection reset by peer)
2024-06-26 16:06:34 +0200RedFlamingos(~RedFlamin@user/RedFlamingos)
2024-06-26 16:08:01 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-06-26 16:18:14 +0200soverysour(~soverysou@81.196.150.219)
2024-06-26 16:18:14 +0200soverysour(~soverysou@81.196.150.219) (Changing host)
2024-06-26 16:18:14 +0200soverysour(~soverysou@user/soverysour)
2024-06-26 16:20:59 +0200zzz(~yin@user/zero) (Ping timeout: 252 seconds)
2024-06-26 16:27:38 +0200zzz(~yin@user/zero)
2024-06-26 16:28:05 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 240 seconds)
2024-06-26 16:36:56 +0200zzz(~yin@user/zero) (Ping timeout: 252 seconds)
2024-06-26 16:37:16 +0200madhavanmiui(~madhavanm@2409:40f4:2047:95da:8000::)
2024-06-26 16:38:25 +0200madhavanmiui(~madhavanm@2409:40f4:2047:95da:8000::) (Remote host closed the connection)
2024-06-26 16:43:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 16:49:53 +0200jespada_(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-06-26 16:51:17 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 240 seconds)
2024-06-26 16:56:04 +0200euleritian(~euleritia@dynamic-176-007-173-172.176.7.pool.telefonica.de) (Ping timeout: 268 seconds)
2024-06-26 16:57:08 +0200Domitar(~Domitar@193.198.16.218)
2024-06-26 16:58:12 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-06-26 17:00:15 +0200destituion(~destituio@85.221.111.174) (Ping timeout: 264 seconds)
2024-06-26 17:00:38 +0200Domitar(~Domitar@193.198.16.218) (Remote host closed the connection)
2024-06-26 17:04:11 +0200euleritian(~euleritia@176.2.68.45)
2024-06-26 17:07:02 +0200EvanR(~EvanR@user/evanr) (Quit: Leaving)
2024-06-26 17:07:09 +0200generalbigm(~generalbi@2001:250:3c0f:2000::e751) (Quit: Leaving.)
2024-06-26 17:11:52 +0200destituion(~destituio@2a02:2121:6cb:fbc3:3c0f:94ae:6844:a1fa)
2024-06-26 17:11:54 +0200euleritian(~euleritia@176.2.68.45) (Read error: Connection reset by peer)
2024-06-26 17:13:14 +0200EvanR(~EvanR@user/evanr)
2024-06-26 17:13:35 +0200euleritian(~euleritia@77.22.252.56)
2024-06-26 17:14:55 +0200EvanR(~EvanR@user/evanr) (Client Quit)
2024-06-26 17:18:59 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2024-06-26 17:21:34 +0200EvanR(~EvanR@user/evanr)
2024-06-26 17:22:38 +0200zzz(~yin@user/zero)
2024-06-26 17:27:49 +0200MrFox(~MrFox___@95-178-186-21.dsl.optinet.hr)
2024-06-26 17:31:25 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-26 17:33:54 +0200pavonia(~user@user/siracusa)
2024-06-26 17:37:28 +0200soverysour(~soverysou@81.196.150.219)
2024-06-26 17:37:28 +0200soverysour(~soverysou@81.196.150.219) (Changing host)
2024-06-26 17:37:28 +0200soverysour(~soverysou@user/soverysour)
2024-06-26 17:38:00 +0200euleritian(~euleritia@77.22.252.56) (Ping timeout: 268 seconds)
2024-06-26 17:38:36 +0200euleritian(~euleritia@176.2.68.45)
2024-06-26 17:38:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 17:51:23 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 272 seconds)
2024-06-26 17:56:26 +0200MrFox(~MrFox___@95-178-186-21.dsl.optinet.hr) (Quit: Leaving)
2024-06-26 17:56:39 +0200soverysour(~soverysou@user/soverysour)
2024-06-26 17:57:31 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-06-26 17:58:25 +0200chele(~chele@user/chele) (Remote host closed the connection)
2024-06-26 18:01:26 +0200soverysour(~soverysou@user/soverysour) (Remote host closed the connection)
2024-06-26 18:01:49 +0200soverysour(~soverysou@user/soverysour)
2024-06-26 18:02:35 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-06-26 18:05:15 +0200jespada_(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds)
2024-06-26 18:06:59 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 268 seconds)
2024-06-26 18:08:42 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-06-26 18:19:23 +0200soverysour(~soverysou@user/soverysour)
2024-06-26 18:28:32 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-06-26 18:32:00 +0200ft(~ft@p4fc2ab80.dip0.t-ipconnect.de)
2024-06-26 18:35:24 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2024-06-26 18:49:19 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-06-26 18:51:37 +0200 <Franciman> hi, does haskell have first class support for knowledge graphs?
2024-06-26 18:53:16 +0200 <haskellbridge> <sm> hi Franciman , what would that look like ?
2024-06-26 18:53:27 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-06-26 18:54:32 +0200 <Franciman> hi @sm, base level would be supporting rdf as a format
2024-06-26 18:54:34 +0200 <Franciman> and i see
2024-06-26 18:54:37 +0200 <Franciman> @package rdf
2024-06-26 18:54:37 +0200 <lambdabot> https://hackage.haskell.org/package/rdf
2024-06-26 18:54:58 +0200 <haskellbridge> <sm> ah.. yes
2024-06-26 18:55:01 +0200 <Franciman> but is there libraries for supporting reasoning?
2024-06-26 18:55:04 +0200 <Franciman> with ontologies
2024-06-26 18:55:34 +0200 <Franciman> or queries
2024-06-26 18:55:38 +0200 <Franciman> for example conjunctive queries
2024-06-26 18:55:46 +0200 <duncan> there is a minikanren
2024-06-26 18:56:56 +0200 <haskellbridge> <sm> I don't know if https://flora.pm/packages/@hackage/hsparql is relevant
2024-06-26 18:57:06 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:f376:2bd9:f376:d9df) (Remote host closed the connection)
2024-06-26 18:57:13 +0200 <haskellbridge> <sm> or https://flora.pm/packages/@hackage/XSaiga
2024-06-26 18:57:58 +0200 <Franciman> thanks a lot @sm
2024-06-26 18:58:01 +0200 <haskellbridge> <sm> which use http://robstewart57.github.io/rdf4h/
2024-06-26 18:58:24 +0200 <Franciman> what is this flora.pm?
2024-06-26 18:58:30 +0200 <Franciman> is it a mirror for hackage?
2024-06-26 18:58:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-26 18:58:48 +0200 <haskellbridge> <sm> an alternate UI/mirror, yes
2024-06-26 18:59:58 +0200 <haskellbridge> <sm> I switched to it just now to get a more stable page layout
2024-06-26 19:00:13 +0200 <Franciman> kewl
2024-06-26 19:19:56 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 19:21:59 +0200danse-nr3(~danse-nr3@151.46.175.239)
2024-06-26 19:24:06 +0200killy(~killy@staticline-31-183-139-249.toya.net.pl)
2024-06-26 19:29:00 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds)
2024-06-26 19:46:41 +0200wlhn(~wlhn@dl46fx8ym7lwsvqknt7by-3.rev.dnainternet.fi) (Quit: Leaving)
2024-06-26 19:47:35 +0200CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-06-26 19:47:43 +0200danse-nr3(~danse-nr3@151.46.175.239) (Remote host closed the connection)
2024-06-26 19:48:06 +0200danse-nr3(~danse-nr3@151.46.175.239)
2024-06-26 19:50:03 +0200CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-06-26 19:53:52 +0200target_i(~target_i@user/target-i/x-6023099)
2024-06-26 20:00:53 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-06-26 20:02:15 +0200killy(~killy@staticline-31-183-139-249.toya.net.pl) (Ping timeout: 255 seconds)
2024-06-26 20:02:23 +0200andrewboltachev(~andrey@178.141.121.180) (Ping timeout: 264 seconds)
2024-06-26 20:08:38 +0200dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-06-26 20:12:15 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-06-26 20:13:30 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2024-06-26 20:13:35 +0200Lord_of_Life_Lord_of_Life
2024-06-26 20:17:41 +0200euleritian(~euleritia@176.2.68.45) (Ping timeout: 272 seconds)
2024-06-26 20:18:40 +0200euleritian(~euleritia@dynamic-176-001-226-189.176.1.pool.telefonica.de)
2024-06-26 20:49:14 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2024-06-26 20:57:16 +0200euleritian(~euleritia@dynamic-176-001-226-189.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-06-26 20:57:39 +0200euleritian(~euleritia@77.22.252.56)
2024-06-26 21:10:41 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-06-26 21:12:46 +0200visilii_(~visilii@213.24.125.202)
2024-06-26 21:13:02 +0200visilii(~visilii@188.254.110.246) (Ping timeout: 252 seconds)
2024-06-26 21:13:23 +0200philopsos1(~caecilius@user/philopsos)
2024-06-26 21:17:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-06-26 21:19:35 +0200CiaoSen(~Jura@2a05:5800:2d8:3a00:e6b9:7aff:fe80:3d03)
2024-06-26 21:23:24 +0200kqr(~kqr@static.143.81.108.65.clients.your-server.de)
2024-06-26 21:26:21 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-06-26 21:26:50 +0200 <kqr> Hello all! I am making some experiments in Haskell after about a 7 year hiatus from it, and I have one confusion I don't remember having before. I'm intending to use the `assign` function from Control.Lens, so I wanted to check what sort of state type to use. I clicked the MonadState constraint in the Haddocks and ended up in the adjunctions package which defines a State type. So far, so good.
2024-06-26 21:26:53 +0200 <kqr> however, when I want to evalState this State type, it expects me to pass a `Rep g` as the initial input, and I just don't understand what this Representable thing is! Am I going about something backwards?
2024-06-26 21:27:30 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-06-26 21:29:00 +0200 <haskellbridge> <iqubic (she/her)> You want this, from MTL: https://hackage.haskell.org/package/mtl-2.3.1/docs/Control-Monad-State-Class.html#t:MonadState
2024-06-26 21:29:24 +0200 <ncf> it seems like lens uses its own MonadState from adjunctions, but you can (and should probably) use it with the StateT from transformers/mtl
2024-06-26 21:29:47 +0200 <energizer> defining a function `cartesianProduct xs ys` is there a convention about defining it in terms of recursion on the left or right argument? ie `cartesianProduct _ [] = []` or `cartesianProduct [] _ = []` which is preferred, or does it depend on something?
2024-06-26 21:30:44 +0200 <kqr> ncf, That sounds more like what I remember! Thanks! How can all these State implementations/interfaces be compatible?
2024-06-26 21:31:18 +0200 <haskellbridge> <sm> energizer: I think the rule of thumb is something like, most changeable arguments to the right, to make partial application more convenient
2024-06-26 21:31:26 +0200 <ncf> there is simply a adjunctions.MonadState instance for transformers.StateT
2024-06-26 21:31:50 +0200 <energizer> sm in this case the arguments are symmetric, the only difference is left/right
2024-06-26 21:31:55 +0200 <ncf> energizer: it doesn't really matter as long as you document it, but i would expect that to behave as liftA2 (,)
2024-06-26 21:31:58 +0200 <jackdk> kqr: adjunctions re-exports `MonadState` from mtl, so it's the one you know and remember. It's providing its own monad with an instance.
2024-06-26 21:32:06 +0200 <ncf> > liftA2 (,) [1,2] [3,4]
2024-06-26 21:32:08 +0200 <lambdabot> [(1,3),(1,4),(2,3),(2,4)]
2024-06-26 21:32:10 +0200 <kqr> ncf, Oh, yes, of course. It was a few years ago, as I said. Thank you again!
2024-06-26 21:32:26 +0200 <mauke> energizer: I'd expect recursion on the first argument
2024-06-26 21:38:40 +0200 <energizer> mauke: can you say why?
2024-06-26 21:40:21 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 255 seconds)
2024-06-26 21:40:21 +0200 <mauke> https://hackage.haskell.org/package/ghc-internal-9.1001.0/docs/src/GHC.Internal.List.html#zip
2024-06-26 21:42:10 +0200 <energizer> that recurses on both arguments because it has to
2024-06-26 21:44:59 +0200 <mauke> yes, but it starts by checking the first argument first
2024-06-26 21:48:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-26 21:50:26 +0200danse-nr3(~danse-nr3@151.46.175.239) (Ping timeout: 252 seconds)
2024-06-26 21:53:09 +0200 <haskellbridge> <iqubic (she/her)> I guess for reasons of like, "it's so easy to do partial application in Haskell", you might want to check the first argument first, and short-circuit if needed. That prevents you from needing to write "flip f" in cases where that's equivalent, just for the extra performance boost.
2024-06-26 22:14:56 +0200philopsos1(~caecilius@user/philopsos)
2024-06-26 22:25:54 +0200wbooze(~wbooze@2a02:908:1244:9a20:e9e0:ebc4:94b1:46e6) (Remote host closed the connection)
2024-06-26 22:29:51 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-06-26 22:31:45 +0200 <energizer> Supposing it's defined in terms of `cartesianProduct f [] ys = []; cartesianProduct f (x:xs) ys =`, what is `cartesianProduct f xs (y:ys)` equal to? It's not just `cartesianProduct (flip f) (y:ys) xs` because that puts the result in the wrong order. Is there a nice way to express the result?
2024-06-26 22:32:54 +0200wbooze(~wbooze@2a02:908:1244:9a20:3d84:fc89:d93b:3334)
2024-06-26 22:35:04 +0200Xe(~cadey@bras-base-orlnon0609w-grc-21-184-145-123-58.dsl.bell.ca) (Quit: WeeChat 4.2.1)
2024-06-26 22:35:19 +0200Xe(~cadey@bras-base-orlnon0609w-grc-21-184-145-123-58.dsl.bell.ca)
2024-06-26 22:35:29 +0200Xe(~cadey@bras-base-orlnon0609w-grc-21-184-145-123-58.dsl.bell.ca) (Changing host)
2024-06-26 22:35:29 +0200Xe(~cadey@perl/impostor/xe)
2024-06-26 22:37:11 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 264 seconds)
2024-06-26 22:41:02 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
2024-06-26 22:45:28 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-06-26 22:48:35 +0200mechap(~mechap@user/mechap) (Quit: WeeChat 4.3.3)
2024-06-26 22:51:31 +0200 <ncf> you mean in terms of cartesianProduct f xs ys? it's going to be some ugly one-in-length-ys-interleaving of f y's
2024-06-26 23:08:50 +0200Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no) (Quit: Lost terminal)
2024-06-26 23:17:51 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::46)
2024-06-26 23:22:24 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Remote host closed the connection)
2024-06-26 23:23:26 +0200phma(~phma@host-67-44-208-116.hnremote.net) (Read error: Connection reset by peer)
2024-06-26 23:24:53 +0200phma(phma@2001:5b0:210f:1ad8:36db:ca4e:16e7:7eb)
2024-06-26 23:25:22 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-06-26 23:41:07 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-06-26 23:43:34 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:93a8:3ab0:fdc9:ca35)
2024-06-26 23:45:27 +0200dcoutts_(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 256 seconds)
2024-06-26 23:46:27 +0200lain`(lain@user/lain/x-9874679) (Ping timeout: 264 seconds)
2024-06-26 23:59:11 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-06-26 23:59:39 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)