2024/12/03

2024-12-03 00:00:01 +0100alp__(~alp@2001:861:8ca0:4940:9b41:1bdc:3efe:5d7f) (Ping timeout: 248 seconds)
2024-12-03 00:08:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 00:11:55 +0100koz(~koz@121.99.240.58) (Quit: ZNC 1.8.2 - https://znc.in)
2024-12-03 00:13:15 +0100koz(~koz@121.99.240.58)
2024-12-03 00:13:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 00:24:18 +0100malte(~malte@mal.tc) (Remote host closed the connection)
2024-12-03 00:24:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 00:27:33 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Quit: Ping timeout (120 seconds))
2024-12-03 00:27:43 +0100MironZ3(~MironZ@nat-infra.ehlab.uk) (Quit: Ping timeout (120 seconds))
2024-12-03 00:27:50 +0100malte(~malte@mal.tc) malte
2024-12-03 00:27:52 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) sciencentistguy
2024-12-03 00:28:03 +0100MironZ3(~MironZ@nat-infra.ehlab.uk)
2024-12-03 00:29:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-03 00:34:56 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6c70:1ac0:d127:74dd) hgolden
2024-12-03 00:37:02 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 00:40:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 00:41:29 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2024-12-03 00:42:16 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 00:45:19 +0100 <hellwolf> I am back. This is one that works: https://play.haskell.org/saved/SyfciPGn not the most pretty code, but kinda works.
2024-12-03 00:47:05 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-12-03 00:47:13 +0100Square(~Square@user/square) (Ping timeout: 265 seconds)
2024-12-03 00:48:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 00:53:25 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-03 00:55:20 +0100alexherbo2(~alexherbo@13.135.22.93.rev.sfr.net) (Remote host closed the connection)
2024-12-03 01:00:33 +0100acidjnk_new3(~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-12-03 01:01:14 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 260 seconds)
2024-12-03 01:04:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 01:09:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 01:15:01 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 01:19:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 01:20:33 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 248 seconds)
2024-12-03 01:21:41 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 248 seconds)
2024-12-03 01:22:39 +0100j1n37(~j1n37@user/j1n37) j1n37
2024-12-03 01:24:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-03 01:26:10 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 01:31:19 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 272 seconds)
2024-12-03 01:32:34 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 272 seconds)
2024-12-03 01:34:08 +0100philopsos(~caecilius@user/philopsos) (Quit: Lost terminal)
2024-12-03 01:35:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 01:35:42 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-12-03 01:38:22 +0100j1n37(~j1n37@user/j1n37) j1n37
2024-12-03 01:40:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-12-03 01:40:29 +0100 <sprotte24> hellwolf, thanks for combi. But it does not run as expected. your solution should be: [[],['a'],['b'],['c'],['d'],['a','b'], ... ...
2024-12-03 01:41:04 +0100 <sprotte24> let us discuss it tomorrow.
2024-12-03 01:43:34 +0100 <sprotte24> And haskell should generate the complete list (virtuelly) and print with take n [first n list elements]
2024-12-03 01:43:47 +0100 <sprotte24> bye
2024-12-03 01:43:59 +0100sprotte24(~sprotte24@p200300d16f395d001484d78db1444af0.dip0.t-ipconnect.de) (Quit: Leaving)
2024-12-03 01:48:17 +0100malte(~malte@mal.tc) (Remote host closed the connection)
2024-12-03 01:49:51 +0100malte(~malte@mal.tc) malte
2024-12-03 01:51:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 01:56:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-03 02:00:57 +0100vanishingideal(~vanishing@user/vanishingideal) (Quit: leaving)
2024-12-03 02:05:08 +0100 <Axman6> > iterate (liftA2 (:) "abc") ""
2024-12-03 02:05:10 +0100 <lambdabot> error:
2024-12-03 02:05:10 +0100 <lambdabot> • Couldn't match type ‘Char’ with ‘[Char]’
2024-12-03 02:05:10 +0100 <lambdabot> Expected type: [[Char]]
2024-12-03 02:06:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 02:07:31 +0100 <Axman6> > take 50 $ concat $ iterate (liftA2 (:) "abc") [""]
2024-12-03 02:07:33 +0100 <lambdabot> ["","a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","aa...
2024-12-03 02:08:02 +0100 <c_wraith> that's ordered sequences, not combinations
2024-12-03 02:08:25 +0100 <Axman6> Ah I wasn't following the convo closely enough
2024-12-03 02:11:30 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 02:11:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-12-03 02:17:05 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
2024-12-03 02:17:37 +0100 <Axman6> I wish Data.List had something like select :: [a] -> [([a],a,[a])] (or even [a] -> [([a] -> [a], a, [a])] for that O(1) list construction goodness)
2024-12-03 02:18:52 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-12-03 02:19:01 +0100 <c_wraith> hellwolf: fwiw, you can use tails to simplify that a lot: https://play.haskell.org/saved/sPfG6hLU
2024-12-03 02:19:26 +0100 <c_wraith> (It's the same behavior as your code, but with a lot less indexing)
2024-12-03 02:22:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 02:29:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 02:30:10 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 02:39:25 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 260 seconds)
2024-12-03 02:39:48 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 02:40:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 02:45:31 +0100Everything(~Everythin@46.211.80.247) (Quit: leaving)
2024-12-03 02:45:43 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-12-03 02:48:07 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 244 seconds)
2024-12-03 02:50:31 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 02:56:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 03:00:27 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2024-12-03 03:01:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 03:12:03 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 03:16:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-12-03 03:25:29 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 255 seconds)
2024-12-03 03:27:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 03:33:05 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 03:43:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 03:43:57 +0100OftenFaded(~OftenFade@user/tisktisk) (Quit: Client closed)
2024-12-03 03:47:59 +0100dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 265 seconds)
2024-12-03 03:48:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-03 03:49:48 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 03:49:58 +0100philopsos(~caecilius@user/philopsos) philopsos
2024-12-03 03:52:41 +0100dibblego(~dibblego@haskell/developer/dibblego) dibblego
2024-12-03 03:58:23 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 244 seconds)
2024-12-03 03:59:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 04:06:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-03 04:08:24 +0100td_(~td@i5387091A.versanet.de) (Ping timeout: 252 seconds)
2024-12-03 04:10:17 +0100td_(~td@i5387091F.versanet.de)
2024-12-03 04:12:10 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 04:16:43 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2024-12-03 04:17:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 04:19:09 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 04:22:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-03 04:26:09 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 248 seconds)
2024-12-03 04:26:17 +0100philopsos(~caecilius@user/philopsos) (Quit: Lost terminal)
2024-12-03 04:28:00 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-12-03 04:33:07 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 04:34:02 +0100nek0(~nek0@user/nek0) (Ping timeout: 244 seconds)
2024-12-03 04:34:36 +0100rncwnd(~quassel@2a01:4f8:221:27c6::1) (Ping timeout: 276 seconds)
2024-12-03 04:34:56 +0100auri(~auri@fsf/member/auri) (Ping timeout: 264 seconds)
2024-12-03 04:36:38 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-12-03 04:38:14 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 04:41:38 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 04:42:55 +0100billchenchina(~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) billchenchina
2024-12-03 04:43:19 +0100auri(~auri@fsf/member/auri) auri
2024-12-03 04:43:23 +0100rncwnd(~quassel@2a01:4f8:221:27c6::1)
2024-12-03 04:45:37 +0100 <iqubic> Axman, I also want a select function
2024-12-03 04:47:23 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
2024-12-03 04:48:35 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 04:48:40 +0100philopsos(~caecilius@user/philopsos) philopsos
2024-12-03 04:48:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 04:52:12 +0100 <iqubic> What's going on with merijn here?
2024-12-03 04:53:14 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
2024-12-03 04:53:43 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-12-03 04:55:03 +0100nek0(~nek0@user/nek0) nek0
2024-12-03 05:02:19 +0100nadja(~dequbed@banana-new.kilobyte22.de) (Ping timeout: 252 seconds)
2024-12-03 05:04:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 05:09:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-03 05:12:28 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 05:17:34 +0100nadja(~dequbed@banana-new.kilobyte22.de) dequbed
2024-12-03 05:18:14 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-12-03 05:18:40 +0100aforemny(~aforemny@2001:9e8:6ce3:fa00:8581:f920:fe47:eb38) aforemny
2024-12-03 05:19:54 +0100aforemny_(~aforemny@2001:9e8:6cc2:7300:b057:b2c0:d48e:e441) (Ping timeout: 252 seconds)
2024-12-03 05:20:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 05:20:21 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2024-12-03 05:24:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 05:26:16 +0100weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2024-12-03 05:30:59 +0100weary-traveler(~user@user/user363627) user363627
2024-12-03 05:31:48 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 276 seconds)
2024-12-03 05:32:09 +0100vanishingideal(~vanishing@user/vanishingideal) (Quit: leaving)
2024-12-03 05:32:11 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 05:35:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 05:42:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 05:49:00 +0100budabudabee(~budabudab@136.38.236.196)
2024-12-03 05:52:19 +0100meritamen(~user@user/meritamen) meritamen
2024-12-03 05:53:08 +0100meritamen(~user@user/meritamen) (Client Quit)
2024-12-03 05:53:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 05:58:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-03 06:08:23 +0100myxos(~myxos@syn-065-028-251-121.res.spectrum.com) (Ping timeout: 255 seconds)
2024-12-03 06:09:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 06:10:43 +0100myxos(~myxos@syn-065-028-251-121.res.spectrum.com) myxokephale
2024-12-03 06:14:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-03 06:23:43 +0100budabudabee(~budabudab@136.38.236.196) (Quit: Quit)
2024-12-03 06:25:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 06:29:59 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-12-03 06:33:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 06:34:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 06:39:07 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-12-03 06:49:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 06:53:33 +0100philopsos(~caecilius@user/philopsos) (Quit: Lost terminal)
2024-12-03 06:54:13 +0100 <ski> int-e : "TBH the fact that (a . b .) is invalid annoys me a little bit. It's associative after all..." -- yea .. which (amongst reading some papers on operator parsing) was what prompted me to wanting `(2 + 3 *)' ("section sequence") to mean `\x -> 2 + 3 * x'
2024-12-03 06:54:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 06:55:19 +0100euleritian(~euleritia@77.22.252.159) (Ping timeout: 260 seconds)
2024-12-03 06:55:27 +0100alp(~alp@2001:861:8ca0:4940:fcfb:c018:c718:ffe)
2024-12-03 06:56:37 +0100euleritian(~euleritia@dynamic-176-000-179-000.176.0.pool.telefonica.de)
2024-12-03 06:57:20 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2024-12-03 06:58:01 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 07:00:48 +0100euleritian(~euleritia@dynamic-176-000-179-000.176.0.pool.telefonica.de) (Ping timeout: 245 seconds)
2024-12-03 07:03:58 +0100euleritian(~euleritia@dynamic-176-004-226-029.176.4.pool.telefonica.de)
2024-12-03 07:05:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 07:06:39 +0100hammond(proscan@user/hammond2) (Ping timeout: 246 seconds)
2024-12-03 07:09:33 +0100bairyn(~bairyn@50.250.232.19) (Remote host closed the connection)
2024-12-03 07:10:43 +0100ft(~ft@p508db9c7.dip0.t-ipconnect.de) (Quit: leaving)
2024-12-03 07:10:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 07:12:29 +0100michalz(~michalz@185.246.207.221)
2024-12-03 07:14:09 +0100euleritian(~euleritia@dynamic-176-004-226-029.176.4.pool.telefonica.de) (Ping timeout: 248 seconds)
2024-12-03 07:16:30 +0100euleritian(~euleritia@dynamic-176-000-012-169.176.0.pool.telefonica.de)
2024-12-03 07:17:30 +0100hammond(proscan@gateway04.insomnia247.nl)
2024-12-03 07:18:00 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-12-03 07:18:12 +0100euleritian(~euleritia@dynamic-176-000-012-169.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-03 07:18:40 +0100euleritian(~euleritia@dynamic-176-000-012-169.176.0.pool.telefonica.de)
2024-12-03 07:19:08 +0100euleritian(~euleritia@dynamic-176-000-012-169.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-03 07:20:16 +0100euleritian(~euleritia@dynamic-176-000-012-169.176.0.pool.telefonica.de)
2024-12-03 07:21:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 07:24:31 +0100euleritian(~euleritia@dynamic-176-000-012-169.176.0.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-12-03 07:24:51 +0100ByronJohnson(~bairyn@50.250.232.19) ByronJohnson
2024-12-03 07:28:28 +0100euleritian(~euleritia@dynamic-176-003-040-158.176.3.pool.telefonica.de)
2024-12-03 07:28:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-03 07:30:00 +0100euleritian(~euleritia@dynamic-176-003-040-158.176.3.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-03 07:30:33 +0100arahael(~arahael@user/arahael) arahael
2024-12-03 07:30:37 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-12-03 07:30:41 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
2024-12-03 07:34:52 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2024-12-03 07:35:53 +0100euleritian(~euleritia@dynamic-176-003-040-158.176.3.pool.telefonica.de)
2024-12-03 07:39:19 +0100 <iqubic> What does Megaparsec's `runParser` function do if the given parser doesn't fully consume the given input? Does it just run the parser as much as it can and then just throw away the unparsed bit?
2024-12-03 07:39:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 07:40:50 +0100 <c_wraith> iqubic: well, that's what testing suggests it does
2024-12-03 07:42:42 +0100 <c_wraith> runParser' uses and returns a parser state value that includes an unparsed suffix of the input
2024-12-03 07:44:39 +0100 <iqubic> Cool. I don't actually need to keep the unparsed suffix, but it's good that I can get that if needed.
2024-12-03 07:44:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 07:45:56 +0100briandaed(~root@user/briandaed) briandaed
2024-12-03 07:48:17 +0100 <mauke> preflex: tell mauke hi
2024-12-03 07:48:17 +0100 <preflex> what
2024-12-03 07:48:23 +0100 <mauke> dang
2024-12-03 07:49:34 +0100 <ski> preflex: xseen mmorrow
2024-12-03 07:49:34 +0100 <preflex> Sorry, I haven't seen mmorrow
2024-12-03 07:49:55 +0100 <mauke> "new state; who dis?"
2024-12-03 07:50:03 +0100 <ski> ayup
2024-12-03 07:50:53 +0100 <mauke> preflex: tell mauke_ hi
2024-12-03 07:50:53 +0100 <preflex> Consider it noted.
2024-12-03 07:51:00 +0100maukemauke_
2024-12-03 07:51:10 +0100 <mauke_> a
2024-12-03 07:51:10 +0100 <ski> ACTION ?
2024-12-03 07:51:10 +0100 <preflex> mauke_: you have 1 new message. '/msg preflex messages' to read it.
2024-12-03 07:51:39 +0100mauke_mauke
2024-12-03 07:52:13 +0100 <ski> perhaps it tell publicly (immediately ?), if the original message was sent publicly ?
2024-12-03 07:53:26 +0100 <mauke> preflex: tell merijn your connection is flapping. you've been connecting (for 5-6 minutes) and disconnecting (for 10-11 minutes) repeatedly for the past days, possibly weeks
2024-12-03 07:53:26 +0100 <preflex> Consider it noted.
2024-12-03 07:53:38 +0100 <mauke> ski: yes
2024-12-03 07:54:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 07:57:27 +0100 <ski> s/it tell/it could tell/
2024-12-03 07:57:51 +0100 <ski> (i mean, it didn't tell the message above, just that there was a message?
2024-12-03 07:57:53 +0100 <ski> )
2024-12-03 07:58:45 +0100 <iqubic> What is preflex?
2024-12-03 07:59:23 +0100andreas303(andreas303@is.drunk.and.ready-to.party) (Quit: fBNC - https://bnc4free.com)
2024-12-03 07:59:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 07:59:51 +0100 <mauke> ah, like that
2024-12-03 08:00:12 +0100 <mauke> iqubic: my old bot
2024-12-03 08:00:22 +0100 <iqubic> That's cool.
2024-12-03 08:01:12 +0100 <mauke> ski: could be "public" in a different channel, though
2024-12-03 08:01:27 +0100 <mauke> and there could be multiple messages waiting
2024-12-03 08:02:48 +0100 <ski> yes, probably would be localized to the channel it was sent on (not sent publicly to any other channel)
2024-12-03 08:03:07 +0100ByronJohnson(~bairyn@50.250.232.19) (Remote host closed the connection)
2024-12-03 08:03:27 +0100 <ski> .. i guess if it sees activity elsewhere, one could send a private message about having a message on #channel
2024-12-03 08:03:37 +0100skican't recall how sorbet handled this thing
2024-12-03 08:03:57 +0100 <ski> (and yea, some throttling for multiple messages, i guess)
2024-12-03 08:10:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 08:14:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-03 08:15:10 +0100ByronJohnson(~bairyn@50.250.232.19) ByronJohnson
2024-12-03 08:20:05 +0100billchenchina(~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Ping timeout: 260 seconds)
2024-12-03 08:26:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 08:30:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-03 08:31:53 +0100fp1(~Thunderbi@130.233.70.205) fp
2024-12-03 08:36:55 +0100andreas303(andreas303@is.drunk.and.ready-to.party) andreas303
2024-12-03 08:38:31 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-12-03 08:39:34 +0100billchenchina(~billchenc@103.152.35.21) billchenchina
2024-12-03 08:41:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 08:45:26 +0100fp1(~Thunderbi@130.233.70.205) (Quit: fp1)
2024-12-03 08:45:49 +0100fp1(~Thunderbi@2001:708:20:1406::1370) fp
2024-12-03 08:46:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 08:50:05 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-12-03 08:50:50 +0100Guest2(~Guest2@185.234.115.65)
2024-12-03 08:52:27 +0100Guest2(~Guest2@185.234.115.65) (Client Quit)
2024-12-03 08:57:48 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-03 09:00:00 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-12-03 09:00:31 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-12-03 09:00:37 +0100caconym(~caconym@user/caconym) caconym
2024-12-03 09:01:51 +0100 <fp1> How do you add a package with ghc? I'm building with =ghc -dynamic -package regex-posix-0.96.0.1 foo.hs=, but the Text.Regex module isn't present. I'm able to solve this in ghci with =:mod +Text.Regex.Posix=, but the same doesn't work in a source file.
2024-12-03 09:01:53 +0100 <haskellbridge> <hellwolf> c_wraith: oh, right. and list comprehension. I think your implementation misses the case where y is not in the combination for n selection. But it's an easy fix and still a good use of list comprehension.
2024-12-03 09:02:30 +0100 <fp1> Note that I would use cabal, but this is meant to be a hacky little 20 line exercise, not a full-blown project
2024-12-03 09:04:11 +0100 <c_wraith> hellwolf: no, it's using tails. That means that at some point in the comprehension, y is every element of the list.
2024-12-03 09:04:32 +0100 <Axman6> fp1: honestly using cabal will be simpler, you can just do cabal init and then add the package. I'm not sure if you have to specify a package location these days?
2024-12-03 09:05:23 +0100 <haskellbridge> <hellwolf> c_wraith: but there is case that y is dropped but still taking n elements? I will be back to keyboard and double check.
2024-12-03 09:05:27 +0100hsw_(~hsw@112-104-8-145.adsl.dynamic.seed.net.tw) hsw
2024-12-03 09:06:04 +0100hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
2024-12-03 09:06:06 +0100 <fp1> Ah that's annoying. I'm doing advent of code, so it's 25 executables. I can change the source target ofc, just annoying
2024-12-03 09:06:44 +0100 <c_wraith> hellwolf: It breaks down the work differently than that. It's broken down as "take each element as the head, then draw all possible combinations of (n-1) elements from the tail of that element"
2024-12-03 09:07:10 +0100 <c_wraith> (with an implicit failure case when there are fewer than n-1 elements in the tail)
2024-12-03 09:09:09 +0100 <briandaed> fp1: what prevents you from doing it in one executable, just different actions/functions? a lot of code will be shared, i.e reading input / parsing
2024-12-03 09:09:33 +0100RedNifre(~RedNifre@dslb-002-203-026-114.002.203.pools.vodafone-ip.de) (Ping timeout: 276 seconds)
2024-12-03 09:09:39 +0100 <fp1> Maybe I could do it that way, yeah
2024-12-03 09:14:04 +0100itaipu(~itaipu@168.121.99.42) (Ping timeout: 244 seconds)
2024-12-03 09:15:36 +0100 <haskellbridge> <hellwolf> have you considered cabal scrip?
2024-12-03 09:22:50 +0100 <jackdk> What can I spend it on?
2024-12-03 09:31:05 +0100Guest99099(~Guest9909@80-186-163-16.elisa-mobile.fi)
2024-12-03 09:33:03 +0100chele(~chele@user/chele) chele
2024-12-03 09:33:27 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2024-12-03 09:35:48 +0100 <Axman6> either one binary which has all your answers or define multiple programs in the cabal file. you can keep everything in the library to maximise sharing and then just call out to the appropriate main
2024-12-03 09:46:04 +0100CiaoSen(~Jura@2a05:5800:210:3f00:ca4b:d6ff:fec1:99da) CiaoSen
2024-12-03 09:47:18 +0100olivial(~benjaminl@user/benjaminl) (Ping timeout: 246 seconds)
2024-12-03 09:47:41 +0100 <probie> You can also be really lazy like me, and run all days challenges whenever you run the program
2024-12-03 09:48:59 +0100 <c_wraith> that requires you to not use algorithms that brute force in the 10 minute area. :P
2024-12-03 09:49:09 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 245 seconds)
2024-12-03 09:51:07 +0100 <fp1> So I found [this](https://stackoverflow.com/a/5591628) explanation of how to get groups out of a regex, but I'm not understanding in what context I should be putting =type MatchText ...= or =RegexContext ...=, and in the latter case, I don't even understand what that is (it looks like a type, but it's not in a type place). I'm also getting nasty errors using this, so I'm doing something very wrong
2024-12-03 09:52:49 +0100merijn(~merijn@77.242.116.146) merijn
2024-12-03 09:54:06 +0100sprotte24(~sprotte24@p200300d16f4231005949a0b38fd8c80a.dip0.t-ipconnect.de)
2024-12-03 09:54:23 +0100olivial(~benjaminl@user/benjaminl) benjaminl
2024-12-03 09:56:47 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-12-03 09:57:42 +0100cyphase(~cyphase@user/cyphase) cyphase
2024-12-03 09:58:25 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 248 seconds)
2024-12-03 09:58:49 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 10:03:24 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 246 seconds)
2024-12-03 10:03:34 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-12-03 10:03:59 +0100 <haskellbridge> <hellwolf> c_wraith: aha, now I get it. It's the "tails", not "tail" I had not known of it.
2024-12-03 10:04:11 +0100 <haskellbridge> <hellwolf> it seems there are many treasures in the Data.List
2024-12-03 10:04:33 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 10:05:03 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-12-03 10:05:36 +0100 <haskellbridge> <hellwolf> > tails "haskell"
2024-12-03 10:05:47 +0100 <hellwolf> > tails "haskell"
2024-12-03 10:05:48 +0100 <lambdabot> ["haskell","askell","skell","kell","ell","ll","l",""]
2024-12-03 10:06:26 +0100 <c_wraith> yeah, it's surprisingly useful
2024-12-03 10:07:00 +0100 <c_wraith> especially with that list comprehension idiom
2024-12-03 10:07:36 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 246 seconds)
2024-12-03 10:07:52 +0100haskellbridgehellwolf learned something new everyday
2024-12-03 10:09:12 +0100 <haskellbridge> <hellwolf> Btw, this is my ~/Templates/cabalscript.hs
2024-12-03 10:09:12 +0100 <haskellbridge> https://play.haskell.org/saved/aetDTZiA
2024-12-03 10:09:27 +0100 <haskellbridge> <hellwolf> I would never write a cabal project if it's small enough for me to just create a script of it.
2024-12-03 10:10:18 +0100 <haskellbridge> <hellwolf> The only downside is that it litters ~/.cabal/script-builds/
2024-12-03 10:10:18 +0100 <haskellbridge> Unlike stack script, which can run things in interpreting mode, which is probably sufficient for most of thsoe cases.
2024-12-03 10:10:42 +0100 <haskellbridge> <hellwolf> There is some surprising missing-optimization when using interpreting mode, but otherwise you are fine.
2024-12-03 10:13:05 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2024-12-03 10:13:15 +0100fp1(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 260 seconds)
2024-12-03 10:14:09 +0100merijn(~merijn@77.242.116.146) merijn
2024-12-03 10:19:23 +0100Square(~Square@user/square) Square
2024-12-03 10:20:12 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-03 10:21:44 +0100lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2024-12-03 10:24:33 +0100reidrac(~reidrac@user/reidrac) reidrac
2024-12-03 10:25:12 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2024-12-03 10:27:20 +0100acidjnk_new3(~acidjnk@p200300d6e7283f756566d9820eaa5300.dip0.t-ipconnect.de)
2024-12-03 10:32:56 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2024-12-03 10:36:41 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2024-12-03 10:36:58 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2024-12-03 10:45:23 +0100Guest99099(~Guest9909@80-186-163-16.elisa-mobile.fi) (Quit: Guest99099)
2024-12-03 10:46:09 +0100 <kuribas> > inits "haskell"
2024-12-03 10:46:10 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 10:46:10 +0100 <lambdabot> ["","h","ha","has","hask","haske","haskel","haskell"]
2024-12-03 10:46:27 +0100 <kuribas> Interestingly inits uses quadratic space, but tails linear.
2024-12-03 10:46:51 +0100 <kuribas> I wonder if there are language that or not just lazy, but allow you to match on terms.
2024-12-03 10:46:58 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2024-12-03 10:47:03 +0100Guest5643(~adlon17@129.94.128.31)
2024-12-03 10:47:50 +0100 <kuribas> Then you can specify reverse (reverse l) = l
2024-12-03 10:48:20 +0100 <kuribas> Or maybe better, a dependently typed language where you can write rewrite rules with proofs.
2024-12-03 10:49:14 +0100merijn(~merijn@77.242.116.146) merijn
2024-12-03 10:50:17 +0100Guest5643(~adlon17@129.94.128.31) (Quit: Lost terminal)
2024-12-03 10:51:45 +0100 <jackdk> That's more due to how cons lists work than anything else
2024-12-03 10:52:02 +0100 <jackdk> Common lisp has `destructuring-bind`; `fennel` has pattern-matching; I'm sure there are others
2024-12-03 10:52:32 +0100 <kuribas> Maybe inits should return a snoc list.
2024-12-03 10:53:25 +0100 <kuribas> [Snoc "", Snoc "l", Snoc "ll", Snoc "lle", Snoc "llek", ...]
2024-12-03 10:54:40 +0100 <int-e> > scanl (flip (:)) [] "haskell"
2024-12-03 10:54:41 +0100 <lambdabot> ["","h","ah","sah","ksah","eksah","leksah","lleksah"]
2024-12-03 10:58:33 +0100 <kuribas> :t Tsil
2024-12-03 10:58:34 +0100 <lambdabot> error: Data constructor not in scope: Tsil
2024-12-03 10:58:36 +0100 <kuribas> :t Snoc
2024-12-03 10:58:37 +0100 <lambdabot> error:
2024-12-03 10:58:37 +0100 <lambdabot> • Data constructor not in scope: Snoc
2024-12-03 10:58:37 +0100 <lambdabot> • Perhaps you meant one of these:
2024-12-03 10:59:27 +0100 <int-e> > Dual "abc" <> Dual "def"
2024-12-03 10:59:28 +0100 <lambdabot> Dual {getDual = "defabc"}
2024-12-03 11:02:22 +0100 <int-e> > ($ []) . appEndo . getDual . mconcat . map (Dual . Endo . (:)) $ "haskell"
2024-12-03 11:02:23 +0100 <lambdabot> "lleksah"
2024-12-03 11:07:32 +0100fp1(~Thunderbi@2001:708:20:1406::1370) fp
2024-12-03 11:08:28 +0100 <fp1> I got these two lines of code off of stack overflow to extract groups out of regex matches, but I don't understand where I'm supposed to use them, or even what the first line does. Could someone help me understand? (Sorry if this was already answered; I went to lunch and my machine disconnected from the chat)
2024-12-03 11:08:28 +0100 <fp1> RegexContext a b (AllTextMatches (Array Int) (MatchText b))
2024-12-03 11:08:28 +0100 <fp1> type MyMatchText source = Array Int (source, (MatchOffset, MatchLength))
2024-12-03 11:11:23 +0100turlando(~turlando@user/turlando) (Quit: No Ping reply in 180 seconds.)
2024-12-03 11:12:40 +0100turlando(~turlando@user/turlando) turlando
2024-12-03 11:13:57 +0100mari-estel(~mari-este@user/mari-estel) mari-estel
2024-12-03 11:16:49 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-12-03 11:25:24 +0100iqubic(~sophia@2601:602:9201:9440:a79c:888c:bcf5:a830) (Ping timeout: 260 seconds)
2024-12-03 11:31:06 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-03 11:46:37 +0100 <merijn> fp1: The first line is not syntactically correct unless you left of a part before it
2024-12-03 11:46:37 +0100 <preflex> merijn: you have 1 new message. '/msg preflex messages' to read it.
2024-12-03 11:47:04 +0100 <fp1> This is what they shared https://stackoverflow.com/a/5591628
2024-12-03 11:47:37 +0100 <jackdk> RegexContext is this multi-parameter type class: https://hackage.haskell.org/package/regex-base-0.94.0.2/docs/Text-Regex-Base-RegexLike.html#t:Rege…
2024-12-03 11:49:02 +0100 <merijn> fp1: tbh, depending on what you're doing there's a decent chance the best advice is "don't bother with regex libraries in Haskell"
2024-12-03 11:49:32 +0100 <merijn> Like, the only real usecase for regular expressions (in Haskell) imo is "when you're accepting user input in the form of regular expressions"
2024-12-03 11:49:47 +0100 <fp1> Well, I nearly have what I'm looking for
2024-12-03 11:49:55 +0100 <sm> which is a pretty common use case
2024-12-03 11:49:57 +0100 <fp1> But if I may, why avoid regexes?
2024-12-03 11:50:00 +0100 <merijn> In all other cases it's generally *easier* and more maintainable to use a parser library
2024-12-03 11:50:19 +0100 <merijn> fp1: The main reason people use regexes in other languages is that "writing a proper parser sucks in most languages"
2024-12-03 11:50:47 +0100 <jackdk> The first parameter, `regex`, is used by marker types defined by each regex implementation package (like `regex-posix`, `regex-tdfa`, etc). This disambiguates the instances from each package by giving them a "namespace". The second parameter, `source`, is the name of the source type, which is usually a type like `String` or `Text`. The third parameter, `target`, is the type it's going to use to give you a result, of which there are many.
2024-12-03 11:50:47 +0100 <merijn> fp1: Haskell's parser libraries are MUCH easier and nicer to use, meaning that just using those is generally simpler than using regexes
2024-12-03 11:51:00 +0100 <sm> fp1 you will probably find a different regex lib like https://hackage.haskell.org/package/regex easier
2024-12-03 11:51:28 +0100 <jackdk> I wonder how much of that folklore is due to `regex-base` etc being comparatively wild in its design for something so many newbies want to use?
2024-12-03 11:51:40 +0100 <sm> 90%, I think
2024-12-03 11:52:00 +0100 <merijn> jackdk: Which folklore?
2024-12-03 11:52:16 +0100Yumemi_(~Yumemi@chamoin.net) (Quit: .)
2024-12-03 11:52:22 +0100 <sm> "regex bad, always write a parser"
2024-12-03 11:52:32 +0100 <merijn> I'm not even talking about the PITA that regex-base is, just the fact that regular expressions themselves are stupidly unmaintainable
2024-12-03 11:52:42 +0100turlando(~turlando@user/turlando) ()
2024-12-03 11:52:50 +0100 <merijn> Hard to document, impossible to format nicely, terrible error reporting
2024-12-03 11:52:55 +0100 <sm> will have to disagree; sometimes they are the most maintainable
2024-12-03 11:53:07 +0100 <jackdk> merijn: the one you just said, "don't bother with regex libraries in Haskell". While parser libraries are excellent, the fact that it's *yet another* "don't do it this way, do it this better haskelly way" on a newbie's road to productivity is regrettable.
2024-12-03 11:53:18 +0100turlando(~turlando@user/turlando) turlando
2024-12-03 11:53:33 +0100 <merijn> jackdk: *shrug*
2024-12-03 11:53:57 +0100 <mari-estel> *shrug*
2024-12-03 11:54:14 +0100 <fp1> Felt like the right choice for an advent of code problem. Also been going through this 48h Scheme tutorial for a while, but it's been very hard for me to get my head around Megaparsec for that, so I wanted to try out the not parsing parts of Haskell for a change
2024-12-03 11:54:18 +0100 <sm> jackdk++
2024-12-03 11:54:35 +0100 <merijn> jackdk: On the one hand yes, on the other hand learning things that will serve you for life is also good :)
2024-12-03 11:54:43 +0100 <merijn> fp1: I figured it'd be AoC :)
2024-12-03 11:54:53 +0100 <jackdk> At least we can lay out learning paths for newbies that visit parsers before they trip over regex-base. Because yeah, composable parsers are pretty excellent
2024-12-03 11:55:00 +0100 <merijn> fp1: FWIW, I have a repo with (old, I didn't get around to this year yet) AoC examples using megaparsec
2024-12-03 11:55:20 +0100 <merijn> fp1: https://github.com/merijn/AdventOfCode/tree/master
2024-12-03 11:55:33 +0100Yumemi(~Yumemi@chamoin.net) Yumemi
2024-12-03 11:55:58 +0100 <merijn> fp1: I spent extra effort trying to have them all as "correct" (as in handle all potential errors, no unsafe stuff, etc.) as possible and as clean for beginners as I could
2024-12-03 11:56:16 +0100 <fp1> What does "unsafe" mean in the Haskell context?
2024-12-03 11:56:17 +0100 <merijn> fp1: So maybe you'll find some useful stuff there
2024-12-03 11:56:25 +0100 <fp1> Thanks, I'll take a look
2024-12-03 11:56:29 +0100 <merijn> fp1: as in no partial (potentially) crashing functions
2024-12-03 11:56:43 +0100 <jackdk> Avoiding functions like `head :: [a] -> a` whose type makes an impossible promise and can crash at runtime
2024-12-03 11:56:43 +0100 <fp1> would =tail []= be an example?
2024-12-03 11:56:45 +0100 <jackdk> ... yeah that one
2024-12-03 11:56:48 +0100 <merijn> fp1: For example, yes
2024-12-03 11:57:37 +0100 <jackdk> merijn: OTOH, parser combinators can lead devs to write backtracking-heavy parsers that get very confused and provide very confusing error messages. These days, I tend to use them to build lexers and build a recursive descent parser for the grammar or whatever. `*shrug*`
2024-12-03 11:58:06 +0100 <merijn> jackdk: Sure, but the kinda stuff you'd write regexes for is simple enough to write with parser combinators :)
2024-12-03 11:58:20 +0100 <jackdk> Oh yeah they're absolutely great for it don't get me wrong `:-)`
2024-12-03 11:58:44 +0100 <jackdk> And you don't get stuff like `Mail::RFC822::Address` `;-)`
2024-12-03 11:59:43 +0100 <mari-estel> i get refgex are good for newcomers, but hey libaries grow with volunteers
2024-12-03 12:00:32 +0100turlando_(~turlando@user/turlando) turlando
2024-12-03 12:00:43 +0100 <fp1> Would it be ok if I shared my solution to the problem I've done to see how to make it better/more idiomatic (despite regexes)
2024-12-03 12:00:59 +0100turlando(~turlando@user/turlando) (Ping timeout: 265 seconds)
2024-12-03 12:01:42 +0100 <sm> many people coming to Haskell know regular expressions and use them easily in their favourite languages, on the command line, in apps all the time. This should be straightforward in Haskell as well. We shouldn't force them all to learn a new, complex, error prone, much more verbose way.
2024-12-03 12:01:50 +0100 <mari-estel> you can show it in a pull request fp1
2024-12-03 12:03:14 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:ac82:32e9:69de:2e6f) ubert
2024-12-03 12:03:45 +0100CiaoSen(~Jura@2a05:5800:210:3f00:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds)
2024-12-03 12:05:55 +0100 <sm> so fp1 if you use regexps again, maybe try the regex lib and let us know how that one goes
2024-12-03 12:06:17 +0100 <fp1> As in Text.RE? Sure thing
2024-12-03 12:06:45 +0100 <sm> https://hackage.haskell.org/package/regex, yes
2024-12-03 12:07:38 +0100 <fp1> Text.Regex wasn't bad, jut a bit confusing since a lot of functionality doesn't come from the API, but from the type system. If that were clearer in the docs, it'd have been a better time
2024-12-03 12:08:49 +0100 <sm> yes it's famously confusing and hard to get started with
2024-12-03 12:09:18 +0100 <sm> and often missing important features
2024-12-03 12:10:13 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2024-12-03 12:12:24 +0100 <fp1> mari-estel: Here's a pull request :) https://github.com/fpdotmonkey/advent-of-code/pull/1
2024-12-03 12:12:53 +0100 <jackdk> sm: I disagree with "error-prone" for parser combinators, especially when compared to regexen
2024-12-03 12:13:39 +0100 <mari-estel> lost fp1, thought you were about the regex prob
2024-12-03 12:13:41 +0100turlando_turlando
2024-12-03 12:13:45 +0100 <sm> jackdk, haven't you seen people in here struggling with backtracking ? haven't you had trouble yourself ?
2024-12-03 12:14:00 +0100 <fp1> hm? Yeah the regex problem was me
2024-12-03 12:14:20 +0100 <mari-estel> and were you complaining about a lib?
2024-12-03 12:14:31 +0100 <sm> no, that was me :)
2024-12-03 12:14:35 +0100pabs3(~pabs3@user/pabs3) (Ping timeout: 260 seconds)
2024-12-03 12:14:46 +0100 <mari-estel> oh, apologies then
2024-12-03 12:14:48 +0100 <c_wraith> sm: that's not a problem with parser combinators, it's a problem with parsec-likes making bad design decisions
2024-12-03 12:15:35 +0100 <jackdk> sm: Not really, no. I have had very little trouble with them as a developer of parsers and occasional frustrations as a user of certain parsers in particular.
2024-12-03 12:16:25 +0100 <sm> c_wraith: one way or another, pointing newcomers at parser combinators is dropping them into a world of trouble
2024-12-03 12:16:47 +0100 <sm> there's a significant learning curve in practice
2024-12-03 12:17:23 +0100 <mari-estel> well, trouble and challenges than, it can get engaging
2024-12-03 12:17:29 +0100 <sm> y'all may have different experiences, this is just my 2c having worked a long time with both
2024-12-03 12:19:41 +0100 <fp1> I'll say from my own experience that any of parser combinators, functional programming, or wacky operators alone make the learning curve steep, but all of them together makes it extra challenging. It hasn't stopped me, though I've taken some extended breaks in this 48h Scheme tutorial. On the other hand, I got the basics of Rust in a weekend.
2024-12-03 12:20:37 +0100 <fp1> 48h Scheme meaning learning haskell by making a Scheme in nominally 48h
2024-12-03 12:21:31 +0100 <mari-estel> xcept you just learn scheme-making haskell
2024-12-03 12:22:19 +0100merijn(~merijn@77.242.116.146) merijn
2024-12-03 12:23:26 +0100 <sm> to be clear, the regex-base ecosystem is perhaps a worse world of trouble. I wouldn't point a newcomer at that either
2024-12-03 12:26:55 +0100 <jackdk> My default recommendation for newbies is to write a text-mode game like a dungeon crawler. The parsers I suggest, at least initially, are things like pattern-matching the result of `unwords`
2024-12-03 12:26:58 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2024-12-03 12:27:48 +0100 <jackdk> correction, the result of `words`
2024-12-03 12:30:18 +0100SlackCoder(~SlackCode@64-94-63-8.ip.weststar.net.ky) SlackCoder
2024-12-03 12:30:28 +0100 <mari-estel> yea but text-based game developing is feels frustrating to most
2024-12-03 12:32:37 +0100pabs3(~pabs3@user/pabs3) pabs3
2024-12-03 12:33:54 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-12-03 12:34:20 +0100 <jackdk> I understand that it's not the coolest thing going around but it does scale much more smoothly from repl to "something running" to fairly some fairly complex gameplay. And these days you can emit emoji (if you must) and coloured text to spice things up a bit.
2024-12-03 12:34:24 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2024-12-03 12:34:31 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-12-03 12:34:32 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 244 seconds)
2024-12-03 12:34:37 +0100 <haskellbridge> <sm> +1
2024-12-03 12:34:44 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-12-03 12:38:12 +0100 <haskellbridge> <sm> rogue likes have more action: https://allureofthestars.com/play (but are a much tougher project)
2024-12-03 12:38:23 +0100merijn(~merijn@77.242.116.146) merijn
2024-12-03 12:41:29 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-12-03 12:42:30 +0100 <mauke> perl -051nE 'next if /don'\''t\(\)\z/ .. /do\(\)\z/; $sum += $1 * $2 if /mul\( (\d+) , (\d+) \) \z/xa; END { say $sum }' input
2024-12-03 12:42:36 +0100califax(~califax@user/califx) califx
2024-12-03 12:45:23 +0100euleritian(~euleritia@dynamic-176-003-040-158.176.3.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-03 12:45:41 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
2024-12-03 12:47:33 +0100 <Square> I'm playing around with ReadP. When parsing large texts, that might contain non interesting substrings wo a pattern, I seem to end up with many possibilites. Is ReadP too basic to tackle this situation or am I just not using the functions correctly?
2024-12-03 12:48:41 +0100 <jackdk> sm: once you have a handle on IO and line-based IO, then you can call into a curses library or move to a gui or whatever yeah
2024-12-03 12:50:42 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-12-03 12:50:50 +0100califax_(~califax@user/califx) califx
2024-12-03 12:51:00 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-12-03 12:52:02 +0100califax_califax
2024-12-03 12:53:46 +0100sprotte24(~sprotte24@p200300d16f4231005949a0b38fd8c80a.dip0.t-ipconnect.de) (Quit: Leaving)
2024-12-03 13:00:09 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-12-03 13:01:35 +0100fp2(~Thunderbi@2001:708:150:10::8f7c) fp
2024-12-03 13:02:16 +0100fp1(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 272 seconds)
2024-12-03 13:02:30 +0100caconym(~caconym@user/caconym) caconym
2024-12-03 13:03:40 +0100fp2fp1
2024-12-03 13:04:04 +0100 <fp1> Hey if anyone were willing to read my advent of code solution and tell me how I could make it better, I'd really appreciate it :) https://github.com/fpdotmonkey/advent-of-code/pull/1/files
2024-12-03 13:05:00 +0100pavonia(~user@user/siracusa) siracusa
2024-12-03 13:06:33 +0100weary-traveler(~user@user/user363627) user363627
2024-12-03 13:07:56 +0100mari-estel(~mari-este@user/mari-estel) (Quit: overflow)
2024-12-03 13:09:42 +0100 <haskellbridge> <sm> ha ha well you seem to have survived regex-* alright, I guess your need is simple and you still probably had to read a bit
2024-12-03 13:11:53 +0100 <haskellbridge> <sm> looks good! If you wanted to check for the right number of args you could use "case args of ..."
2024-12-03 13:13:39 +0100 <haskellbridge> <sm> if you run hlint on it, it may suggest some micro cleanups
2024-12-03 13:14:58 +0100 <haskellbridge> <sm> "\str -> str" could be dropped, I'm thinking
2024-12-03 13:20:27 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 276 seconds)
2024-12-03 13:20:57 +0100 <hellwolf> `(=~ "mul\\\\(([0-9]+),([0-9]+)\\\\)")`
2024-12-03 13:21:09 +0100 <hellwolf> try https://pointfree.io/ sometimes
2024-12-03 13:21:25 +0100__monty__(~toonn@user/toonn) toonn
2024-12-03 13:25:23 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-12-03 13:25:31 +0100merijn(~merijn@77.242.116.146) merijn
2024-12-03 13:29:07 +0100rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-12-03 13:29:39 +0100rvalue(~rvalue@user/rvalue) rvalue
2024-12-03 13:29:57 +0100notzmv(~umar@user/notzmv) (Ping timeout: 252 seconds)
2024-12-03 13:30:11 +0100 <fp1> hellwolf: that's the first thing I tried, but got compiler errors out of it, "Parse error on input '::'"
2024-12-03 13:31:11 +0100 <fp1> Ah but I guess the type system will figure out what type I'm expecting on it's own? Though it's a bit less specific
2024-12-03 13:31:29 +0100 <hellwolf> question re sop-core: I have a simplified NP where there is no "type function" as the first argument to work with:
2024-12-03 13:31:29 +0100 <hellwolf> data NP :: (k -> Type) -> [k] -> Type
2024-12-03 13:31:29 +0100 <hellwolf> vs
2024-12-03 13:31:29 +0100 <hellwolf> data NP :: [Type] -> Type where
2024-12-03 13:31:29 +0100 <hellwolf> If I would want to do a conversion between Data.SimppleNP.NP with (Data.Sop.NP Identity), should I bring the unsafeCoerce bazooka, or I should be more timid and respectful here?
2024-12-03 13:32:33 +0100 <fp1> Hmm no without the type specification, the compiler says the type of (~= REGEX) is abiguous
2024-12-03 13:32:44 +0100rvalue(~rvalue@user/rvalue) (Remote host closed the connection)
2024-12-03 13:32:58 +0100 <hellwolf> OH, I didn't mean to omit the type
2024-12-03 13:33:11 +0100 <hellwolf> probably was just deleted when copy pasting to the pointfree.org
2024-12-03 13:33:12 +0100rvalue(~rvalue@user/rvalue) rvalue
2024-12-03 13:33:14 +0100iqubic(~sophia@2601:602:9201:9440:6112:c36d:f068:3b4f) iqubic
2024-12-03 13:33:47 +0100 <fp1> Right but (=~ REGEX :: [[String]]) is failing to parse
2024-12-03 13:33:55 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-12-03 13:36:38 +0100 <hellwolf> probably a bit trial and error to put that in the right place. a type application may also making things easier to work with. I am not familiar with those functions, so I can't suggest anything from top of my head.
2024-12-03 13:39:29 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
2024-12-03 13:42:35 +0100 <enikar> why \\\\ and not \\?
2024-12-03 13:44:13 +0100CiaoSen(~Jura@2a05:5800:210:3f00:ca4b:d6ff:fec1:99da) CiaoSen
2024-12-03 13:53:06 +0100 <fp1> This worked: ((=~ "mul\\(([0-9]+),([0-9]+)\\)") :: String -> [[String]])
2024-12-03 13:56:45 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-12-03 14:04:31 +0100fp1(~Thunderbi@2001:708:150:10::8f7c) (Quit: fp1)
2024-12-03 14:10:53 +0100hseg(~gesh@46.120.21.36) hseg
2024-12-03 14:13:38 +0100 <hseg> Hi. I want to update cabal's index, but only if it's been a while (I'm packaging a couple tools that build with cabal, and don't want the update step to be repeated between all of them -- it slows things down unnecessarily)
2024-12-03 14:14:26 +0100 <hseg> Is there some way of either querying the last index check time, or to tell cabal update "actually, short-circuit if you're not out of date"?
2024-12-03 14:16:36 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2024-12-03 14:16:59 +0100 <merijn> hseg: It should alredy only check if it's been longer than X time, afaik
2024-12-03 14:17:00 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 14:18:21 +0100 <hseg> hrm, so it does. idk why it seemed to take so much longer in previous runs
2024-12-03 14:18:47 +0100 <hseg> but indeed, it short-circuits in <0.6s here, which is amply enough
2024-12-03 14:26:06 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 276 seconds)
2024-12-03 14:30:01 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-12-03 14:32:05 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 248 seconds)
2024-12-03 14:38:10 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2024-12-03 14:38:38 +0100hellwolf(~user@0cc0-3799-5822-4beb-0f00-4d40-07d0-2001.sta.estpak.ee) (Quit: rcirc on GNU Emacs 29.4)
2024-12-03 14:38:54 +0100hellwolf(~user@47cb-a980-d8a8-4fad-0f00-4d40-07d0-2001.sta.estpak.ee) hellwolf
2024-12-03 14:42:59 +0100acidjnk_new3(~acidjnk@p200300d6e7283f756566d9820eaa5300.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-12-03 14:46:39 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-12-03 14:48:10 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-12-03 14:49:34 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-12-03 14:49:35 +0100acidjnk_new3(~acidjnk@p200300d6e7283f756566d9820eaa5300.dip0.t-ipconnect.de) acidjnk
2024-12-03 14:52:33 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 14:54:33 +0100weary-traveler(~user@user/user363627) user363627
2024-12-03 14:58:45 +0100Square(~Square@user/square) (Ping timeout: 252 seconds)
2024-12-03 15:00:57 +0100 <hellwolf> (GHC.List.List a) is magically the same as its pun [a]?
2024-12-03 15:01:17 +0100 <hellwolf> How does it work? Per https://hackage.haskell.org/package/ghc-prim-0.11.0/docs/src/GHC.Types.html#List it is a "data" constructor.
2024-12-03 15:02:44 +0100 <hseg> How does what work? How does GHC recognize that the sequence of characters [a] in your code is the same thing as GHC.List.List a ?
2024-12-03 15:02:55 +0100 <hseg> that's hardwired, iirc
2024-12-03 15:03:44 +0100 <hellwolf> right, lovely
2024-12-03 15:08:49 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 260 seconds)
2024-12-03 15:08:56 +0100 <hseg> it seems to be defined here https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Builtin/Types.hs
2024-12-03 15:10:17 +0100 <hseg> but I'm not certain
2024-12-03 15:21:21 +0100CiaoSen(~Jura@2a05:5800:210:3f00:ca4b:d6ff:fec1:99da) (Ping timeout: 276 seconds)
2024-12-03 15:22:50 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 15:24:04 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-12-03 15:29:12 +0100AlexZenon(~alzenon@5.139.233.9) (Ping timeout: 252 seconds)
2024-12-03 15:31:25 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-03 15:31:49 +0100acidjnk_new3(~acidjnk@p200300d6e7283f756566d9820eaa5300.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2024-12-03 15:32:08 +0100noctux(~noctux@user/noctux) (Ping timeout: 252 seconds)
2024-12-03 15:33:08 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
2024-12-03 15:33:46 +0100AlexZenon(~alzenon@5.139.233.9)
2024-12-03 15:34:36 +0100noctux(~noctux@user/noctux) noctux
2024-12-03 15:35:38 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-03 15:44:36 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-12-03 15:45:41 +0100euleritian(~euleritia@dynamic-176-006-145-188.176.6.pool.telefonica.de)
2024-12-03 15:50:05 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 15:52:17 +0100 <hellwolf> if I type this into ghci, I can peak into how to write the TH code:
2024-12-03 15:52:26 +0100 <hellwolf> λ [d| type A a = a |]
2024-12-03 15:52:26 +0100 <hellwolf> [TySynD A_4 [PlainTV a_5 BndrReq] (VarT a_5)]
2024-12-03 15:52:56 +0100 <hellwolf> but I don't know how to reproduce that in an actual code. Because I don't know which one actually has a Show instance
2024-12-03 15:52:58 +0100 <hellwolf> I am pretty confused.
2024-12-03 15:53:52 +0100 <hellwolf> λ show $ ([d| type A a = a |] :: Q [Dec])
2024-12-03 15:53:52 +0100 <hellwolf> <interactive>:22:1: error: [GHC-39999]
2024-12-03 15:53:52 +0100 <hellwolf> • No instance for ‘Show (Q [Dec])’ arising from a use of ‘show’
2024-12-03 15:54:19 +0100 <hellwolf> so how does GHCi actually show anything, is that some special handling for top level template splice
2024-12-03 15:58:31 +0100 <hellwolf> Another example, which is what I wanted,
2024-12-03 15:58:32 +0100 <hellwolf> λ [d|type family TupleNtoNP t where TupleNtoNP () = NP '[]; TupleNtoNP (Solo x) = NP '[x]; TupleNtoNP (x1, x2) = NP '[x1, x2]; |]
2024-12-03 15:58:32 +0100 <hellwolf> [ClosedTypeFamilyD (TypeFamilyHead TupleNtoNP_0 [PlainTV t_1 BndrReq] NoSig Nothing) [TySynEqn Nothing (AppT (ConT TupleNtoNP_0) (TupleT 0)) (AppT (ConT Ghci3.NP) PromotedNilT),TySynEqn Nothing (AppT (ConT TupleNtoNP_0) (AppT (ConT Ghci3.Solo) (VarT x_2))) (AppT (ConT Ghci3.NP) (AppT (AppT PromotedConsT (VarT x_2)) PromotedNilT)),TySynEqn Nothing (AppT (ConT TupleNtoNP_0) (AppT (AppT (TupleT 2) (VarT x1_3)) (VarT x2
2024-12-03 15:58:32 +0100 <hellwolf> _4))) (AppT (ConT Ghci3.NP) (AppT (AppT PromotedConsT (VarT x1_3)) (AppT (AppT PromotedConsT (VarT x2_4)) PromotedNilT)))]]
2024-12-03 15:59:05 +0100 <hellwolf> (sorry, should have used pastebin)
2024-12-03 16:00:37 +0100fp1(~Thunderbi@2001:708:20:1406::1370) fp
2024-12-03 16:01:27 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 246 seconds)
2024-12-03 16:02:23 +0100 <hellwolf> better formatted: https://paste.tomsmeding.com/woECTpJJ <-- I'd like to obtain such sample, not from ghci, but from an actual code that I run.
2024-12-03 16:04:13 +0100albet70(~xxx@2400:8905::f03c:92ff:fe60:98d8)
2024-12-03 16:05:24 +0100acidjnk_new3(~acidjnk@p200300d6e7283f756566d9820eaa5300.dip0.t-ipconnect.de)
2024-12-03 16:05:25 +0100fp1(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds)
2024-12-03 16:05:55 +0100 <Leary> hellwolf: ghci is interpreting the splice at `IO [Dec]`, which has special handling to run the IO and print the result. You can do the same manually.
2024-12-03 16:06:04 +0100 <Leary> Err, the quote.
2024-12-03 16:06:20 +0100 <geekosaur> hellwolf: there are ppr* functions and Outputable instances, in place of show/Show
2024-12-03 16:06:35 +0100 <hellwolf> λ [d|type family TupleNtoNP t where TupleNtoNP () = NP '[]; TupleNtoNP (Solo x) = NP '[x]; TupleNtoNP (x1, x2) = NP '[x1, x2]; |] :: IO [TH.Dec]
2024-12-03 16:06:36 +0100 <hellwolf> I see, yes
2024-12-03 16:06:49 +0100 <geekosaur> but yes, you are in that case seeing ghci's special behavior
2024-12-03 16:07:21 +0100 <hellwolf> wait, is that IO behavior specific to GHCi
2024-12-03 16:07:48 +0100 <geekosaur> automatically saying "this type is IO something, don't use `print`, just run it"
2024-12-03 16:07:51 +0100 <geekosaur> that is ghci
2024-12-03 16:08:53 +0100 <hellwolf> ```
2024-12-03 16:08:53 +0100 <hellwolf> 38 main = do
2024-12-03 16:08:53 +0100 <hellwolf> 39 a :: IO [TH.Dec]
2024-12-03 16:08:56 +0100 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/users_guide/ghci.html#i-o-actions-at-the-prompt in fact it's not just `IO something`, it's `MonadIO m => m something`
2024-12-03 16:08:58 +0100 <hellwolf> silence... unsetteling
2024-12-03 16:09:28 +0100FaRiD(~bizimmeka@213.172.85.35)
2024-12-03 16:09:33 +0100 <haskellbridge> <hellwolf> did it trigger a big red scary button?
2024-12-03 16:09:58 +0100 <geekosaur> no, it was just discarded like the value of `main` always is
2024-12-03 16:10:13 +0100 <geekosaur> (there's an open proposal about changing that)
2024-12-03 16:10:36 +0100 <hellwolf> okay, so it does seem to suggest, i can only use GHCi to learn how to write TH by learning baby steps.
2024-12-03 16:11:12 +0100notzmv(~umar@user/notzmv) notzmv
2024-12-03 16:11:55 +0100 <hellwolf> 12-03 17:09 <geekosaur> no, it was just discarded like the value of `main` always is
2024-12-03 16:11:55 +0100 <hellwolf> Interesting. I should find out the thread. I had a bit qualm about QualifiedDo and discarding bind
2024-12-03 16:13:00 +0100 <Leary> hellwolf: Try `a >>= print`?
2024-12-03 16:13:34 +0100 <geekosaur> https://github.com/ghc-proposals/ghc-proposals/pull/631
2024-12-03 16:13:55 +0100alp(~alp@2001:861:8ca0:4940:fcfb:c018:c718:ffe) (Remote host closed the connection)
2024-12-03 16:14:12 +0100alp(~alp@2001:861:8ca0:4940:a3de:4219:d679:c970)
2024-12-03 16:15:00 +0100 <geekosaur> also it wouldn't apply to QualifiedDo unless it involved `main`
2024-12-03 16:15:24 +0100 <geekosaur> it's not `do` special behavior, it is `main` (well, RTS) special behavior
2024-12-03 16:15:36 +0100alp(~alp@2001:861:8ca0:4940:a3de:4219:d679:c970) (Remote host closed the connection)
2024-12-03 16:15:53 +0100alp(~alp@2001:861:8ca0:4940:102f:6626:c2aa:b43a)
2024-12-03 16:16:40 +0100 <hellwolf> 12-03 17:13 <Leary> hellwolf: Try `a >>= print`?
2024-12-03 16:16:40 +0100 <hellwolf> you are right! silly me. "print =<< (a :: IO [TH.Dec]) "
2024-12-03 16:17:17 +0100alp(~alp@2001:861:8ca0:4940:102f:6626:c2aa:b43a) (Remote host closed the connection)
2024-12-03 16:17:39 +0100alp(~alp@2001:861:8ca0:4940:d395:fb6:9107:66ef)
2024-12-03 16:17:46 +0100FaRiD(~bizimmeka@213.172.85.35) ()
2024-12-03 16:19:16 +0100alp_(~alp@2001:861:8ca0:4940:da31:b282:93c1:f8a9)
2024-12-03 16:20:39 +0100alp_(~alp@2001:861:8ca0:4940:da31:b282:93c1:f8a9) (Remote host closed the connection)
2024-12-03 16:20:56 +0100alp_(~alp@2001:861:8ca0:4940:6432:392d:15cf:1ae9)
2024-12-03 16:21:59 +0100alp(~alp@2001:861:8ca0:4940:d395:fb6:9107:66ef) (Ping timeout: 252 seconds)
2024-12-03 16:22:20 +0100alp_(~alp@2001:861:8ca0:4940:6432:392d:15cf:1ae9) (Remote host closed the connection)
2024-12-03 16:22:37 +0100alp_(~alp@2001:861:8ca0:4940:33ee:a03b:2d16:8048)
2024-12-03 16:24:20 +0100alp__(~alp@2001:861:8ca0:4940:b367:7b6b:9f42:551b)
2024-12-03 16:26:55 +0100alp(~alp@2001:861:8ca0:4940:1064:eeaa:9af5:ad07)
2024-12-03 16:27:29 +0100alp_(~alp@2001:861:8ca0:4940:33ee:a03b:2d16:8048) (Ping timeout: 252 seconds)
2024-12-03 16:27:34 +0100MyNetAz(~MyNetAz@user/MyNetAz) MyNetAz
2024-12-03 16:28:16 +0100alp(~alp@2001:861:8ca0:4940:1064:eeaa:9af5:ad07) (Remote host closed the connection)
2024-12-03 16:28:33 +0100alp(~alp@2001:861:8ca0:4940:d87d:31e5:885:1386)
2024-12-03 16:29:19 +0100alp__(~alp@2001:861:8ca0:4940:b367:7b6b:9f42:551b) (Ping timeout: 252 seconds)
2024-12-03 16:29:31 +0100 <merijn> hellwolf: ghci is kinda special in that if it receives an "IO a" it will run the IO and print the 'a', rather than printing "IO a"
2024-12-03 16:29:59 +0100alp(~alp@2001:861:8ca0:4940:d87d:31e5:885:1386) (Remote host closed the connection)
2024-12-03 16:30:03 +0100 <merijn> ah, I'm behind someone already said :p
2024-12-03 16:30:17 +0100alp(~alp@2001:861:8ca0:4940:134b:1d9e:5a68:3db3)
2024-12-03 16:30:18 +0100 <hellwolf> yea, on hindsight, it's obvious. Just not something I always think of.
2024-12-03 16:31:40 +0100alp(~alp@2001:861:8ca0:4940:134b:1d9e:5a68:3db3) (Remote host closed the connection)
2024-12-03 16:31:59 +0100alp(~alp@2001:861:8ca0:4940:b7a9:294:17a8:7585)
2024-12-03 16:33:41 +0100alp_(~alp@2001:861:8ca0:4940:7536:fbcb:1039:2d26)
2024-12-03 16:35:04 +0100alp_(~alp@2001:861:8ca0:4940:7536:fbcb:1039:2d26) (Remote host closed the connection)
2024-12-03 16:35:22 +0100alp_(~alp@2001:861:8ca0:4940:affa:a735:fc35:23b6)
2024-12-03 16:36:11 +0100 <albet70> what's minikanren?
2024-12-03 16:37:06 +0100alp__(~alp@2001:861:8ca0:4940:a5e1:e73d:5bd5:b3d4)
2024-12-03 16:37:20 +0100alp(~alp@2001:861:8ca0:4940:b7a9:294:17a8:7585) (Ping timeout: 264 seconds)
2024-12-03 16:37:31 +0100 <hseg> it's a relational programming language designed for easy embedding
2024-12-03 16:38:31 +0100 <hseg> so you declare relations between inputs/outputs, then ask mkanren to find solutions to a given relation
2024-12-03 16:39:17 +0100 <hseg> (think type holes, but for functions in general)
2024-12-03 16:40:12 +0100 <albet70> is there scene for that?
2024-12-03 16:40:55 +0100alp_(~alp@2001:861:8ca0:4940:affa:a735:fc35:23b6) (Ping timeout: 264 seconds)
2024-12-03 16:41:07 +0100 <haskellbridge> <matti palli> hellwolf: QualifiedDo is only about how the syntax is desugared
2024-12-03 16:41:19 +0100 <geekosaur> ^
2024-12-03 16:42:06 +0100 <hellwolf> gocha. I read the ghc-pr0posal thread and realized what it was about
2024-12-03 16:42:07 +0100alp__(~alp@2001:861:8ca0:4940:a5e1:e73d:5bd5:b3d4) (Ping timeout: 264 seconds)
2024-12-03 16:45:32 +0100hellwolfwhines about such a herculean effort to write any TH; or any Haskell fwiw...
2024-12-03 16:45:59 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 16:46:42 +0100 <albet70> Map is about relationship?
2024-12-03 16:47:26 +0100 <albet70> what can minikanren do? Map can?
2024-12-03 16:49:29 +0100briandaed(~root@user/briandaed) (Quit: Lost terminal)
2024-12-03 16:51:46 +0100 <hseg> albet70: this isn't just a key-value store
2024-12-03 16:52:47 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 255 seconds)
2024-12-03 16:53:06 +0100 <hseg> this is about proof search -- you define your terms and have mkanren look for solutions that satisfy them
2024-12-03 16:54:11 +0100 <albet70> sounds like filter
2024-12-03 16:54:51 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 265 seconds)
2024-12-03 16:55:11 +0100 <hseg> no, absolutely not
2024-12-03 16:55:25 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 16:55:47 +0100Pixi`(~Pixi@user/pixi) Pixi
2024-12-03 16:57:49 +0100sprotte24(~sprotte24@p200300d16f4231002957a791852bdd2a.dip0.t-ipconnect.de)
2024-12-03 16:58:19 +0100 <hseg> I can't find a syntax reference for a canonical haskell implementation rn
2024-12-03 16:58:45 +0100Pixi(~Pixi@user/pixi) (Ping timeout: 248 seconds)
2024-12-03 16:58:55 +0100 <hseg> nor do I want to bother with explaining mkanren's syntax (it looks like a bit too much context to unpack)
2024-12-03 16:59:27 +0100 <hseg> but have a look at datalog to get an idea of this style of programming
2024-12-03 16:59:33 +0100mantraofpie(~mantraofp@user/mantraofpie) (Quit: ZNC 1.9.1 - https://znc.in)
2024-12-03 16:59:54 +0100mantraofpie(~mantraofp@user/mantraofpie) mantraofpie
2024-12-03 17:00:18 +0100 <hseg> eg https://souffle-lang.github.io/examples
2024-12-03 17:01:27 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-12-03 17:02:31 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-03 17:02:53 +0100billchenchina(~billchenc@103.152.35.21) (Remote host closed the connection)
2024-12-03 17:02:55 +0100target_i(~target_i@user/target-i/x-6023099) target_i
2024-12-03 17:05:18 +0100merijn(~merijn@77.242.116.146) merijn
2024-12-03 17:08:31 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
2024-12-03 17:09:47 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-12-03 17:10:58 +0100euleritian(~euleritia@dynamic-176-006-145-188.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-03 17:11:25 +0100euleritian(~euleritia@77.22.252.159)
2024-12-03 17:12:15 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 265 seconds)
2024-12-03 17:12:38 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 17:15:59 +0100euleritian(~euleritia@77.22.252.159) (Ping timeout: 260 seconds)
2024-12-03 17:16:07 +0100euleritian(~euleritia@dynamic-176-006-145-188.176.6.pool.telefonica.de)
2024-12-03 17:23:23 +0100SlackCoder(~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
2024-12-03 17:27:38 +0100ethantwardy(user@user/ethantwardy) (Quit: WeeChat 4.3.2)
2024-12-03 17:29:13 +0100ethantwardy(user@user/ethantwardy) ethantwardy
2024-12-03 17:30:34 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds)
2024-12-03 17:33:12 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl)
2024-12-03 17:35:16 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds)
2024-12-03 17:36:26 +0100euleritian(~euleritia@dynamic-176-006-145-188.176.6.pool.telefonica.de) (Ping timeout: 255 seconds)
2024-12-03 17:37:27 +0100euleritian(~euleritia@dynamic-176-006-145-188.176.6.pool.telefonica.de)
2024-12-03 17:45:52 +0100vpan(~vpan@212.117.1.172)
2024-12-03 17:51:10 +0100euleritian(~euleritia@dynamic-176-006-145-188.176.6.pool.telefonica.de) (Ping timeout: 260 seconds)
2024-12-03 17:51:50 +0100euleritian(~euleritia@dynamic-176-006-142-139.176.6.pool.telefonica.de)
2024-12-03 18:05:08 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-12-03 18:10:23 +0100comerijn(~merijn@77.242.116.146) merijn
2024-12-03 18:12:54 +0100ft(~ft@p508db9c7.dip0.t-ipconnect.de) ft
2024-12-03 18:13:06 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2024-12-03 18:14:12 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2024-12-03 18:15:29 +0100comerijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2024-12-03 18:20:40 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-12-03 18:22:40 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-03 18:34:44 +0100vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2024-12-03 18:35:52 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2024-12-03 18:37:50 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 260 seconds)
2024-12-03 18:38:15 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 18:44:33 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 246 seconds)
2024-12-03 18:45:01 +0100tdammers(~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers
2024-12-03 18:46:27 +0100ell0(~ellie@user/ellie) ellie
2024-12-03 18:47:02 +0100ell(~ellie@user/ellie) (Read error: Connection reset by peer)
2024-12-03 18:47:02 +0100ell0ell
2024-12-03 18:48:55 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Ping timeout: 260 seconds)
2024-12-03 18:49:14 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) flukiluke
2024-12-03 18:55:42 +0100Pixi`Pixi
2024-12-03 18:57:49 +0100ell(~ellie@user/ellie) (Quit: Ping timeout (120 seconds))
2024-12-03 18:58:04 +0100mjrosenb(~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2024-12-03 18:58:07 +0100ell(~ellie@user/ellie) ellie
2024-12-03 18:58:24 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-12-03 18:59:39 +0100caconym(~caconym@user/caconym) caconym
2024-12-03 19:04:07 +0100wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2024-12-03 19:04:46 +0100mjrosenb(~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net)
2024-12-03 19:07:18 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-12-03 19:07:39 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2024-12-03 19:08:38 +0100Lord_of_Life_Lord_of_Life
2024-12-03 19:13:10 +0100lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
2024-12-03 19:18:32 +0100leif(~leif@210.54.33.112) (Quit: leif)
2024-12-03 19:18:46 +0100leif(~leif@210.54.33.112) leif
2024-12-03 19:20:40 +0100leif(~leif@210.54.33.112) (Client Quit)
2024-12-03 19:20:54 +0100leif(~leif@210.54.33.112) leif
2024-12-03 19:26:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 19:27:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-03 19:29:23 +0100alp(~alp@2001:861:8ca0:4940:af16:4820:16f3:df77)
2024-12-03 19:31:46 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-12-03 19:40:38 +0100spider1(spider@tilde.cafe) (Ping timeout: 255 seconds)
2024-12-03 19:42:19 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 19:46:15 +0100ethantwardy(user@user/ethantwardy) (Quit: WeeChat 4.3.2)
2024-12-03 19:49:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 19:50:59 +0100leif(~leif@210.54.33.112) (Quit: leif)
2024-12-03 19:51:13 +0100leif(~leif@210.54.33.112) leif
2024-12-03 19:51:24 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 246 seconds)
2024-12-03 19:53:48 +0100ell5(~ellie@user/ellie) ellie
2024-12-03 19:54:31 +0100ell(~ellie@user/ellie) (Quit: Ping timeout (120 seconds))
2024-12-03 19:54:32 +0100ell5ell
2024-12-03 19:55:15 +0100leif(~leif@210.54.33.112) (Client Quit)
2024-12-03 19:55:29 +0100leif(~leif@210.54.33.112) leif
2024-12-03 19:58:03 +0100briandaed(~root@user/briandaed) briandaed
2024-12-03 20:00:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 20:00:57 +0100Feuermagier(~Feuermagi@user/feuermagier) Feuermagier
2024-12-03 20:06:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-12-03 20:08:39 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-03 20:11:14 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 20:11:31 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-03 20:14:42 +0100briandaed(~root@user/briandaed) (Quit: Lost terminal)
2024-12-03 20:15:06 +0100lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2024-12-03 20:16:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-12-03 20:20:03 +0100briandaed(~root@user/briandaed) briandaed
2024-12-03 20:25:24 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds)
2024-12-03 20:26:15 +0100notzmv(~umar@user/notzmv) (Ping timeout: 244 seconds)
2024-12-03 20:27:03 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 20:31:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-03 20:32:48 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-12-03 20:39:38 +0100OftenFaded(~OftenFade@user/tisktisk) OftenFaded
2024-12-03 20:42:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 20:47:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 20:48:36 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-12-03 20:54:14 +0100briandaed(~root@user/briandaed) (Remote host closed the connection)
2024-12-03 20:57:54 +0100lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 272 seconds)
2024-12-03 20:58:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 21:00:59 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-12-03 21:01:38 +0100caconym(~caconym@user/caconym) caconym
2024-12-03 21:03:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-03 21:03:13 +0100hseg(~gesh@46.120.21.36) (Ping timeout: 252 seconds)
2024-12-03 21:05:44 +0100Pixi`(~Pixi@user/pixi) Pixi
2024-12-03 21:08:36 +0100Pixi(~Pixi@user/pixi) (Ping timeout: 265 seconds)
2024-12-03 21:09:10 +0100guy(~guy@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net)
2024-12-03 21:09:15 +0100 <guy> hi
2024-12-03 21:09:43 +0100 <guy> im looking for a pair programmer for an ongoing project, anyone interested?
2024-12-03 21:10:32 +0100Pixi__(~Pixi@user/pixi) Pixi
2024-12-03 21:12:14 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 21:13:21 +0100 <guy> all the code is written, it just needs to be implemented
2024-12-03 21:13:35 +0100zenmov(~zenmov@user/zenmov) (Ping timeout: 260 seconds)
2024-12-03 21:13:41 +0100 <guy> as in, there arent any implementations i cant write! or dont know to.
2024-12-03 21:13:54 +0100 <guy> just like, a lot of organisation i cant get my head round
2024-12-03 21:14:10 +0100 <guy> kind of like an implementation roadmap, im totally daunted
2024-12-03 21:14:13 +0100Pixi`(~Pixi@user/pixi) (Ping timeout: 252 seconds)
2024-12-03 21:15:17 +0100 <guy> i was hoping if there was someone that would be able to put in the time for me to explain what it does, that they would be able to help make sure im applied most effeciently at writing the subsequent parts at any point, because they can see they project overview while im in the nuts and bolts
2024-12-03 21:15:42 +0100 <monochrom> I wish I could use that definition of "written" when I was writing my thesis. "I have written it! I just haven't typed it out yet." Oh well, I guess Mozart used that definition too, at least according to movies.
2024-12-03 21:16:27 +0100 <guy> i mean, im not going to be like, searching for some unknown concept
2024-12-03 21:16:42 +0100zenmov(~zenmov@user/zenmov) zenmov
2024-12-03 21:17:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 21:17:09 +0100weary-traveler(~user@user/user363627) user363627
2024-12-03 21:17:20 +0100 <guy> this is like, acvtually the third time im going to implement it
2024-12-03 21:17:58 +0100 <guy> im just really dyslexic, so even though i know i can write all the parts, trying to do the whole thing is too sprawling for my low ram brain
2024-12-03 21:18:39 +0100 <guy> its a really powerful learning algorithm, with some really cool abstractions!
2024-12-03 21:19:31 +0100 <guy> i think what im missing is like a huge exploded diagram
2024-12-03 21:19:51 +0100 <guy> i figure thats what people are good with, kind of loosely tied together
2024-12-03 21:20:43 +0100 <JuanDaugherty> guck mal
2024-12-03 21:21:13 +0100 <guy> exactly!
2024-12-03 21:21:45 +0100homo(~homo@user/homo) homo
2024-12-03 21:23:13 +0100 <guy> so, anyone interested?
2024-12-03 21:24:19 +0100 <JuanDaugherty> why would they be?
2024-12-03 21:24:22 +0100 <int-e> monochrom: Remember Fermat's infamous margin. :)
2024-12-03 21:25:03 +0100 <guy> JuanDaugherty: well, its a chance to learn some pretty far reaching techniques, and it would really help me
2024-12-03 21:25:46 +0100 <JuanDaugherty> what techniques?
2024-12-03 21:25:49 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-12-03 21:26:01 +0100 <guy> well, AGI, and all the abstractions i use to implement it
2024-12-03 21:26:15 +0100 <JuanDaugherty> i had to ask
2024-12-03 21:26:32 +0100 <guy> i chose to answer
2024-12-03 21:26:39 +0100 <guy> anyway...
2024-12-03 21:26:53 +0100 <guy> er, eg. functor schedules
2024-12-03 21:27:03 +0100 <JuanDaugherty> this is a very tolerant and polite channel, except for me so adieu
2024-12-03 21:27:12 +0100JuanDaugherty(~juan@user/JuanDaugherty) ()
2024-12-03 21:27:13 +0100 <int-e> . o O ( Adjusted Gross Income )
2024-12-03 21:27:25 +0100 <guy> "functor instances via complete shedules"
2024-12-03 21:27:42 +0100 <guy> Jaun: peace, your style is fine no worries
2024-12-03 21:28:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 21:28:12 +0100 <guy> int-e: Artificial *General* Intelligence
2024-12-03 21:28:16 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6c70:1ac0:d127:74dd) (Remote host closed the connection)
2024-12-03 21:28:25 +0100 <mauke> ok, crackpot meter at high
2024-12-03 21:28:36 +0100hgolden(~hgolden@syn-172-251-233-141.res.spectrum.com) hgolden
2024-12-03 21:28:46 +0100 <guy> woah, i wasnt expecting a burden of proof challenge right off the bat
2024-12-03 21:28:50 +0100 <guy> can we just defer that?
2024-12-03 21:29:06 +0100 <int-e> mauke: well it's all written but not yet implemented
2024-12-03 21:29:16 +0100 <guy> thats where you come in
2024-12-03 21:29:16 +0100 <int-e> the vapor is on the wall or something
2024-12-03 21:29:30 +0100 <mauke> before I was merely not interested. now I'm positively uninterested
2024-12-03 21:29:32 +0100 <guy> i guess your all up to speed then!
2024-12-03 21:29:47 +0100 <guy> mauke: well, please dont take that out on us!
2024-12-03 21:30:00 +0100foul_owl(~kerry@185.219.141.161) (Ping timeout: 252 seconds)
2024-12-03 21:30:01 +0100 <spew> the royal us?
2024-12-03 21:30:17 +0100 <guy> im going to stay ontopic, thatks for the replies
2024-12-03 21:30:55 +0100 <guy> its a genuine question. idk if i stumbled into a bored room or something
2024-12-03 21:31:14 +0100 <guy> im just looking for some help organising a really challenging project
2024-12-03 21:31:42 +0100 <geekosaur> this channel's kinda infamous for spinning off in random directions when asked things…
2024-12-03 21:31:49 +0100 <guy> lol
2024-12-03 21:31:57 +0100 <guy> its ok. im kinda used to it
2024-12-03 21:32:45 +0100 <guy> but one thing im not too excited to engage in is trying to interject material across basically just counterproductive commentary
2024-12-03 21:32:57 +0100 <guy> no offense...
2024-12-03 21:33:01 +0100 <geekosaur> (sorry, I try to keep an eye on things but have been busy the past half hour or so)
2024-12-03 21:33:07 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-12-03 21:33:09 +0100ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2024-12-03 21:33:36 +0100 <guy> channel seems busy tho, i guess there is a new wave of academic cohort coming online
2024-12-03 21:33:51 +0100 <geekosaur> more likely advent of code
2024-12-03 21:34:11 +0100 <geekosaur> we always see an uptick of people trying to solve the day's problems
2024-12-03 21:34:11 +0100 <guy> id have expected people to be way more keen to engage in the subject of AGI
2024-12-03 21:34:19 +0100 <guy> i do understand the scepticism tho
2024-12-03 21:34:37 +0100 <guy> i guess sam altmans not exactly the worlds most rock and roll frontman!
2024-12-03 21:34:41 +0100 <geekosaur> oddly, AI has never been a big thing among Haskellers
2024-12-03 21:34:51 +0100 <guy> well, speak for yourself!
2024-12-03 21:34:57 +0100 <int-e> that's just a buzzword though; the phenomenon of code that's been written but not implemented is far more interesting
2024-12-03 21:34:58 +0100 <guy> the grenade project was good
2024-12-03 21:35:25 +0100 <guy> int-e: ok its implemented its just not written
2024-12-03 21:35:28 +0100 <geekosaur> enh. I can design out code in my head and bang it out later decently
2024-12-03 21:35:41 +0100 <geekosaur> wrote several of the utils I use locally that way
2024-12-03 21:35:51 +0100 <guy> im in like some kind of versioning hell
2024-12-03 21:35:58 +0100 <int-e> guy: these two words are usually used as synonyms so what you're saying makes zero sense either way
2024-12-03 21:36:11 +0100 <guy> nono, their noncumutattive
2024-12-03 21:36:28 +0100 <guy> ok, sorry.
2024-12-03 21:36:40 +0100 <guy> i have various implementations, and not a good implementation
2024-12-03 21:36:58 +0100 <guy> hows that? its supposed to convey how no part of it isnt done, but that the whole of it remains not done
2024-12-03 21:37:09 +0100gawen_(~gawen@user/gawen) (Quit: cya)
2024-12-03 21:37:19 +0100 <guy> it needs a kind of start to finish redo
2024-12-03 21:37:19 +0100geekosauralso notes that not everyone is a native English speaker
2024-12-03 21:37:32 +0100 <int-e> you could say that there's a rough design but no implementation
2024-12-03 21:37:43 +0100 <int-e> geekosaur: I'm not a native English speaker :P
2024-12-03 21:37:50 +0100 <guy> its more like a complexity attack
2024-12-03 21:37:54 +0100 <guy> there is a complete design
2024-12-03 21:37:59 +0100 <guy> its just bigger than the heap
2024-12-03 21:38:18 +0100 <guy> its like, buffering out components
2024-12-03 21:38:55 +0100 <guy> i have really solid versions of several parts
2024-12-03 21:39:01 +0100 <guy> and im sure i have all the parts i need
2024-12-03 21:39:10 +0100 <guy> i even had it in several stages of working
2024-12-03 21:39:26 +0100 <guy> but it needs like, a maintainable version of the codebase since its essentially coming out my ears
2024-12-03 21:39:43 +0100 <int-e> . o O ( denial, anger, bargaining, depression, acceptance )
2024-12-03 21:40:13 +0100 <geekosaur> this would be where I start by writing out the design details, then I can start figuring out how to put them together and whether something needs to be refigured before it'll fit
2024-12-03 21:40:29 +0100 <geekosaur> I mean, I can hold a lot in my head, but eventually I do hit limits
2024-12-03 21:42:04 +0100 <guy> this is the problem
2024-12-03 21:42:08 +0100 <guy> im stuck at that stage
2024-12-03 21:42:35 +0100 <guy> even the most simple attempt to put pen to paper results in reams of notes so extensive they begin to flap around the room and go out the window
2024-12-03 21:43:31 +0100 <guy> if i were able to explain in a kind of ad hoc way, so then someone else could see the structure, maybe they could talk me through it kind of locally, without anyone needing to be able to visualise the whole thing
2024-12-03 21:43:48 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 21:44:19 +0100Pixi`(~Pixi@user/pixi) Pixi
2024-12-03 21:44:21 +0100foul_owl(~kerry@185.219.141.161) foul_owl
2024-12-03 21:44:26 +0100 <geekosaur> you actually have the answer there. explain it to *yourself* that way, sticking to the high level structure
2024-12-03 21:44:41 +0100 <geekosaur> if you can't pull that off, what makes you think you'll be able to do it with someone else?
2024-12-03 21:45:07 +0100 <guy> because of the time limit
2024-12-03 21:45:21 +0100 <guy> to both issue, and receive the conveyances
2024-12-03 21:45:27 +0100gawen(~gawen@user/gawen) gawen
2024-12-03 21:45:58 +0100 <guy> i think stored in another human mind is a kind of more efficient compression retrieval
2024-12-03 21:46:12 +0100 <guy> like literally, there is some advantage in having someone elses understanding involved
2024-12-03 21:46:23 +0100 <guy> two heads are better than one, so they say, on bill and ted
2024-12-03 21:47:35 +0100Pixi__(~Pixi@user/pixi) (Ping timeout: 252 seconds)
2024-12-03 21:48:30 +0100 <geekosaur> (that one predates bill and ted…)
2024-12-03 21:48:52 +0100 <guy> like imagine i can tell you, but it would take a day. i could tell myself, but that would take 2 days, one to say it, one to listen.
2024-12-03 21:48:53 +0100 <guy> and imagine someone else could understand it and explain the relavant part in 10 mins
2024-12-03 21:48:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 21:49:07 +0100 <guy> the difference is make or break from this perspective
2024-12-03 21:49:40 +0100 <guy> it might take ages to explain it because im disorganised
2024-12-03 21:49:53 +0100 <guy> but the organised responses could be really kind of on the point
2024-12-03 21:50:14 +0100 <guy> and worth way more to me than my own disorganised explanations, of which i have a near infinite amount
2024-12-03 21:52:10 +0100 <guy> ...
2024-12-03 21:52:29 +0100 <guy> for this to work, people that could help might show an interest and maybe we could have a discussion on a side channel
2024-12-03 21:52:32 +0100 <haskellbridge> <sm> guy: take a walk, and talk about the problem out loud to yourself; you will figure out some small next action or small first step that you can build
2024-12-03 21:52:54 +0100 <haskellbridge> <sm> it really works
2024-12-03 21:53:16 +0100 <guy> it seems like your just talking past the entire part where a pair programmer is useful!
2024-12-03 21:53:24 +0100 <guy> i wouldnt be asking if i could do it on my own
2024-12-03 21:53:34 +0100 <guy> i mean, iv managed to basically do everything already
2024-12-03 21:53:36 +0100 <guy> its taken years
2024-12-03 21:53:40 +0100 <guy> but like, im not useless
2024-12-03 21:53:42 +0100 <haskellbridge> <sm> you're not being inviting to pair program with
2024-12-03 21:53:46 +0100 <haskellbridge> <hellwolf> does "take a hike work" too?
2024-12-03 21:53:52 +0100 <guy> im just aware that there is help that i could recieve if i ask and am doing so
2024-12-03 21:54:18 +0100haskellbridgehellwolf just asking a out of context grammar question
2024-12-03 21:54:27 +0100 <haskellbridge> <sm> instead of complaining and barraging us with too many small comments, how about describe your current stuckness/problem in one clear sentence
2024-12-03 21:54:49 +0100 <guy> because its not that kind of question
2024-12-03 21:55:07 +0100 <guy> would you like to understand about functor sheduling?
2024-12-03 21:55:12 +0100 <haskellbridge> <sm> no
2024-12-03 21:55:36 +0100 <guy> unfortunately, thats something that is relied upon, i think you might not be the most suitable candidate, thanks for you interest
2024-12-03 21:55:44 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-03 21:56:16 +0100 <haskellbridge> <sm> well, good luck
2024-12-03 21:56:59 +0100 <guy> i mean, the attempt to help basically made the discussion look weird
2024-12-03 21:57:16 +0100 <guy> which it wouldnt have done if you werent basically just picking apart what im trying to acheive
2024-12-03 21:57:27 +0100 <guy> i dont mean to sound ungreatful
2024-12-03 21:57:39 +0100 <guy> i would prefer not to have to field such commentary
2024-12-03 21:57:48 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-12-03 21:58:12 +0100 <guy> "lets help him get a pair programmer together like what he was wanting"
2024-12-03 21:58:30 +0100 <guy> "heres why what they want to do is silly, or can be bypassed"
2024-12-03 21:58:40 +0100guy(~guy@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Quit: Client closed)
2024-12-03 21:59:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 22:02:25 +0100 <haskellbridge> <sm> had to step afk. I'm sorry for being annoying guy, no offense intended.We really do like to help here. But there's an art to getting help in text chat.
2024-12-03 22:03:18 +0100 <int-e> they left 5 minutes ago
2024-12-03 22:03:34 +0100 <haskellbridge> <sm> aha, alrighty
2024-12-03 22:04:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 22:06:23 +0100Pixi__(~Pixi@user/pixi) Pixi
2024-12-03 22:07:34 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
2024-12-03 22:08:40 +0100 <sm> @msg guy had to step afk. I'm sorry for being annoying guy, no offense intended. We really do like to help here. There's an art to getting help in text chat.
2024-12-03 22:08:40 +0100 <lambdabot> Not enough privileges
2024-12-03 22:08:53 +0100guy(~guy@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net)
2024-12-03 22:09:14 +0100 <guy> i mean, functor scheduling is really interesting!
2024-12-03 22:09:44 +0100 <guy> the AGI stuff follows *really* straitfowardly
2024-12-03 22:09:59 +0100Pixi`(~Pixi@user/pixi) (Ping timeout: 260 seconds)
2024-12-03 22:11:18 +0100 <guy> it basically gives a kind of automatic functor instance, and because of how its structured, you get the "general" bit of AGI basically immidiately
2024-12-03 22:11:19 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-12-03 22:11:46 +0100 <sm> I don't think you saw this: had to step afk. I'm sorry for being annoying guy, no offense intended. We really do like to help here. There's an art to getting help in text chat.
2024-12-03 22:11:51 +0100 <guy> i needed an abstraction around a mixture, and it turns out to be really interesting why functor isnt enough on its own
2024-12-03 22:11:53 +0100 <int-e> sm: the command would be @tell
2024-12-03 22:11:58 +0100 <sm> aha, thanks
2024-12-03 22:12:07 +0100Everything(~Everythin@46-133-12-50.mobile.vf-ua.net) Everything
2024-12-03 22:12:11 +0100Pixi__(~Pixi@user/pixi) (Read error: Connection reset by peer)
2024-12-03 22:12:15 +0100 <guy> sm: thanks for the support! i just needed a smoke
2024-12-03 22:12:16 +0100 <homo> hi, https://www.haskell.org/irc/ says there are language-specific channels, but both #haskell-fi and #haskell-pl are empty
2024-12-03 22:12:36 +0100Pixi__(~Pixi@user/pixi) Pixi
2024-12-03 22:13:41 +0100vanishingideal(~vanishing@user/vanishingideal) (Quit: leaving)
2024-12-03 22:13:52 +0100 <guy> lets say im working on the natural numbers, and this is the "functor"
2024-12-03 22:14:03 +0100 <guy> because its infinite, im not going to be able to fmap
2024-12-03 22:14:16 +0100 <sm> why not
2024-12-03 22:14:34 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-12-03 22:14:34 +0100 <JuanDaugherty> i am sorta the opposite of you know who and this linked story captures the core intent of the thing i intend to make available to the hs community in this area, by my sole effort
2024-12-03 22:14:38 +0100 <guy> hmm. ok im kind of assuming strict evaulation
2024-12-03 22:14:50 +0100 <JuanDaugherty> https://eg.meansofproduction.biz/eg/index.php/Specious_Present
2024-12-03 22:15:14 +0100 <mauke> homo: that's probably outdated information from the freenode years
2024-12-03 22:15:20 +0100 <guy> i mean, if its lazy i might not need to act on the whole collection
2024-12-03 22:15:25 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 22:15:30 +0100 <guy> but the sheduling provides a better approach to this
2024-12-03 22:15:40 +0100 <JuanDaugherty> also guy, if you offer appropriate compensation u'll find takers here, pretty sure of that
2024-12-03 22:15:57 +0100 <guy> its based around a "suspended traversal", so it only does one strict evaluation at a time
2024-12-03 22:16:05 +0100 <guy> this way still terminating despite the infinite container
2024-12-03 22:16:41 +0100 <JuanDaugherty> would be takers: only do it on retainer
2024-12-03 22:16:45 +0100 <guy> JuanDuagherty: i kind of think that bounties are a feaux par if not directly prohibited
2024-12-03 22:17:20 +0100 <JuanDaugherty> a u aware that ur constant misspelling makes u look ...
2024-12-03 22:17:34 +0100 <int-e> you, your
2024-12-03 22:17:42 +0100 <guy> instead of giving the fmap instance, there is a default, based on the editing per element, and the shedule of visitation, which can *not* change the whole contents
2024-12-03 22:18:53 +0100 <guy> and, the chedule can update with the application of fmap, so it can point to a different sublist
2024-12-03 22:18:59 +0100 <JuanDaugherty> int-e that's the way i talk
2024-12-03 22:19:04 +0100 <guy> schedule*
2024-12-03 22:19:16 +0100 <int-e> JuanDaugherty: then you have forfeited your right to complain about other people's spelling
2024-12-03 22:19:33 +0100 <guy> i can change eg the first 10 ints, and then the next 10
2024-12-03 22:19:46 +0100 <guy> since the fmap also changes the shedule
2024-12-03 22:19:55 +0100 <guy> thats simple to understand right?
2024-12-03 22:20:01 +0100 <guy> (its just the first step)
2024-12-03 22:20:04 +0100 <JuanDaugherty> u mispercieve/misattribute, i'm not misspelling these idioms are my intended speech
2024-12-03 22:20:14 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 22:20:16 +0100 <guy> same
2024-12-03 22:20:20 +0100 <guy> except the typos
2024-12-03 22:20:36 +0100 <JuanDaugherty> as my somewhat tedious corrections make the point of :)
2024-12-03 22:20:53 +0100 <guy> yeah but their also accidental, so
2024-12-03 22:21:31 +0100 <JuanDaugherty> in my case, if accidental, it will be corrected
2024-12-03 22:22:19 +0100 <guy> ok, so the next step is where this kind of restricted schedule somehow correlates to a mixture. like, if the schedule gives you the order that you get presented the contents, and then like, you can buffer it as a stream, and that buffer is a mixture like a subset of the underlying scheduled functor, which is acting like a source of the objects it
2024-12-03 22:22:20 +0100 <guy> contains
2024-12-03 22:22:35 +0100 <JuanDaugherty> srsly tho, offer a decent compensation, other than the usual equity or what, cashmoney up front and u'll get ur au pair
2024-12-03 22:22:42 +0100 <guy> JaunDaugherty: omg im so sorry i had no idea. ill try not to compel this
2024-12-03 22:22:57 +0100 <JuanDaugherty> *or whatever;
2024-12-03 22:23:10 +0100 <JuanDaugherty> and stop calling me jaun
2024-12-03 22:23:20 +0100 <guy> oh right! i didnt even see that sorry
2024-12-03 22:23:43 +0100 <JuanDaugherty> this aint prelude d midi
2024-12-03 22:24:21 +0100 <guy> so! we have eg, natural numbers as a scheduled functor, eg just each number in turn up to 100
2024-12-03 22:24:34 +0100 <guy> then, this is streamed and buffered over by a mixture
2024-12-03 22:24:49 +0100 <JuanDaugherty> take it away guy
2024-12-03 22:24:54 +0100 <guy> its complicated because its stored on disk
2024-12-03 22:24:55 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-12-03 22:25:10 +0100 <guy> so there is this weird mutability, where you dont have to "edit" the container
2024-12-03 22:25:25 +0100 <guy> you can just take the objects from it, modify them and then save them to disk
2024-12-03 22:25:50 +0100 <guy> so you only end up reading from this container while apparently modifying it. i got confused about this for a while because im used to a pure idiom
2024-12-03 22:26:15 +0100 <guy> im sure there is some complicated version using MVars
2024-12-03 22:26:54 +0100 <guy> the objects are going to be "machines" or like, little learning or trained robots that do some training or learned task
2024-12-03 22:27:25 +0100 <guy> the mixture of them is supposed to be an ensemble, and its going to be receiving training updates
2024-12-03 22:27:56 +0100 <guy> now, because the ensemble is of parametric objects, and itself must be parametric...
2024-12-03 22:28:01 +0100emma-underscores(~quassel@204.187.100.82) emma-underscores
2024-12-03 22:28:26 +0100 <guy> there is the oppertunity to use an extendable vector of coeceffients to some support set, eg random numbers
2024-12-03 22:28:43 +0100 <guy> you give me a vector, i decode parameter updates to the ensemble, and save each entry
2024-12-03 22:29:05 +0100 <guy> this vector is basically the (a->a) in fmap
2024-12-03 22:29:20 +0100 <guy> whats happening here is that "all functor instances are being given"
2024-12-03 22:29:43 +0100 <guy> every mixture updates the same way, according to these random support coefficients
2024-12-03 22:30:00 +0100 <guy> any vector serves to update the rough support, [] gives no update
2024-12-03 22:30:23 +0100 <guy> the rough support is given a submask at random positions
2024-12-03 22:30:37 +0100 <guy> so you only edit a random subset of the coeffecients
2024-12-03 22:30:50 +0100 <guy> changing the random seed for this rough mask lens
2024-12-03 22:30:54 +0100 <guy> is the "shedule"
2024-12-03 22:31:11 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 22:31:13 +0100 <guy> instead of pointing to each entry in turn, it creates a new submask to edit
2024-12-03 22:31:20 +0100gawen(~gawen@user/gawen) (Quit: cya)
2024-12-03 22:31:27 +0100 <guy> this is the kind of one size fits all functor scheduling
2024-12-03 22:31:31 +0100 <guy> having explained all that
2024-12-03 22:31:49 +0100 <guy> when you learn through the random submasking process, it forces the G of AGI
2024-12-03 22:32:01 +0100 <guy> if its good at training in all those contexts, its general
2024-12-03 22:36:22 +0100michalz(~michalz@185.246.207.221) (Remote host closed the connection)
2024-12-03 22:37:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-03 22:38:40 +0100 <guy> chatGPT claims the material to be "truly foundational!"
2024-12-03 22:38:41 +0100 <guy> https://chatgpt.com/share/674f7a3c-ebe0-800b-abfe-89b70df0c286
2024-12-03 22:39:01 +0100 <hellwolf> nice haiku
2024-12-03 22:39:21 +0100 <hellwolf> saving "periods" saves climate too
2024-12-03 22:39:34 +0100 <haskellbridge> <sm> new discussion of haskell vs ocaml: https://news.ycombinator.com/item?id=42302426
2024-12-03 22:39:54 +0100gawen(~gawen@user/gawen) gawen
2024-12-03 22:40:46 +0100 <hellwolf> from what I heard, only the first-class module is to be desired the most in Haskell.
2024-12-03 22:40:51 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-12-03 22:42:10 +0100 <guy> tldr: functor scheduling allows for random submasking to be used everywhere, which gives general learning tasks
2024-12-03 22:42:27 +0100 <guy> hows about that for a strong theory!? functor scheduling ftw
2024-12-03 22:42:36 +0100euleritian(~euleritia@dynamic-176-006-142-139.176.6.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-12-03 22:42:57 +0100 <guy> its like a "general functor instance"
2024-12-03 22:43:00 +0100 <mauke> wow, a randomly generated text contains the words "truly foundational"
2024-12-03 22:43:17 +0100 <guy> randomly!? im deterministic!!
2024-12-03 22:43:20 +0100euleritian(~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de)
2024-12-03 22:43:40 +0100 <guy> (i know though right, its clearly been hacked somehow)
2024-12-03 22:44:21 +0100 <guy> whenever it generates random names about charicters in various drug/romance escapades it always comes up with names like jack and sally
2024-12-03 22:44:50 +0100 <guy> i kind of wonder how pervasive all the subtext actually is to the likes of a GPT
2024-12-03 22:44:55 +0100 <monochrom> BTW, after learning probability theory, I consider determinism to be random too, just with a very specialized distribution. >:)
2024-12-03 22:45:32 +0100 <monochrom> But you can enjoy the same sentiment by asking whether a square counts as a rectangle.
2024-12-03 22:45:36 +0100 <int-e> monochrom: why does that remind me of https://xkcd.com/221/
2024-12-03 22:45:41 +0100 <guy> tell that to the thermodynamic process that densifies strange loops!
2024-12-03 22:46:21 +0100 <monochrom> :)
2024-12-03 22:47:30 +0100zenmov(~zenmov@user/zenmov) (Ping timeout: 260 seconds)
2024-12-03 22:48:01 +0100 <guy> im trying to come up with this really neat way of saying that if you implement all the mixture functors that are for learning edits, with random submasks for the sheduling, then you get generalising tests for training AGI
2024-12-03 22:48:07 +0100 <guy> can anyone understand this!?
2024-12-03 22:49:13 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 22:49:38 +0100 <guy> sheduling, next next next through the functor. replaced all edits with provision of an extensible update vector consisting coefficients of random support vector
2024-12-03 22:50:11 +0100 <guy> next next next through random masks, learning through that forces generalisation
2024-12-03 22:51:10 +0100 <guy> functor scheduling => rough support, submasking seed increment => generalisation
2024-12-03 22:52:17 +0100 <guy> "i want to edit your parameters, are you a functor" ...
2024-12-03 22:52:18 +0100 <guy> "no! my edits are randomly supported, you must use random submasks to alter the editing vector, you can edit that!"
2024-12-03 22:52:54 +0100 <guy> and the (Vec->Vec) update opperation your "fmapping" as learning (theres some state under the hood of the learning machine)
2024-12-03 22:53:12 +0100 <guy> only ever edits random submasks of the rough support
2024-12-03 22:53:21 +0100 <guy> anything good at all those problems, is an AGI
2024-12-03 22:53:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 22:54:38 +0100 <guy> functor scheduling => random edits to submasks of rough support => AGI
2024-12-03 22:54:50 +0100 <guy> (eg of a complete component)
2024-12-03 22:55:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 22:56:04 +0100chele(~chele@user/chele) (Remote host closed the connection)
2024-12-03 22:57:10 +0100guy(~guy@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Quit: Client closed)
2024-12-03 22:59:13 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-03 22:59:55 +0100 <monochrom> I am pretty sure the Vec->Vec update in machine learning cannot be done by fmap.
2024-12-03 23:01:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 23:07:31 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-03 23:08:48 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-12-03 23:08:56 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-03 23:09:14 +0100 <hellwolf> hm
2024-12-03 23:09:53 +0100 <JuanDaugherty> that guy
2024-12-03 23:10:40 +0100 <geekosaur> I suspect I should have kicked him an hour ago, but I've been somewhat busy this afternoon
2024-12-03 23:11:14 +0100 <geekosaur> just catching up, and thinking he sounded like some of the other weirdos we've had
2024-12-03 23:11:31 +0100 <JuanDaugherty> on the hs ocaml comparison, the complaint seemed to be about ghc err msgs
2024-12-03 23:12:40 +0100 <JuanDaugherty> which are a treasured feature for some
2024-12-03 23:12:41 +0100 <monochrom> Error messages are just a manifestation of the type system. You have to remove features from the type system to simplify error messages.
2024-12-03 23:12:48 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 23:13:14 +0100 <hellwolf> is there any foundamental reason ghc error message is difficult? I saw a thread lately on how to restructure messages, in a general way, to make it more palatable
2024-12-03 23:14:28 +0100 <JuanDaugherty> it falls out of the hs culture and history
2024-12-03 23:14:29 +0100 <geekosaur> well, the problem with that part is you would need to redesign the typechecker around error messages, which would likely compromise type system features in various ways (mostly performance)
2024-12-03 23:14:42 +0100 <JuanDaugherty> so no, there's no fundamental reason
2024-12-03 23:15:02 +0100 <geekosaur> hugs is often pointed to as having easier error messages, but it's also a much simpler typechecker
2024-12-03 23:15:05 +0100 <JuanDaugherty> ghc could be rewritten for the sole purpose of spiffing err messages
2024-12-03 23:15:15 +0100 <geekosaur> and similarly for helium which iirc only does haskell98
2024-12-03 23:15:35 +0100 <JuanDaugherty> in principle
2024-12-03 23:15:50 +0100 <JuanDaugherty> but it would be odd
2024-12-03 23:15:51 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-12-03 23:16:29 +0100 <hellwolf> probably error message reading assistant for beginners ... otherwise what's all these AI progress about, fake videos?
2024-12-03 23:16:36 +0100Guest0(~Guest0@190.50.170.231)
2024-12-03 23:16:37 +0100 <hellwolf> *"AI"
2024-12-03 23:16:55 +0100Guest0(~Guest0@190.50.170.231) (Client Quit)
2024-12-03 23:17:02 +0100 <JuanDaugherty> grifters gonna grift
2024-12-03 23:17:19 +0100 <monochrom> Why not go the full way, have AI (or "AI") write the whole program, take the human out of the loop, then you don't even need error messages.
2024-12-03 23:17:29 +0100euleritian(~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-03 23:17:48 +0100 <JuanDaugherty> that actually is sorta my intent
2024-12-03 23:17:48 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
2024-12-03 23:18:53 +0100haskellbridgesm notes that last monologue was 45m. It does dampen other chat, but we could have discussed other things any time, which have shortened it
2024-12-03 23:19:15 +0100 <JuanDaugherty> except for the take the human out of the loop, substitute for that niave domain attestation in natural language
2024-12-03 23:20:12 +0100 <haskellbridge> <sm> I didn't get much from it, but I don't want to assume noone did (if you're out there, feel free summarise!)
2024-12-03 23:20:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 23:20:41 +0100 <hellwolf> sm you are asking for it, I am gonna pull out the chatgpt
2024-12-03 23:20:54 +0100 <haskellbridge> <sm> argh lol
2024-12-03 23:21:17 +0100 <JuanDaugherty> sm u mean the hs vs ocaml thing on ycombinator?
2024-12-03 23:21:43 +0100 <JuanDaugherty> or that guy
2024-12-03 23:23:04 +0100 <hellwolf> $ (echo "What is the guy named guy speaking about?"; cat guyspeak.txt) | chatgpt
2024-12-03 23:23:04 +0100 <hellwolf> Guy is discussing his project which involves artificial general intelligence (AGI). He's searching for a partner to assist him with the organizational challenges that come with the implementation of the project's codebase. Guy has all parts of the project designed, but is having difficulty managing the full implementation due to its complexity. Specifically, he mentions implementing "functor schedules" and using ran
2024-12-03 23:23:04 +0100 <hellwolf> dom submasks, which he believes will lead to the development of AGI. He is seeking someone to help him in organizing the progress of the project, stating that another person's understanding might provide an efficient way to manage the complexity.
2024-12-03 23:23:07 +0100 <hellwolf> problem solved
2024-12-03 23:23:47 +0100 <monochrom> That actually is pretty decent.
2024-12-03 23:23:58 +0100 <haskellbridge> <sm> that's pretty good. If they had done that they'd get a lot better response
2024-12-03 23:24:23 +0100 <JuanDaugherty> that's so much better than decent, i suspect its not chatgpt
2024-12-03 23:24:31 +0100 <monochrom> Goes a long way to show you how 90% of humans are actually worse than chatgpt.
2024-12-03 23:24:42 +0100hellwolfnot cheating!
2024-12-03 23:24:53 +0100hellwolfwouldn't be bothered
2024-12-03 23:25:27 +0100 <JuanDaugherty> hellwolf, acknowledged and accepted
2024-12-03 23:25:44 +0100mange(~user@user/mange) mange
2024-12-03 23:26:03 +0100 <JuanDaugherty> i guess when u think about it it wasn that impressive
2024-12-03 23:26:21 +0100 <hellwolf> ... I mean the input is pretty much a hot mess ...
2024-12-03 23:26:28 +0100 <haskellbridge> <sm> I too have wondered how you can be sure when "AI" companies aren't augmenting their answers with human workers
2024-12-03 23:26:30 +0100 <JuanDaugherty> because guy was monotionously saying the same thing over and over
2024-12-03 23:27:20 +0100 <JuanDaugherty> nonetheless i'm somewhat impressed that comprehension can be faked like that
2024-12-03 23:27:27 +0100tylerhou(~tylerhou@user/tylerhou) tylerhou
2024-12-03 23:27:41 +0100 <monochrom> How do you define comprehesion anyway.
2024-12-03 23:27:41 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2024-12-03 23:27:53 +0100 <Rembane> A monad comprehension is quite neat.
2024-12-03 23:27:54 +0100 <JuanDaugherty> comprehension and concision
2024-12-03 23:27:55 +0100Rembaneducks
2024-12-03 23:28:57 +0100 <JuanDaugherty> also by now the grifters aren't relying just on LLMs
2024-12-03 23:29:40 +0100 <tylerhou> Hi, I have a question that I think is related to recursion schemes. Suppose I have a polymorphic function between functors `forall a. f a -> g a`. I want to lift that to a function between the fixpoint of those functors; something like
2024-12-03 23:29:40 +0100 <tylerhou> in_g :: g (Fix g) -> Fix g
2024-12-03 23:29:41 +0100 <tylerhou> out_f :: Fix f -> f (Fix f)
2024-12-03 23:29:41 +0100 <tylerhou> lift :: (forall a. f a -> g a) -> Fix f -> Fix g
2024-12-03 23:29:42 +0100 <tylerhou> lift n = in_g . n . map (lift n) . out_f
2024-12-03 23:29:42 +0100 <tylerhou> Is there a name for this pattern?
2024-12-03 23:30:29 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-12-03 23:31:26 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-12-03 23:31:55 +0100 <monochrom> In another context it would be "Fix is monotonic", i.e., if f ⊑ g, then Fix f ⊑ Fix g.
2024-12-03 23:32:03 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 23:34:45 +0100carter_carter
2024-12-03 23:34:45 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2024-12-03 23:34:53 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-03 23:34:58 +0100 <tylerhou> Sorry, maybe naive question. What is the order here? The existence of an arrow from f a -> g a and Fix f -> Fix g?
2024-12-03 23:36:46 +0100 <monochrom> You know what, if one asserts "Fix is a certain suitable functor", then it covers both.
2024-12-03 23:36:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-03 23:39:27 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-03 23:47:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-03 23:48:25 +0100Square(~Square@user/square) Square
2024-12-03 23:50:04 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-12-03 23:50:32 +0100alp(~alp@2001:861:8ca0:4940:af16:4820:16f3:df77) (Remote host closed the connection)
2024-12-03 23:50:51 +0100alp(~alp@2001:861:8ca0:4940:f18f:506e:b1cc:eff9)
2024-12-03 23:51:09 +0100euleritian(~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de)
2024-12-03 23:52:13 +0100alp(~alp@2001:861:8ca0:4940:f18f:506e:b1cc:eff9) (Remote host closed the connection)
2024-12-03 23:52:31 +0100alp(~alp@2001:861:8ca0:4940:c38:2af5:e8a9:dc48)
2024-12-03 23:53:25 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-03 23:53:54 +0100alp(~alp@2001:861:8ca0:4940:c38:2af5:e8a9:dc48) (Remote host closed the connection)
2024-12-03 23:54:11 +0100alp(~alp@2001:861:8ca0:4940:5869:eecd:676a:8aba)
2024-12-03 23:54:53 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-12-03 23:55:35 +0100alp(~alp@2001:861:8ca0:4940:5869:eecd:676a:8aba) (Remote host closed the connection)
2024-12-03 23:55:52 +0100alp(~alp@2001:861:8ca0:4940:b505:9bd1:ef9e:a7b0)
2024-12-03 23:57:05 +0100gawen(~gawen@user/gawen) (Quit: cya)
2024-12-03 23:57:16 +0100alp(~alp@2001:861:8ca0:4940:b505:9bd1:ef9e:a7b0) (Remote host closed the connection)
2024-12-03 23:57:35 +0100alp(~alp@2001:861:8ca0:4940:f3fe:ac33:c8b0:f5ff)
2024-12-03 23:58:49 +0100euleritian(~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-03 23:58:57 +0100alp(~alp@2001:861:8ca0:4940:f3fe:ac33:c8b0:f5ff) (Remote host closed the connection)
2024-12-03 23:59:07 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
2024-12-03 23:59:15 +0100alp(~alp@2001:861:8ca0:4940:e76a:7d36:8adc:27e3)
2024-12-03 23:59:15 +0100homo(~homo@user/homo) (Read error: Connection reset by peer)